Je suis un Noob Flex/Flash complet, exécutant Adobe Flash Builder 4 Beta 2. J'ai un composant principal qui doit pouvoir appeler plusieurs fenêtres contextuelles, chacune étant la même à l'exception d'une fonction et de quelques étiquettes. Évidemment, je préférerais pouvoir définir cette fonction et changer ces étiquettes en appelant le popup au lieu d'avoir des tonnes de fichiers .mxml avec presque le même code, je ne sais juste pas comment le faire. J'ai compris comment je peux changer les étiquettes, mais je ne sais pas comment redéfinir la fonction.Flex - Comment définir une fonction dans un composant à partir d'un autre?
Par souci de simplicité, disons que mon code ressemble à ceci:
main.mxml:
<?xml version="1.0" encoding="utf-8"?>
<mx:Module xmlns:fx="http://ns.adobe.com/mxml/2009" :s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/halo" creationComplete="init()">
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.managers.PopUpManager;
protected function init():void
{
var alertWindow:IFlexDisplayObject = PopUpManager.createPopUp(FlexGlobals.topLevelApplication as DisplayObject, popup, true);
PopUpManager.centerPopUp(alertWindow);
var popInstance:transmitRoundPop = alertWindow as transmitRoundPop;
popInstance.btnTest.label = "NEW";
}
]]>
</fx:Script>
</mx:Module>
popup.mxml:
<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/halo" width="400" height="300" xmlns:flash="services.flash.*">
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.managers.PopUpManager;
public function test():void
{
Alert.show("ORIGINAL");
PopUpManager.removePopUp(this);
}
]]>
</fx:Script>
<s:Panel x="10" y="10" width="380" height="280" title="Test" id="pnlTest">
<s:Button x="131" y="104" label="OLD" id="btnTest" click="test()"/>
</s:Panel>
</s:Group>
disent Maintenant, je veux changer test()
en popup.mxml lorsque vous l'appelez dans main.mxml ... comment faire? S'il vous plaît inclure des détails ... rappelez-vous que je suis un noob :-)
qu'entendez-vous par le test de changement()? Changer le code dedans? Les paramètres? – CookieOfFortune
Désolé, je ne pensais pas bien. Je voulais changer le code, ou plus exactement remplacer/redéfinir/redéfinir la fonction, mais je pense avoir trouvé la bonne façon de le faire maintenant. – Travesty3