Actionscript 3 - ReferenceError: Error #1065: Variable addFrameScript is not defined

Actionscript 3 - ReferenceError: Error #1065: Variable addFrameScript is not defined

我收到这个错误:

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);
        }
    }
}

在我的时间轴上,我有一个带有音乐盒播放音效的空白关键帧,还有一个带有动画跳杀的第二帧。游戏是你在鸟瞰中看到一个拿着火炬的人穿过迷宫。 'monster'在迷宫中移动,你必须远离它。随着它越来越近,正在播放的八音盒的声音会越来越大。此外,您的手电筒只有一定数量的电池。随着电池电量的减少,手电筒会闪烁得更多,直到它最终停止工作。在我尝试制作 jumpscare 之前它一直很好用。这就是游戏中的所有编码。
在 'Compiler Errors' 中还指出:

 /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()..

如有任何建议或帮助,我将不胜感激。

Sprite Class 没有 gotoAndStop 方法。此方法仅在 MovieClip class 中实现。所以,你应该更换

public class survival extends Sprite {

public class survival extends MovieClip {