0

我的 Flash AS3 脚本如下,我的问题是如何在移动时找到(跟踪)补间对象的 Y 位置...

我想知道这样的位置:objectA = -50, 0, 25, 50 ... 150, 170, 180, 200, 210 ..., 750, 800。

var objTween = new Tween(objectA, "y", Strong.easeOut, -100, 800, 15, true);
objTween.start();
4

3 回答 3

1

另外,如果您只想打印出值,则可以直接运行补间函数,我认为这很酷

for (var i:int=0; i< 15*60; i++) {
    trace (Strong.easeOut(i, -100, 800, 15*60));
}

(文档)

于 2012-09-18T11:43:37.487 回答
0

您可以监听TweenEvent.MOTION_CHANGE每次修改补间对象时触发的事件。

文档

示例(未经测试):

var objTween:Tween = new Tween(objectA, "y", Strong.easeOut, -100, 800, 15, true);
objTween.addEventListener(TweenEvent.MOTION_CHANGE, onTweenChange);
objTween.start();

[...]

function onTweenChange(e:TweenEvent):void {
    trace(objectA.y);
}
于 2012-09-18T11:22:18.073 回答
0
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;

var objTween = new Tween(objectA,"y",Strong.easeOut,-100,800,15,true);
objTween.addEventListener(TweenEvent.MOTION_CHANGE, tweenEvents);
objTween.start();

function tweenEvents(e)
{
    switch (objectA.y)
    {
        case -100 :
            trace("objectA is at -100");
            break;
        case 800 :
            trace("objectA is at 800");
            break;

        default :
            trace(objectA.y);
    }
}

我是 switch case 语句的忠实粉丝,仅仅是因为它们感觉比一系列 if else 语句更干净......你可以做类似的事情if (objectA.y ==50){trace("at 50")};

希望有帮助:)

于 2012-09-18T12:24:47.397 回答