2017-02-16 24 views
1

В настоящее время я все еще очень новичок в классах во flash. Я смотрел множество видеороликов о них, и я пытаюсь узнать больше об объектно-ориентированном программировании.Определение переменных в файле класса, вызывающих сбои

С учетом сказанного я начал определять переменные и назначать их символам в своей библиотеке, все в моем файле класса. Когда я использую эти переменные в моем коде, я получаю сообщение об ошибке всплывающее окно, которое говорит следующее сообщение

Ошибка:

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()

Мой класс файл 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

У вас есть правильный ответ. Используйте «✓», чтобы отметить, как решили, чтобы другие знали, что есть рабочий ответ. –

ответ

3

Вы имеете сделано ...

down_dpad.addEventListener(TouchEvent.TOUCH_BEGIN, moveDownTouchBEGIN); 

Перед объектом down_dpad создается в строке

var down_dpad:MovieClip = new dpad_Down ; 

Так просто переместить его вверх

Также вы забыли кронштейны для классов:
Должно быть new dpad_Down(); работать ... не в настоящее время используется new dpad_Down ;

+0

Привет. Я исправил это, но я столкнулся с проблемой, когда мои объекты не добавляются на сцену. – UnAlpha

+0

Я не могу опубликовать свой код, поскольку он слишком длинный. Все это можно посмотреть по адресу http://pastebin.com/hN8w0Rvk – UnAlpha

+0

Я не сильно разбираюсь с мувиклипами, но думаю, что это потому, что вы не задаете ширину и высоту для своих объектов (не уверен, что они могут автоматически возьмите его из источников) – Selirion