2012-06-20 3 views
1

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.

+1

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

Répondre

Questions connexes