Nous développons un petit gamet Flash pour un de nos clients européens, qui nous demande de développer notre jeu Flash de manière à pouvoir charger notre jeu SWF dans leur environnement. Projet ActionScript 3, dynamiquement. Fondamentalement, ils ont une console qui va charger de nombreux autres jeux Flash, parmi les nôtres, selon le bouton sur lequel le joueur appuie sur un écran "Choisissez votre jeu". Fondamentalement, nous avons un projet FLA que nous sommes en train de créer dans Flash Professional CS4 et tout est essentiellement un jeu Flash simple. Lorsque nous testons le jeu via Ctrl + Entrée ou exécutez le fichier SWF compilé en double-cliquant dessus, tout fonctionne bien, le jeu s'exécute parfaitement et tout le monde est un lapin heureux.Chargement d'un fichier SWF dans un projet ActionScript 3 (Flex Builder)
Ce que nous devons saisir est de charger notre SWF dans nos clients projet AS3, qui est essentiellement un projet ActionScript 3 externe créé dans Flex Builder 3. Le client nous a affiché le code suivant pour charger le fichier SWF:
var myGame:FunkyChickenGame = new FunkyChickenGame();
addChild(myGame);
... qui est exécuté dans le constructeur de l'application ActionScript 3 de l'application cliente, ou peut-être un gestionnaire d'événement pour un bouton activé dans l'écran "Choisissez votre jeu".
Nous avons essayé de créer un projet AS3 vierge dans Flex Builder et essayé de charger le fichier SWF conformément à mon extrait ci-dessus. Toutes nos traces dans la classe de document SWF externe s'affichent comme prévu dans la vue de la console Flex Builder, de sorte que le code fonctionne parfaitement. Le problème que nous rencontrons est que malgré l'appel de addChild (myGame) ... nous ne voyons aucun graphique, juste la couleur d'arrière-plan par défaut du projet encapsulant AS3. Notez cependant, lorsque nous exécutons le fichier SWF en double-cliquant sur le fichier Game.swf dans Windows, tout s'exécute parfaitement, le jeu fonctionne sans faille et défauts.
Toute aide sur ce sujet serait grandement appréciée. Merci d'avance.
Vous n'avez pas d'erreur? Pour moi, cela ressemble à une référence de scène nulle dans votre Game.swf. Pouvez-vous penser à n'importe quel endroit où vous pourriez essayer de parler à la scène avant qu'une référence d'étape existe? La référence d'étape n'existera pas jusqu'à ce que addChild (myGame); s'exécute. –
Avez-vous un écouteur d'événement pour un événement Event.ADDED_TO_STAGE dans le constructeur de FunkyChickenGame? Cela vous permettra d'écouter quand votre jeu est ajouté à la scène (via la méthode addChild() de votre client), puis vous pouvez initialiser votre jeu lorsque cet événement est déclenché. – wpjmurray