我正在尝试构建一个简单的 Flash 游戏,用户将草帽拖到仙人掌上。我有它,所以当你将草帽拖到仙人掌以外的任何地方时,它会弹回原来的位置。我有它,所以当你把它拖到仙人掌上时,它就呆在那里。
我想要的是当用户将草帽拖到仙人掌上时,它会将您带到一个屏幕上,上面写着“耶!再玩一次?” 我在 if 语句中放了一个 gotoAndPlay() :
if(dropTarget.parent.name == "cactus")
{
//scaleX = scaleY = 0.2;
//alpha = 0.2;
//y = stage.stageHeight - height - -100;
//buttonMode = false;
//removeEventListener(MouseEvent.MOUSE_DOWN, down);
gotoAndPlay("playAgain");
trace("dropped on cactus");
}
else
{
returnToOriginalPosition();
}
我将第二帧标记为“playAgain”。我收到一条错误消息:ArgumentError: Error #2109: Frame label playAgain not found in scene playAgain。在 flash.display::MovieClip/gotoAndPlay() 在 net.dndgtal.Cactus_Game::sombrero/stageUp()
我已经谷歌搜索并检查并仔细检查了所有建议,但无法让它发挥作用。我没有场景“playAgain”,只有“scene1”。我试过同时指定场景和框架——这也不起作用。我尝试只为第二帧添加 gotoAndPlay(2),但这无济于事。
我错过了什么吗?任何帮助,将不胜感激。如果有帮助,这是我的所有代码:
package net.dndgtal.Cactus_Game
{
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.geom.Point;
public class sombrero extends MovieClip
{
protected var OriginalPosition:Point;
public function sombrero ()
{
OriginalPosition = new Point(x, y);
buttonMode = true;
addEventListener ( MouseEvent.MOUSE_DOWN, down );
//trace("sombrero constructor");
}
protected function down (event:MouseEvent):void
{
parent.addChild(this);
startDrag();
stage.addEventListener(MouseEvent.MOUSE_UP, stageUp);
//trace("DOWN");
}
protected function stageUp(event:MouseEvent):void
{
stage.removeEventListener(MouseEvent.MOUSE_UP, stageUp);
stopDrag();
if (dropTarget)
{
if(dropTarget.parent.name == "cactus")
{
//scaleX = scaleY = 0.2;
//alpha = 0.2;
//y = stage.stageHeight - height - -100;
//buttonMode = false;
//removeEventListener(MouseEvent.MOUSE_DOWN, down);
gotoAndPlay("playAgain");
trace("dropped on cactus");
}
else
{
returnToOriginalPosition();
}
}
else
{
returnToOriginalPosition();
}
}
protected function returnToOriginalPosition(): void
{
x = OriginalPosition.x;
y = OriginalPosition.y;
}
}
}
谢谢!如果您有任何问题,请告诉我。