需要代码才能使动画停止

时间:2013-09-20 20:43:58

标签: actionscript

尝试在as2中的第109帧停止此动画。我需要广告的任何帮助,以使其停止。这是一个五彩纸屑动画。

cnfNumber = 85;
var cnfs:Array = new Array("cnf", "cnf2", "cnf3","cnf4","cnf5") 
for (i=0; i<cnfNumber; i++) {
    newCnf = _root[cnfs[random(cnfs.length)]].duplicateMovieClip("snow"+i, i);
    newCnf._x = Math.random()*Stage.width;
    newCnf._y = -Math.random()*300;
    newCnf.maxCnfSpeed = Math.random()*4;
    newCnf.wind = Math.random()*6;
    newCnf._xscale = newCnf._yscale = newCnf.alpha = Math.random()*65+35
    newCnf.onEnterFrame = function() {
        this._rotation -= this.maxCnfSpeed+1;
        if(this._y>Stage.height || this._x>Stage.width || this._x<0){
            this._y = -Math.random()*300;
            this._x = Math.random()*Stage.width;
        } else {
            this._y += this.maxCnfSpeed+2;
            this._x += this.wind-4;
        }

        this._alpha = this.alpha;
    };
}

1 个答案:

答案 0 :(得分:0)

为什么不这样做:

newCnf._xscale = newCnf._yscale = newCnf.alpha = Math.random()*65+35
newCnf.frameCount = 0;
newCnf.onEnterFrame = function() {
    if(this.frameCount<109) {
        this._rotation -= this.maxCnfSpeed+1;
        if(this._y>Stage.height || this._x>Stage.width || this._x<0){
            this._y = -Math.random()*300;
            this._x = Math.random()*Stage.width;
        } else {
            this._y += this.maxCnfSpeed+2;
            this._x += this.wind-4;
        }
        this._alpha = this.alpha;
        this.frameCount++;
    } else {
        this.onEnterFrame = null;
    }
};

我暂时没有在Actionscript中工作,所以this.onEnterFrame = null可能不太正确,但并不是绝对必要的;它只是让五彩纸屑不会检查帧数并在完成动画制作后挽救每一帧。

如果您希望五彩纸屑消失而不是冻结,请将其卸下而不是清除其onEnterFrame。我不记得在我的脑海中做到这一点的功能,但duplicateMovieClip的文档应该有一个链接。

(我不会问为什么你还在使用AS2。)