ActionScript3 gotoAndPlay 未找到框架。

Posted

技术标签:

【中文标题】ActionScript3 gotoAndPlay 未找到框架。【英文标题】:ActionScript3 gotoAndPlay not finding frame. 【发布时间】:2018-08-05 10:43:14 【问题描述】:

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

 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_5.gotoAndStop("Stand Front Frame");代码行的右边上面import flash.display.FrameLabel; var labels:Array = mc1.currentLabels; for (var i:uint = 0; i < labels.length; i++) var label:FrameLabel = labels[i]; trace("frame " + label.frame + ": " + label.name); 看看它的踪迹,如果其中一个是你所期望的标签跨度> 上面的代码追踪到了什么?您的问题很可能是范围之一,您要么处于错误的场景中,要么定位错误的时间线。 谢谢先生!使用它我能够找出范围是错误的。我很感激。 如果我的回答(关于范围以及如何找出问题所在)解决了您的问题,请将其标记为已接受。 【参考方案1】:

从您的帧标签中删除您的空格(在您的代码和影片剪辑的帧标签中)。

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

leftPressed = true;
movieClip_5.gotoAndPlay(23);
break;

【讨论】:

您对 menutest_fla 帧 813 有什么操作?它导致了错误!【参考方案2】:

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

分配给变量/实例名称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"))。

【讨论】:

【参考方案3】:

感谢您的反馈!

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

【讨论】:

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

带箭头键的 8 向图形动画

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

EaselJS SpriteSheet 没有响应 gotoAndPlay

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

Adobe animate CC Javascript gotoandplay 延迟

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