(AS3)更新渐变的起始坐标



我想尝试使用AS3 Tween class在http://www.freeactionscript.com/2009/10/simple-accordion-menu/实现Arrcordion菜单。

所以我使用了2个屏幕影片剪辑,位于舞台的右侧当我点击屏幕时,它会向左补间

我的代码

import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;
var second:int = 1;
var x1:int = screen01.x; //screen01.x = 430
var x2:int = screen02.x; // screen02.x = 470
var Tween1:Tween = new Tween(screen01, "x", Regular.easeOut, x1, 40, second, true);
var Tween2:Tween = new Tween(screen02, "x", Regular.easeOut, x2, 470, second, true);
var Tween3:Tween = new Tween(screen01, "x", Regular.easeOut, x1, 40, second, true);
var Tween4:Tween = new Tween(screen02, "x", Regular.easeOut, x2, 80, second, true);
screen01.addEventListener(MouseEvent.CLICK, clickHandler, false, 0, true);
screen02.addEventListener(MouseEvent.CLICK, clickHandler, false, 0, true);
function clickHandler(event:MouseEvent):void{
        x1 = screen01.x;
        x2 = screen02.x;
        if(event.target == screen01)
        {
            Tween1.start()
            Tween2.start()              
        }
        else if(event.target == screen02)
        {   
            Tween3.start()
            Tween4.start()
        }
}

但是为什么当我点击screen01时,它会向左渐变。然后我点击屏幕02和屏幕01返回到430之前,他们都渐变。当我在MouseEvent中跟踪x1和x2时,坐标已经更新,所以为什么屏幕01不保持在40,而屏幕02向左渐变?此外,如果屏幕02是打开的,当我点击屏幕01时,两个屏幕都返回到它们的原始位置430和470和屏幕01间。

我可以假设我的问题是Tween1,Tween2,Tween3和Tween4开始坐标在初始化后没有改变。是否有办法更新4个补间的起始坐标,使它们等于x1和x2?

可以终止()补间并开始另一个。物体已经部分移动,并将从该点开始继续移动。如果你想让移动成比例,那么使用计时器并使用currentTime和totalTime之间的比率(类似的东西),然后只需改变距离,将比率乘以。

最新更新