flash TweenLite onComplete 提前执行的问题

来源:互联网 发布:淘宝千人千面精刷平台 编辑:程序博客网 时间:2024/06/09 23:01

需要加上参数才会在完成后执行


举例:
st.alpha = 0;
TweenLite.to(st,3,{alpha:1,onComplete:Reload, onCompleteParams:[st,"df"]});
一般情况下,我们这样子写:
TweenLite.to(st,3,{alpha:1,onComplete:Reload});
经过测试发现,Reload 函数并不是在动画执行结束后执行的,而是动画一开始就行了。
翻遍互联网,发现需要带上参数才可以 确保动画结束后执行Reload,如下
TweenLite.to(st,3,{alpha:1,onComplete:Reload, onCompleteParams:[st,"df"]});

function Reload(e:MovieClip,dd:String):void
{
trace(dd);
st.Disp("single.xml");
}
如果需要在Disp里面的函数结束后,继续执行动画,可以才disp结束后这样子写:

public function Disp(xmlPath:String):void
{ var loader:URLLoader = new URLLoader();
//loader.load(new URLRequest("single.xml"));
loader.load(new URLRequest(xmlPath));
loader.addEventListener(Event.COMPLETE, showXML);
}

function showXML(e:Event):void
{
var desc:XML = new XML(e.target.data);

trace("now:"+this.alpha);
TweenLite.to(this,3,{alpha:0,delay:1});
}

原创粉丝点击