2017-04-21 31 views
1

每當我嘗試運行遊戲時,都會收到錯誤。我得到每個類的錯誤,說公共屬性只能在包中使用,並且在這一行中使用「private function moveMe」,「private屬性只能用於類函數」。我驗證瞭如果我有正確的文件鏈接。我不確定問題是什麼。AS3類Public Atributte

package { 
     import flash.display.MovieClip; 
     import flash.utils.Timer; 
     import flash.events.TimerEvent; 
     import flash.events.MouseEvent; 
     import flash.events.Event; 
     import flash.events.Event; 

     public class banana_fall extends MovieClip { 

      public function banana_fall(){ 
      var velX:Number=0; 
      var velY:Number=0; 
      var falling:Boolean=false; 
      var gravity:Number=2; 


       public function banana() { 
       var timing:Timer = new Timer(20,0); 
       timing.addEventListener(TimerEvent.TIMER,moveMe); 
       timing.start(); 

       } 

       private function moveMe(event:TimerEvent){ 
       this.x=this.x+velX; 
       this.y=this.y+velY; 

       if (falling) { 
        velY=velY+gravity; 
       } 
      } 

       public function setSpot(atX,atY){ 
       this.x=atX; 
       this.y=atY; 
      } 

      // 
      public function setSpeed(dx,dy){ 
       velX=dx; 
       velY=dy; 
      } 

       } 

     } 

    } 

回答

3

問題是你的公共職能是在你的構造函數中,它不能在as3中工作。 試試這個代碼:

package { 
    import flash.display.MovieClip; 
    import flash.utils.Timer; 
    import flash.events.TimerEvent; 
    import flash.events.MouseEvent; 
    import flash.events.Event; 
    import flash.events.Event; 

    public class banana_fall extends MovieClip { 

     var velX: Number = 0; 
     var velY: Number = 0; 
     var falling: Boolean = false; 
     var gravity: Number = 2; 

     public function banana_fall() { 
      var timing: Timer = new Timer(20, 0); 
      timing.addEventListener(TimerEvent.TIMER, moveMe); 
      timing.start(); 

     } 

     private function moveMe(event: TimerEvent) { 
      this.x = this.x + velX; 
      this.y = this.y + velY; 

      if (falling) { 
       velY = velY + gravity; 
      } 
     } 

     public function setSpot(atX, atY) { 
      this.x = atX; 
      this.y = atY; 
     } 

     // 
     public function setSpeed(dx, dy) { 
      velX = dx; 
      velY = dy; 
     } 

    } 

} 
+0

謝謝!有效。 – Catalina