首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TweenLite onComplete被立即解雇了?

TweenLite onComplete被立即解雇了?
EN

Stack Overflow用户
提问于 2010-03-26 00:35:59
回答 3查看 8.7K关注 0票数 1

在我完成一个补间之后,我想改变我的变量,然后只有我的鼠标移动才能开始运行一些函数,但似乎onComplete函数立即被触发,把所有的事情都搞乱了。onComplete函数不是只有在动作完成后才会运行吗?在运行Tween.to代码行之后,有没有其他方法可以像这样运行第二行代码来更改变量?

代码语言:javascript
复制
 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});
            }
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-03-26 01:25:09

onComplete应该是对函数的引用,即您需要的名称如下所示

代码语言:javascript
复制
TweenLite.to(vC, 10, {x:sect2X, y:sect2Y, rotation:0,ease:Elastic.easeInOut, onComplete:function(){currentPage=2}});

或者更好的是,定义一个不是‘内联’的函数,然后引用这个函数

票数 5
EN

Stack Overflow用户

发布于 2010-03-26 01:24:21

onComplete需要一个函数,所以如果您将currentPage=2放在一个函数中,并将函数名放在onComplete中,它就会起作用。

像这样:

代码语言:javascript
复制
TweenLite.to(vC, 10, {x:sect2X, y:sect2Y, rotation:0,ease:Elastic.easeInOut, onComplete: changePageStatus});


private function changePageStatus ():void {
     currentPage = 2
}

你也可以直接把这个函数写进补间调用中,但是get更麻烦。

票数 3
EN

Stack Overflow用户

发布于 2010-03-26 03:27:01

下面是我想出的解决方案,看起来不是那么完美:/

代码语言:javascript
复制
TweenLite.to(vC, 2, {x:sect2X, y:sect2Y, rotation:0,ease:Elastic.easeInOut});
                currentPage=2;
                break;


if ((vC.x==sect2X)&&(vC.y==sect2Y)&&(currentPage==2)) {
            currentPage=21;
        } else if (currentPage==21) {
run something
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2517426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档