MovieClip实例我从库中影片剪辑“achtergrond”,我把在舞台上有这样的功能的正确方法:AS3找不到gotoAndStop在AS3
function set_game()
{
oefNr = 4;
var bg:achtergrond = new achtergrond();
bg.x = 0;
bg.y = 0;
bg.name = "bg";
bg.gotoAndStop ("uit");
addChild (bg);
set_next();
}
的影片剪辑包含2帧“aan”和“uit”,它从帧“uit”开始。 而且在我的游戏我想框设置为“AAN”,而播放声音时,就像这样:
function playSnd():void
{
getChildByName("bg").gotoAndStop("aan");
snd = new Sound(new URLRequest("phonetic_" + curArr[curSnd] + ".mp3"));
cnl = snd.play();
cnl.addEventListener (Event.SOUND_COMPLETE, completeSnd);
}
但对我的生活,我不能找到正确的方式来做到这一点。 Flash继续关于displayObjects和其他事情,我不知道为什么我无法解决我的动画片段。其实,我有一个线索,但没有比这更多。我不太了解Flash的这部分。
更简单的方法[如果资产不是动态创建的]就是引用带括号的项目,例如this [“bg”]。stop()或者如果你想要提示MovieClip(this [“bg”])。通常写得更快,但只有在您没有动态创建资产时才有效。但是,如果你这样做了,你可能会把它们存储在一个类变量中,而不需要通过另一个动画片段找到它 –
@DanielMesSer如你所见,资源是在函数set_game()中动态创建的。这一点你的评论我不明白:你可能有他们存储在一个类变量无论如何,不需要通过另一个动画片段找到它。你能解释一下吗? – silvith
在评论中编写描述性内容有点困难,但我会尝试。我的意思是,既然你动态地创建它们,你通常会在某种类中做它,然后你可以选择将它们存储在成员变量或数组或表格中或类似的东西中。比如在一个类里面:'var myBubbles:Array = [new Bubble(),new Bubble(),new Bubble()]'。然后做一些像myBubbleEmitter.addChild(myBubbles [0])这样的东西。'myOtherBubbleEmitter.addChild(myBubbles [1]);'因此,你真的不关心动态创建的东西的名称,因为你以另一种方式访问它们。说得通? –