【问题标题】:ActionScript3 gotoAndPlay not finding frame.ActionScript3 gotoAndPlay 未找到框架。
【发布时间】: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); } 看看它的踪迹,如果其中一个是你所期望的标签跨度>
  • 上面的代码追踪到了什么?您的问题很可能是范围之一,您要么处于错误的场景中,要么定位错误的时间线。
  • 谢谢先生!使用它我能够找出范围是错误的。我很感激。
  • 如果我的回答(关于范围以及如何找出问题所在)解决了您的问题,请将其标记为已接受。

标签: actionscript-3 actionscript frame animate-cc


【解决方案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】:

    感谢您的反馈!

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

    【讨论】:

      猜你喜欢
      • 2018-10-30
      • 2016-10-03
      • 2014-12-07
      • 2011-09-21
      • 2018-12-02
      • 2014-07-14
      • 2013-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多