_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();
}
};
我利用了壹個"載入幀"事件來捕捉每壹幀的播放,以達到計數目的.