2011-04-12 5 views

Répondre

1

Les valeurs primitives sont toujours transmises par valeur dans ActionScript, jamais par référence. Tweener met à jour votre valeur, mais ce qui est passé à traceValue est toujours la valeur d'origine. Donc, dans votre code ci-dessus, il tracera toujours 0. La solution est de passer une référence à l'objet cible et de lire la valeur à chaque fois. Si vous passez le nom du champ, cela peut être fait dynamiquement pour plus de flexibilité. Par exemple:

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 bien sûr! Cela est parfaitement logique maintenant. merci tyler. – TheDarkIn1978

Questions connexes