2017-04-21 7 views
1

ゲームを実行しようとするとエラーが発生します。すべてのクラスについて、public属性はパッケージ内でのみ使用でき、この行では "private function moveMe" "private属性はクラス関数でのみ使用できます"というエラーが表示されます。 asファイルが適切にリンクされているかどうかを確認しました。私は問題が何であるか分かりません。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

関連する問題