2011-04-12 3 views
0

tweener는 트위닝하는 동안 매개 변수를 전달하는 동안 myValue를 업데이트하지 않습니다. 왜?ActionScript - Tweener에서 업데이트 값 업데이트

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

프리미티브 값은 항상 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]); 
} 
+0

아 물론! 이것은 이제 완벽하게 이해됩니다. 감사 타일러. – TheDarkIn1978