當前位置:最新電影網 - 電影天堂 - flash怎麽刪除復制出來的(下雨)影片剪輯。

flash怎麽刪除復制出來的(下雨)影片剪輯。

其實實現妳這個效果有比用定時函數好得多的方法,但是先給出妳的修改:

_root.c = 0;

function cop() {

duplicateMovieClip("mc", _root.c, _root.c);

_root[_root.c]._x = random(400);

_root[_root.c]._y = random(200);

_root.c++;

if (_root.c>50) {

for (var i = 0; i<_root.c; i++) {

_root[i].unloadMovie();

}

clearInterval(_root.lop);

}

}

_root.lop = setInterval(cop, 200);

別看我改的很多,但是只是加多了壹個循環去刪除而已.其他的只是優化了妳的程序.(那個700我改成了50,700等到我都困了...而且很卡機)

那麽說說我的方法.其實flash的事件功能是很完善的,而且,事件是由系統觸發,利用這壹點,可以使得雨滴很好的與場景的事件軸吻合,達到"100幀"停止的效果.

給出我的代碼,方法不同但是效果是壹樣的:

_root.total = 100;

//這個是雨點總數

_root.stoptime = 100;

// 這個是停止的幀數

_root.steptime = 200;

// 這個是創建雨滴的間隔,以毫秒計

//---------------------以上內容可更改-----------------------------------

var i = 0;

_root.cop = function() {

duplicateMovieClip("mc", "mc"+i, _root.getNextHighestDepth());

_root["mc"+i]._x = random(400);

_root["mc"+i]._y = random(200);

if (i>=_root.total) {

clearInterval(_root.crt);

}

i++;

};

_root.crt = setInterval(_root.cop, _root.steptime);

_root.createEmptyMovieClip("lop", _root.getNextHighestDepth());

_root.lop.step = 0;

_root.lop.onEnterFrame = function() {

this.step++;

if (this.step>=_root.stoptime) {

for (var i = 0; i<=_root.total; i++) {

_root["mc"+i].removeMovieClip();

}

clearInterval(_root.crt);

this.unloadMovie();

}

};

我利用了壹個"載入幀"事件來捕捉每壹幀的播放,以達到計數目的.