2017-02-16 1 views
1

Actuellement, je suis encore très jeune aux classes en flash. J'ai regardé des tonnes de vidéos sur eux et j'essaie d'en apprendre plus sur la programmation orientée objet. Cela étant dit, j'ai commencé à définir des variables et à les assigner à des symboles dans ma bibliothèque, le tout dans mon fichier de classe. Lorsque j'utilise ces variables dans mon code, je reçois un message contextuel de message d'erreur qui dit ce qui suitDéfinition de variables dans le fichier de classe causant des accidents

Message d'erreur:

TypeError: Error #1009: Cannot access a property or method of a null object reference. at Movement()[C:\Users\Kevin\Main Directory\Flash\Clients\org\tcdsb\ZenithsReach\Movement.as:12] at game/frame1()[game::frame1:4] at runtime::ContentPlayer/loadInitialContent() at runtime::ContentPlayer/playRawContent() at runtime::ContentPlayer/playContent() at runtime::AppRunner/run() at ADLAppEntry/run() at global/runtime::ADLEntry()

Mon fichier de classe Movement.as:

package 
{ 
    import flash.display.MovieClip; 
    import flash.events.TouchEvent; 

    public class Movement extends MovieClip 
    { 
     function Movement() 
     { 
      trace("SUCCESS | Constructed Movement Class"); 
      down_dpad.addEventListener(TouchEvent.TOUCH_BEGIN, moveDownTouchBEGIN); 
      down_dpad.addEventListener(TouchEvent.TOUCH_END, moveDownTouchEND); 
      var inMotion:Boolean = false; 

      var area1:Boolean = true; 
      var area2:Boolean = false; 
      var area3:Boolean = false; 

      var player1:Boolean = true; 
      var playerPosKeeper_mc:MovieClip = new mc_PlayerPosKeeper ; 
      addChild(playerPosKeeper_mc); 
      playerPosKeeper_mc.x = 384; 
      playerPosKeeper_mc.y = 46; 

      var up_dpad:MovieClip = new dpad_Up ; 
      addChild(up_dpad); 
      up_dpad.x = 55; 
      up_dpad.y = 346; 

      var down_dpad:MovieClip = new dpad_Down ; 
      addChild(down_dpad); 
      down_dpad.x = 57; 
      down_dpad.y = 442; 

      var left_dpad:MovieClip = new dpad_Left ; 
      addChild(left_dpad); 
      left_dpad.x = 19; 
      left_dpad.y = 382; 

      var right_dpad:MovieClip = new dpad_Right ; 
      addChild(right_dpad); 
      right_dpad.x = 118; 
      right_dpad.y = 382; 

      var menu_dpad:MovieClip = new dpad_Menu ; 
      addChild(menu_dpad); 
      menu_dpad.x = 61; 
      menu_dpad.y = 386; 

      var run_dpad:MovieClip = new dpad_Menu ; 
      addChild(run_dpad); 
      run_dpad.x = 684; 
      run_dpad.y = 386; 

      var barrierRoof1_game:MovieClip = new game_BarrierRoof ; 
      addChild(barrierRoof1_game); 
      barrierRoof1_game.x = 0; 
      barrierRoof1_game.y = 0; 

      var barrierRoof2_game:MovieClip = new game_BarrierRoof ; 
      addChild(barrierRoof2_game); 
      barrierRoof2_game.x = 0; 
      barrierRoof2_game.y = 470; 

      var barrierSide1_game:MovieClip = new game_BarrierSide ; 
      addChild(barrierSide1_game); 
      barrierSide1_game.x = 790; 
      barrierSide1_game.y = 0; 
      function moveDownTouchBEGIN(e:TouchEvent):void 
      { 
       if (player1 == true) 
       { 
        if (area1 == true) 
        { 
         if (playerPosKeeper_mc.hitTestObject(barrierRoof1_game)) 
         { 

         } 
        } 
        else 
        { 
         // add other areas in the future 
        } 
       } 
       else 
       { 
        // if your not player1, then we need to find out what you are, 
        // and give you the proper walking animations 
       } 
      } 

      function moveDownTouchEND(e:TouchEvent):void 
      { 

      } 

     } 

    } 

} 
+0

Vous avez une bonne réponse. Utilisez le '✓' pour marquer comme résolu afin que les autres sachent qu'il y a une réponse qui fonctionne. –

Répondre

3

Vous avez fait ...

down_dpad.addEventListener(TouchEvent.TOUCH_BEGIN, moveDownTouchBEGIN); 

Avant objet down_dpad est créé à la ligne

var down_dpad:MovieClip = new dpad_Down ; 

Alors il suffit de déplacer vers le haut

supports que vous avez aussi oublié pour vos classes:
Doit être new dpad_Down(); à travailler ... pas actuellement utilisé new dpad_Down ;

+0

Salut. Je l'ai corrigé, mais je suis confronté au problème où mes objets ne sont pas ajoutés à la scène. – UnAlpha

+0

Je ne peux pas poster mon code, car c'est trop long. Tout cela peut être consulté à http://pastebin.com/hN8w0Rvk – UnAlpha

+0

Je ne suis pas fort avec MovieClips, mais pense que c'est parce que vous ne définissez pas la largeur et la hauteur de vos objets (ne pas être sûr qu'ils pourraient automatiquement le prendre de sources) – Selirion