在我完成一个补间之后,我想改变我的变量,然后只有我的鼠标移动才能开始运行一些函数,但似乎onComplete函数立即被触发,把所有的事情都搞乱了。onComplete函数不是只有在动作完成后才会运行吗?在运行Tween.to代码行之后,有没有其他方法可以像这样运行第二行代码来更改变量?
stage.addEventListener(MouseEvent.MOUSE_MOVE, movevC);
public static function showSection(obj:DisplayObject):void {;
var sect2X=((obj.stage.stageWidth/2)+(obj.stage.stageWidth/4))+lg.width;
var sect2Y=((obj.stage.stageHeight/2)-(obj.stage.stageHeight/4))+lg.height;
switch (obj.name) {
case "section2" :
//onComplete run instantly??
TweenLite.to(vC, 10, {x:sect2X, y:sect2Y, rotation:0,ease:Elastic.easeInOut, onComplete:currentPage=2});
/*if ((vC.x=sect2X)&&(vC.y=sect2Y)) {
currentPage=2;
}*/
break;
}
}
private function movevC(event:MouseEvent):void {
if (currentPage==2) {
TweenLite.to(vC, 2, {x:mouseX, y:mouseY});
}
}发布于 2010-03-26 01:24:21
onComplete需要一个函数,所以如果您将currentPage=2放在一个函数中,并将函数名放在onComplete中,它就会起作用。
像这样:
TweenLite.to(vC, 10, {x:sect2X, y:sect2Y, rotation:0,ease:Elastic.easeInOut, onComplete: changePageStatus});
private function changePageStatus ():void {
currentPage = 2
}你也可以直接把这个函数写进补间调用中,但是get更麻烦。
https://stackoverflow.com/questions/2517426
复制相似问题