2012-05-31 6 views
0

Je suis en train de créer un jeu en Flash CS5 ActionScript3 avec "DocumentMain.as" séparé pour le code et je veux l'importer dans un autre fichier SWF qui est le menu. Je veux quand je clique sur Démarrer dans le menu, il m'emmène au fichier de jeu!comment importer le fichier SWF a "DocumentMain.as" à un autre fichier swf?

Voici le code que j'utilise

btnstart.addEventListener(MouseEvent.CLICK,gamecontent); 
function gamecontent(myevent:MouseEvent):void{ 
    var myURL:URLRequest=new URLRequest("game.swf"); 
    myLoader.load(myURL); 
    myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler); 
    function onCompleteHandler(loadEvent:Event):void 
    { 
     addChild(loadEvent.currentTarget.content); 

    } 

} 

Cependant, il dose pas et il me montre ce message « TypeError: Erreur # 1009: Impossible d'accéder à une propriété ou une méthode d'une référence d'objet nul. à DocumentMain() "

S'il vous plaît j'ai besoin de votre aide !!! Merci beaucoup

Répondre

0

Pour trouver le problème, il est plus facile d'essayer d'ajouter le chemin complet du fichier game.swf dans le fichier URLRequest. Si cela fonctionne, alors vous savez que tout ce que vous avez à faire est de le changer "game.swf", ré-enregistrer le fichier-fla dans le même dossier que le fichier game.swf, et exporter la prévisualisation swf dans le même dossier et réessayer .. Cela a fonctionné pour moi quand j'avais exactement le même problème .. il ne semble tout simplement pas savoir où se trouve le dossier racine.

import flash.net.URLRequest; 
    import flash.display.Loader; 

    btnstart.addEventListener(MouseEvent.CLICK,gamecontent); 
    function gamecontent(myevent:MouseEvent):void{ 
    var myURL:URLRequest=new URLRequest("file:///c:/yourfolder/folder/game.swf"); 
    myLoader.load(myURL); 
    myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler); 
    function onCompleteHandler(loadEvent:Event):void 
      { 
      addChild(loadEvent.currentTarget.content);    
      } 
     } 
0

Vous accédez probablement stage dans le constructeur DocumentMain. Cela génère une erreur lors du chargement d'un fichier SWF dans un autre parce que l'étape n'est pas disponible immédiatement dans le fichier SWF enfant.

déplacer tout code qui accède à la scène à partir du constructeur DocumentMain à un gestionnaire ADDED_TO_STAGE, comme ceci:

public function DocumentMain() 
{ 
    addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler); 
} 

public function addedToStageHandler(ev:Event) 
{ 
    trace(stage); 
    //Code that was previously in the constructor 
} 
Questions connexes