我的 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();
我的 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();
另外,如果您只想打印出值,则可以直接运行补间函数,我认为这很酷
for (var i:int=0; i< 15*60; i++) {
trace (Strong.easeOut(i, -100, 800, 15*60));
}
您可以监听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);
}
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")};
希望有帮助:)