ActionScript - значение обновления трассировки от Tweener - PullRequest
0 голосов
/ 12 апреля 2011

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 Ответ

1 голос
/ 12 апреля 2011

Примитивные значения всегда передаются по значению в 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]);
}
...