2017-04-21 32 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