2011-04-12 60 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

ahhh當然!這現在非常有意義。謝謝泰勒。 – TheDarkIn1978 2011-04-12 02:29:20