0

我正在制作一个有 2 个关卡、3 个场景的游戏。在最后一个场景之后,它将回到第一个场景的开头。问题出在最后一个场景中,我制作了一个 MC 循环,这些 MC 是使用以下代码拍摄的目标:

for(i=1;i<=numTarget;i++){
    tar=_root.attachMovie("mcTarget","t"+i,i);
    tar._x=random(Stage.width);
    tar._y=-random(Stage.height);
    tar._xscale=random(50)+50;
    tar._yscale=tar._xscale;
    tar.onEnterFrame=targetRun;
}

function targetRun(){
    this._y+=spdTarget*(this._xscale/100);
    if(this._y>Stage.height){
        this._x=random(Stage.width);
        this._y=-this._height;
    }

我发现他们在第一个场景中一次又一次地出现,直到我进入第二个场景。我尝试了很多代码,现在一整天都把它们放在很多地方。我想要的是在我使用间隔代码的时间结束后删除它们。

我尝试过的,例如:

tar=delete _root.attachMovie("mcTarget","t"+i,i);
    mcTarget.swapDepths(_root.getNextHighestDepth(0));
    mcTarget.removeMovieClip();

或更改数量

numTarget=0;

或者在真正的第一个场景之前创建一个假场景。还有这段代码,

_root.tar.swapDepths(_root.getNextHighestDepth());
    _root.tar.removeMovieClip();

或者

mcTarget._visible=false;
_root.tar._visible=false; 
tar._visible=false;

我还能做什么?

4

1 回答 1

0

好的...因为我可以找到如何摆脱我制作为循环的 MC(s)(电影剪辑)的答案,所以我将在此处发布答案。在这种情况下,有 2 个场景,所以第一个是有 MC 的场景,另一个是我要停止 MC 的场景

要停止它,请转到第二个场景并将该 for 代码添加到您将 #1 场景放入帧中

   for(i=1;1<=numTarget;i+1){
delete this["t"+i"].onEnterFrame;
this["t"+i].removeMovieClip();
}

请注意,您必须按照您的更改代码。

//使用delete _root..... <<我以前做的没有用,有人说因为这段代码会全部删除函数和所有没有手动放置在屏幕上的mc并将其卡在屏幕左上角 :P 它也确实发生在我身上。

于 2013-01-31T14:55:10.617 回答