Je travaille avec un Flex 4 fichier MXML qui utilise un textFlow pour RichEditableText comme suit:Flex/AS3: Comment appeler une fonction ActionScript depuis textFlow?
<s:RichEditableText>
<s:textFlow>
<s:TextFlow>
<s:p>Here is your result: {myVariable}</s:p>
</s:TextFlow>
</s:textFlow>
</s:RichEditableText>
myVariable est renvoyé par le middleTier, et est égal à caractère "a", "b" ou "c" . Mais puisque j'ai besoin d'afficher un message en fonction de ce que le personnage est, je veux appeler une fonction actionscript pour décoder myVariable. Par exemple:
private function myFunction(myVariable):String {
if (myVariable=="a")
myMsg = "You selected letter a";
else if (myVariable=="b")
myMsg = "You selected letter b";
else
myMsg = "You selected letter c";
return myMsg;
}
Je ne sais pas comment faire cela, mais j'ai essayé les suivantes:
<s:RichEditableText>
<s:textFlow>
<s:TextFlow>
<s:p>Here is your result: {myFunction(myVariable)}</s:p>
</s:TextFlow>
</s:textFlow>
</s:RichEditableText>
Bien qu'il compilé fin et a couru, le résultat était - rien obtenu affiché, non même le texte Here is your result:
.
Une idée de comment y parvenir? Alternativement, s'il n'est pas possible d'appeler une fonction actionscript depuis l'intérieur du <s:p> ... </s:p>
, alors cela peut-il être réalisé en utilisant une instruction actionScript en ligne (parfois appelée raccourci) if/then/else?
Merci pour vos commentaires.
En fait, le code ci-dessus fonctionne très bien. J'ai déterminé le problème que j'avais si la variable 'myVariable' n'est pas transmise comme argument à myFunction(). Je pensais que puisque myVariable était déclaré comme [Bindable], il serait toujours disponible partout. Cependant, la valeur de myVariable dans myFunction() est null à moins qu'elle ne soit passée en paramètre à myFunction(). – ggkmath