- Envoi d'information d'un swf chargé dans Flex pour lancer une commande dans Flex
Je souhaite dans mon exemple afficher un message dans un composant text situé dans Flex.
- Je crée une variable qui va contenir les données a envoyer :
var mesInfos : String = "Voici mon texte";
- Je crée un bouton (ici nommé envoi_btn) qui déclenchera l'évènement d'envoi des données
envoi_btn.addEventListener(MouseEvent.CLICK, nomDeMaFonction);
- Je crée la fonction qui enverra les données
function nomDeMaFonction( evt:Event ):voidDans le Flex :
{
dispatchEvent(new Event("nomDeMonAction",true));
}
Je met un composant SWFLoader qui chargera mon swf, ici nommé monSwf
Je met un composant Text qui affichera les données envoyées, ici nommé affichage_txt
- Je crée une fonction qui récupère les données envoyées. Les éléments présents dans les 2 fichiers sont la variable 'mesInfos' et le 'nomDeMonAction'.
<![CDATA[
function initFlash():void
{
monSwf.content.addEventListener( "nomDemonAction" , handleEvent );
}
function handleEvent(evt:Event):void
{
var infoRecu : String = monSwf.content['mesInfos'];
affichage_txt.text=infoRecu;
}
]]>
- Je lance ma fonction initFlash au charment de ma page
<mx:Application ...creationComplete="initFlash()">
- Envoi d'information de Flex vers le swf chargé
Je souhaite dans mon exemple afficher un message dans un champs texte dynamique situé dans mon fla (ici nommé texteRecu_txt). Je souhaite également jouer la timeline principale.
- Je crée une fonction qui va envoyer du texte à Flash :
function envoiTexte():void
{
var eventTexte:TextEvent = new TextEvent(TextEvent.LINK);
eventTexte.text = "Texte envoyé par Flex";
monSwf.content.dispatchEvent(eventTexte);
}
- Je crée une fonction qui va déclencher une action dans Flash
function envoiAction():voidDans Flash :
{
var monAction:Event = new Event("joueAnim");
monSwf.content.dispatchEvent(monAction);
}
J'ai mon champs texte posé sur la scène et une timeline contenant plusieurs images.
Je crée le code qui va recevoir le texte de ma fonction envoiTexte et la fonction qui affichera ce texte dans mon champs.
//reception d'un texteJe crée le code qui va recevoir le texte de ma fonction envoiAction et la fonction onMyEvent qui contiendra les actions que je souhaite lancer à la réception de cet even.
this.addEventListener(TextEvent.LINK, onTextEvent);
function onTextEvent(evt:TextEvent){
texteRecu_txt.text=evt.text;
}
//reception d'une action
this.addEventListener("joueAnim", onMyEvent);
function onMyEvent(evt:Event){
play();
}
Aucun commentaire:
Enregistrer un commentaire