【发布时间】: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