2010-08-14 5 views
1

Lorsque le Flex SDK convertit MXML en actionscript, il génère beaucoup de code de liaison de données. Parfois, cependant, je ne veux pas lier une variable, par exemple si je sais que la variable ne changera pas.Désactiver la liaison de données dans MXML

Je n'arrive pas à trouver une solution dans Flex pour désactiver la liaison de données générée automatiquement. En outre, j'espérais que cela pourrait également aider avec certains des avertissements d'exécution levés par la liaison de données. Pour les contourner, j'utilise parfois ce qui suit, qui ne lance que des avertissements de syntaxe (et n'apparaît pas dans ma console au moment de l'exécution). Avertissement de syntaxe: La liaison de données ne peut pas détecter les modifications lors de l'utilisation d'un opérateur de crochet. Pour Array, veuillez utiliser ArrayCollection.getItemAt() à la place.

Répondre

3

La balise suivante racontera SDK Flex cette variable ne change pas vraiment et supprimer des avertissements « Impossible de se lier ... »:

[Bindable("__NoChangeEvent__")] 
private var model:MyModel = MyModel.instance; 

Ensuite, déplacer array[i] -comme expressions à une fonction distincte pour supprimer les avertissements. Si vous aviez ceci:

<mx:Button label="{array[i]}"/> 

Ensuite, créez une fonction:

private function buttonLabel(i):String 
{ 
    return array[i]; 
} 

Et le MXML:

<mx:Button label="{buttonLabel(i)}"/> 

PS: Si des modifications d'étiquette de bouton dans l'exécution, vous pouvez alors ajouter [Bindable(...)] Metatags la fonction:

[Bindable("stringsChange")] 
private function buttonLabel(i):String 
{ 
    return array[i]; 
} 

dispatchEvent(new Event("stringsChange")); 
Questions connexes