2010-04-13 7 views
0

Hé les gars, je vais avoir du mal aujourd'hui.Communiquer avec le parent SWF

J'ai un jeu, je l'ai chargé dans un fichier SWF parent -

Je voudrais que mon parent SWF d'accepter les événements j'expedie à partir du jeu, ou ont la capacité de parler dans les deux sens.

- La raison est, je voudrais décharger et recharger le jeu une fois que l'écran de fin est actif.

Toute aide et je vais vous donner de la bière.

merci d'avance.

Répondre

0

sont les événements envoyés par votre jeu autorisé à bulles à votre swf loader ? La valeur par défaut du constructeur d'événement définit cette valeur sur false. Si vous deviez le définir sur true, cependant, un événement envoyé par un swf enfant le ferait à l'écouteur de son parent.

Par exemple: this.dispatchEvent(new Event("SOME_GAME_EVENT", true, true));

La première « vraie » valeur dit que l'événement devrait bouillonner dans la hiérarchie d'objets. La seconde dit que l'événement est annulable. Une fois que votre swf de chargeur a géré l'événement, il est préférable d'appeler .stopPropagation() sur l'événement afin qu'il n'émette pas de bulles inutiles.

+0

Merci - cela a fonctionné. Je peux maintenant capturer au niveau des événements parentSWF envoyés par le jeu. Le bonus de cette méthode est qu'il n'y a pas de couplage SWF - par conséquent GC'ing the childSWF fonctionne plus tard. merci encore TurquieBurger – Glycerine

0

ne peut pas vous mettre dans votre parentSWF:

childSWF.addEventListener (MyCustomEvent.SOME_EVENT, auditeur) et juste distribuer les événements du jeu?

Quant à parler dans l'autre sens, il peut appeler childSWF.someFunction() pour appeler des fonctions dans la classe de documents de childSWF, etc.

+0

est-ce vraiment si simple? Quand j'ai envoyé l'événement de l'enfant, j'ai trouvé que je ne pouvais pas les accepter dans le parent. Où dois-je expédier l'événement de l'intérieur de l'enfant? Est-ce la classe de document? Et en écoutant le même enfant dans le parent je dois écouter sur l'objet lui-même - pas une propriété comme "childSWF.content"? – Glycerine

+0

J'avais supposé que vous aviez 'childSWF = loader.content comme MovieClip' déjà. et cela devrait fonctionner, peu importe d'où vous envoyez l'événement, tant qu'il n'est pas annulé et qu'il fait des bulles. J'avais lu quelque part que les swfs peuvent devoir être dans le même domaine d'application ou quelque chose. J'espère que ce n'est pas le cas, car cela devient beaucoup plus compliqué. – jonathanasdf

+1

en fait, semble que vous pourriez vouloir regarder dans Loader.sharedEvents: http://richardleggett.co.uk/blog/index.php/2009/04/02/loading-swfs-into-air-1-5-and -info info – jonathanasdf

Questions connexes