ActionScript3 gotoAndPlay找不到帧。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ActionScript3 gotoAndPlay找不到帧。相关的知识,希望对你有一定的参考价值。

我是ActionScript 3的新手,但我非常清楚如何跳帧。但是,我在movieclip符号中嵌套了框架,我的代码找不到它们。我正在制作一个简单的平台游戏。

 ArgumentError: Error #2109: Frame label Stand Front Frame not found in 
scene Stand Front Frame.
at flash.display::MovieClip/gotoAndStop()
at menutest_fla::MainTimeline/frame813()
at flash.display::MovieClip/gotoAndPlay()
at menutest_fla::MainTimeline/fl_ClickToGoToScene_3()

这是我的代码,非常简单。我注意到没有输入错误。我无法弄清楚它为什么不起作用。任何帮助都将深表感谢,谢谢!

stop();
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
import flash.display.MovieClip;
import flash.events.Event;
import flash.display.Stage;


var upPressed:Boolean = false;
var downPressed:Boolean = false;
var leftPressed:Boolean = false;
var rightPressed:Boolean = false;

movieClip_5.addEventListener(Event.ENTER_FRAME, fl_MoveInDirectionOfKey_3);
stage.addEventListener(KeyboardEvent.KEY_DOWN, fl_SetKeyPressed_3);
stage.addEventListener(KeyboardEvent.KEY_UP, fl_UnsetKeyPressed_3);



movieClip_5.gotoAndStop("Stand Front Frame")

 function fl_MoveInDirectionOfKey_3(event:Event)
{
    if (upPressed)
    {
        movieClip_5.y -= 0;
    }
    if (downPressed)
    {
        movieClip_5.y += 0;
    }
    if (leftPressed)
    {
        movieClip_5.x -= 5;

    }
    if (rightPressed)
    {
        movieClip_5.x += 5;
    }
}

function fl_SetKeyPressed_3(event:KeyboardEvent):void
{
    switch (event.keyCode)
    {
        case Keyboard.UP:
        {
            upPressed = true;
            break;
        }
        case Keyboard.DOWN:
        {
            downPressed = true;
            break;
        }
        case Keyboard.LEFT:
        {
            leftPressed = true;
            movieClip_5.gotoAndPlay("Walk Forward Frame");
            break;
        }
        case Keyboard.RIGHT:
        {
            rightPressed = true;
            movieClip_5.gotoAndPlay("Walk Backwards Frame");
            break;
        }
    }
}

function fl_UnsetKeyPressed_3(event:KeyboardEvent):void
{
    switch (event.keyCode)
    {
        case Keyboard.UP:
        {
            upPressed = false;
            break;
        }
        case Keyboard.DOWN:
        {
            downPressed = false;
            break;
        }
        case Keyboard.LEFT:
        {
            leftPressed = false;
            movieClip_5.gotoAndPlay("Walk Backwards Frame");
            break;
        }
        case Keyboard.RIGHT:
        {
            rightPressed = false;
            movieClip_5.gotoAndPlay("Walk Forward Frame");
            break;
        }
    }
}

import flash.events.Event;
import flash.geom.Rectangle;
stage.addEventListener(Event.ENTER_FRAME, cameraFollowCharacter);
function cameraFollowCharacter(evt:Event){
 root.scrollRect = new Rectangle(movieClip_5.x - stage.stageWidth/3, movieClip_5.y - stage.stageHeight/1.5, stage.stageWidth, stage.stageHeight);
}
答案

从帧标签中删除空格(在代码和MovieClip的帧标签中)。

如果没有解决,请使用您的帧号而不是标签再次尝试。

leftPressed = true;
movieClip_5.gotoAndPlay(23);
break;
另一答案

大多数时候出现此错误,如果您确定框架标签中没有拼写错误,则问题就是范围问题。

分配给变量/实例名称movieClip_5的时间轴不是您认为的那个,或者您处于错误的场景中。

要仔细检查它不是拼写错误,并且要查看movieClip_5的所有帧标签,请执行以下操作(documentation中的示例代码):

import flash.display.FrameLabel;

var labels:Array = movieClip_5.currentLabels;

for (var i:uint = 0; i < labels.length; i++) {
    var label:FrameLabel = labels[i];
    trace("frame " + label.frame + ": " + label.name);
}

这会将来自movieClip_5当前场景的每个帧标签写入输出窗口。如果你没有看到你的期望,这意味着当这段代码运行时,你不在你期望的场景中,或者movieClip_5不是你认为的时间轴(也许你想要像movieClip_5这样的movieClip_5.someChildsInstanceName.gotoAndPlay("Walk Forward Frame")的孩子)。

另一答案

感谢您的反馈意见!

它最终成为一个符号问题,我没有在我正在调用的符号中正确嵌套框架。并不是最终的代码。我感谢您的帮助!

以上是关于ActionScript3 gotoAndPlay找不到帧。的主要内容,如果未能解决你的问题,请参考以下文章

带箭头键的 8 向图形动画

Flash AS3.0 - 错误 1180 调用可能未定义的方法 gotoAndPlay?

EaselJS SpriteSheet 没有响应 gotoAndPlay

as3 以普通影片剪辑的形式访问子项(gotoAndPlay 等)

Adobe animate CC Javascript gotoandplay 延迟

(movieclip1).gotoAndPlay 从另一个电影剪辑(movieclip2) 内部不起作用