ActionScript - 来自Tweener的跟踪更新值

时间:2011-04-12 01:30:14

标签: actionscript-3 tweener

tweener在补间时传递参数时不会更新myValue。为什么呢?

public var myValue:Number = 0.0;

Tweener.addTween(this, {myValue: 1.0, time: 2.0, onUpdate: traceValue, onUpdateParams: [myValue]});

private function traceValue(value:Number):void
    {
    trace(value);
    }

1 个答案:

答案 0 :(得分:1)

原始值始终在ActionScript中按值传递,而不是通过引用传递。 Tweener正在更新您的值,但传递给traceValue的内容始终是原始值。因此,在上面的代码中,它总是会追踪0.解决方案是传递对目标对象的引用,并且每次都读取值。如果您传入字段名称,则可以动态完成此操作以获得最大的灵活性。例如:

public var myValue:Number = 0.0;

Tweener.addTween(this, {myValue: 1.0, time: 2.0, onUpdate: traceValue, onUpdateParams: [this, 'myValue']});

private function traceValue(target:Object, field:String):void
{
    trace(target[field]);
}