2017-05-27 57 views
1

我收到此錯誤:的ActionScript 3 - 的ReferenceError:錯誤#1065:變量addFrameScript沒有定義

ReferenceError: Error #1065: Variable addFrameScript is not defined. at survival()

我有這個問題,當我運行這段代碼:

package { 
    import flash.display.Sprite; 
    import flash.events.Event; 
    import flash.events.KeyboardEvent; 
    import flash.display.*; 
    import flash.media.SoundMixer; 
    import flash.media.SoundTransform; 

    public class survival extends Sprite { 
     public var ground:ground_mc = new ground_mc(); 
     public var environment:environment_mc = new environment_mc(); 
     public var player:player_mc = new player_mc(); 
     public var monster:monster_mc = new monster_mc(); 
     public var light:Sprite=new Sprite ; 
     public var battery:battery_mc = new battery_mc(); 

     public var key_pressed:int=0; 
     public var radius:int=8; 
     public var player_speed:int=2; 
     public var monster_speed:int=1; 
     public var torch_power:int=150; 
     public var torch_step:int = 100; 
     public var torch_angle:int=60; 
     public var torch_angle_step:int=35; 
     public var up,down,left,right:Boolean=false; 
     public var flicker=0; 
     public var count:int; 
     public var sec:int; 
     public var torchBattery:int = 100; 

     var topLeft:Boolean = true; 
     var topRight:Boolean = false; 
     var bottomLeft:Boolean = false; 
     var bottomRight:Boolean = false; 

     public function survival():void { 
      addChild(ground); 
      addChild(environment); 
      addChild(light); 
      addChild(player); 
      addChild (battery); 
      addChild(monster); 

      player.x=250; 
      player.y=200; 
      battery.x=321; 
      battery.y=29; 
      environment.y = 0; 
      environment.x = 0; 

      ground.mask=light; 
      addEventListener(Event.ENTER_FRAME,on_enter_frame); 
      addEventListener(Event.ENTER_FRAME,on_enter_frame2); 
      stage.addEventListener(KeyboardEvent.KEY_DOWN, on_key_down); 
      stage.addEventListener(KeyboardEvent.KEY_UP, on_key_up); 
     } 

     public function on_enter_frame(e:Event):void { 
      if (up) { 
       environment.y+=player_speed; 
       ground.y+=player_speed; 
       monster.y+=player_speed; 
      } 
      if (down) { 
       environment.y-=player_speed; 
       ground.y-=player_speed; 
       monster.y-=player_speed; 
      } 
      if (left) { 
       environment.x+=player_speed; 
       ground.x+=player_speed; 
       monster.x+=player_speed; 
      } 
      if (right) { 
       environment.x-=player_speed; 
       ground.x-=player_speed; 
       monster.x-=player_speed; 
      } 
      if (environment.collisions.hitTestPoint(player.x, player.y+radius, true)) { 
       environment.y+=player_speed; 
       ground.y+=player_speed; 
       monster.y+=player_speed; 
      } 
      if (environment.collisions.hitTestPoint(player.x, player.y-radius, true)) { 
       environment.y-= player_speed; 
       ground.y-= player_speed; 
       monster.y-= player_speed; 
      } 
      if (environment.collisions.hitTestPoint(player.x-radius, player.y, true)) { 
       environment.x-= player_speed; 
       ground.x-= player_speed; 
       monster.x-= player_speed; 
      } 
      if (environment.collisions.hitTestPoint(player.x+radius, player.y, true)) { 
       environment.x+= player_speed; 
       ground.x+= player_speed; 
       monster.x+= player_speed; 
      } 

      var dist_x:Number=player.x-mouseX; 
      var dist_y:Number=player.y-mouseY; 
      var angle:Number=- Math.atan2(dist_x,dist_y); 
      player.rotation=to_degrees(angle); 
      light.graphics.clear(); 
      if (Math.random()*100>flicker) { 
       light.graphics.beginFill(0xffffff, 100); 
       light.graphics.moveTo(player.x, player.y); 
       for (var i:int=0; i<=torch_angle; i+=(torch_angle/torch_angle_step)) { 
        ray_angle = to_radians((to_degrees(angle)-90-(torch_angle/2)+i)); 
        for (var j:int=1; j<=torch_step; j++) { 
         if (environment.collisions.hitTestPoint(player.x+(torch_power/torch_step*j)*Math.cos(ray_angle), player.y+(torch_power/torch_step*j)*Math.sin(ray_angle), true)) { 
          break; 
         } 
        } 
        light.graphics.lineTo(player.x+(torch_power/torch_step*j)*Math.cos(ray_angle), player.y+(torch_power/torch_step*j)*Math.sin(ray_angle)); 
       } 
       light.graphics.lineTo(player.x, player.y); 
       light.graphics.endFill(); 
      } 

      if (torchBattery > 0) { 
       count += 1; 
       if (count >= 30) { 
        count = 0; 
        sec += 1; 
       } 

       if (sec >= 2) { 
        sec = 0; 
        flicker += 1; 
        torchBattery -= 1; 
         changeMovement(); 
       } 
      } 

      battery.battery.text = "Torch Battery: " + torchBattery + "%"; 


      var theDistance:Number = distance(monster.x, player.x, monster.y, player.y); 


      var myVolume:Number = 2-(0.004* theDistance); 
      var Volume:Number = myVolume; 
      if (Volume < 0) { 
       Volume = 0; 
      } 
      SoundMixer.soundTransform = new SoundTransform(Volume); 

      trace(theDistance); 

      if (distance < 100) { 
       removeEventListener(Event.ENTER_FRAME,on_enter_frame); 
       removeEventListener(Event.ENTER_FRAME,on_enter_frame2); 
       stage.removeEventListener(KeyboardEvent.KEY_DOWN, on_key_down); 
       stage.removeEventListener(KeyboardEvent.KEY_UP, on_key_up); 

       removeChild(ground); 
       removeChild(environment); 
       removeChild(light); 
       removeChild(player); 
       removeChild (battery); 
       removeChild(monster); 

       gotoAndStop(2); 
      } 
     } 

     function on_enter_frame2 (e:Event) :void { 
      if (environment.collisions.hitTestPoint(monster.x, monster.y+radius, true)) { 
       monster.y -= monster_speed; 
      } 
      if (environment.collisions.hitTestPoint(monster.x,monster.y-radius, true)) { 
       monster.y += monster_speed; 
      } 
      if (environment.collisions.hitTestPoint(monster.x-radius, monster.y, true)) { 
       monster.x+=monster_speed; 
      } 
      if (environment.collisions.hitTestPoint(monster.x+radius, monster.y, true)) { 
       monster.x -= monster_speed; 
      } 
      if (topLeft) { 
       monster.x -= monster_speed; 
       monster.y -= monster_speed; 
      } else if (topRight) { 
       monster.x += monster_speed; 
       monster.y -= monster_speed; 
      } else if (bottomLeft) { 
       monster.x -= monster_speed; 
       monster.y += monster_speed; 
      } else if (bottomRight) { 
       monster.x += monster_speed; 
       monster.y += monster_speed; 
      } 


     } 

     function changeMovement():void { 
      var die2:Number = Math.floor(Math.random()*4); 
      if (die2 == 1) { 
       topLeft = true; 
       topRight = false; 
       bottomLeft = false; 
       bottomRight = false; 
      } 
      if (die2 == 2) { 
       topLeft = false; 
       topRight = true; 
       bottomLeft = false; 
       bottomRight = false; 
      } 
      if (die2 == 3) { 
       topLeft = false; 
       topRight = false; 
       bottomLeft = true; 
       bottomRight = false; 
      } 
      if (die2 == 4) { 
       topLeft = false; 
       topRight = false; 
       bottomLeft = false; 
       bottomRight = true; 
      } 
     } 

     public function on_key_down(e:KeyboardEvent):void { 
      switch (e.keyCode) { 
       case 37 : 
        left=true; 
        break; 
       case 38 : 
        up=true; 
        break; 
       case 39 : 
        right=true; 
        break; 
       case 40 : 
        down=true; 
        break; 
       /*case 49 : 
        torch_power++; 
        break; 
       case 50 : 
        torch_power--; 
        break;*/ 
      } 
     } 
     public function on_key_up(e:KeyboardEvent):void { 
      switch (e.keyCode) { 
       case 37 : 
        left=false; 
        break; 
       case 38 : 
        up=false; 
        break; 
       case 39 : 
        right=false; 
        break; 
       case 40 : 
        down=false; 
        break; 
      } 
     } 
     public function to_radians(n:Number):Number { 
      return (n*0.0174532925); 
     } 
     public function to_degrees(n:Number):Number { 
      return (n*57.2957795); 
     } 


     function distance(x1:Number, x2:Number, y1:Number, y2:Number): Number { 
      var dx:Number = x1-x2; 
      var dy:Number = y1-y2; 
      return Math.sqrt(dx * dx + dy * dy); 
     } 
    } 
} 

在我的時間表我有一個空白的關鍵幀,帶有播放音樂盒的音效,第二幀帶有動畫jumpscare。這個遊戲就是你可以鳥瞰火炬在迷宮中漫步的人。 「怪物」​​在迷宮中移動,你必須遠離它。隨着距離越來越近,正在播放的音樂盒會變得越來越響。另外,你的手電筒只有一定的電量。隨着電池電量的減少,手電筒將閃爍更多,直至最終停止工作。直到我試圖進行跳躍訓練時,它纔開始行動起來。這是遊戲中的所有編碼。
在「編譯器錯誤」也規定:

/Users/ethan/Documents/Flash Stuff/Flash Stuff [from macbook]/survival/survival.as, Line 164 Warning: 1060: Migration issue: The method gotoAndStop is no longer supported. For more information, see MovieClip.gotoAndStop().. 

任何建議或幫助,我會很感激。

回答

2

Sprite類沒有gotoAndStop方法。此方法僅在MovieClip類中實現。所以,你應該更換

public class survival extends Sprite {

public class survival extends MovieClip {

+0

啊,現在它的工作完美!謝謝您的幫助。 –

相關問題