尝试淡出动作脚本2中的影片剪辑对象。
它似乎仅在影片剪辑关键帧从第1帧开始时起作用。如果在它之前有空帧,则它不起作用。如何更改代码,这不是问题?
function FadeOut(Clip:MovieClip, Velocidad:Number) {
Clip.onEnterFrame = function () {
if (Clip._alpha > 0) {
Clip._alpha -= Velocidad;;
} else {
this.onEnterFrame = null;
this.FadeOutEnd();
}
}
}
FadeOut(outr, 5);
有什么想法吗?谢谢!
答案 0 :(得分:1)
我试着用一个例子来解释会发生什么。
我的root
中有2个剪辑,第一个,clp1
,我的第一个关键帧是第1帧,当我FadeOut(clp1, 5)
时,这个效果非常好而且它需要20帧(100/5 = 20)或20次Clip.onEnterFrame
次迭代,
对于我的第二个剪辑clp2
,我的第一个关键帧是第20帧,所以在这里我没有看到任何内容,为什么?我们的FadeOut() function
可以在20帧中完成所有工作,因此在clp2
的第20帧,FadeOut()
已经完成,所以
我们将clp2
与alpha = 100
联系起来。所以,为了做你想做的事情,我们应该在onEnterFrame
和clp2.gotoAndStop(20)
上进行,以查看所有(100%)褪色效果。当然,如果我们的第一个关键帧是5,例如,我们只会看到75%的衰落效果。
我希望我的解释清楚,并帮助你得到你想要的东西。
编辑:
我认为使用this.gotoAndStop(this._framesloaded)
可以做你想做的事,尝试一下,然后告诉我你的想法。
function FadeOut(Clip:MovieClip, Velocidad:Number) {
Clip.onEnterFrame = function () {
this.gotoAndStop(this._framesloaded)
if (this._alpha > 0) {
this._alpha -= Velocidad
} else {
delete this.onEnterFrame // it's the same as : this.onEnterFrame = null
//this.FadeOutEnd()
}
}
}
FadeOut(clp_01, 5);