2017-05-27 62 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

啊,现在它的工作完美!谢谢您的帮助。 –

相关问题