我的库中有一个movieclip“achtergrond”,我把它放在舞台上,有这样的功能:
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和其他东西,我不知道为什么我不能解决我的movieclip。实际上,我有一个线索,但仅此而已。我还不太了解Flash的这一部分。
答案 0 :(得分:0)
答案是,如果我尝试像这样访问我的剪辑:this [“bg”]或getChildByName(“bg”)我指的是 DisplayObject 。 这没有 MovieClip 的所有方法,就像我在这种情况下需要的 gotoAndStop 一样。
我宣布了一个新变量:
var movie:MovieClip;
然后我将DisplayObject作为MovieClip投射并将其放入var 电影:
function set_game ()
{
oefNr = 4;
var bg:achtergrond = new achtergrond();
bg.x = 0;
bg.y = 0;
bg.name = "bg";
bg.gotoAndStop ("uit");
addChild (bg);
movie = this.getChildByName("bg") as MovieClip;
set_next ();
}
现在我可以使用特定于MovieClip的方法,例如gotoAndStop:
function playSnd ():void
{
movie.gotoAndStop("aan");
snd = new Sound(new URLRequest("phonetic_" + curArr[curSnd] + ".mp3"));
cnl = snd.play();
cnl.addEventListener (Event.SOUND_COMPLETE, completeSnd);
}
启发的答案
答案 1 :(得分:-1)
bg.name = "bg";
实际上很多次这段代码都无法正常工作。因此,您应该获得" achtergrond"的真实实例名称,而不是设置名称。对象,而不是必须使用此实例名称。
另一种解决方案:
我认为achtergrond是单个对象,所以为什么要用它来" getChildByName"?像bg.gotoAndStop();
一样使用它。