2009-06-10 2 views
2

Wenn ich einen MovieClip habe, dem eine Klasse zugewiesen ist, und ich eine Eigenschaft dieses MovieClips im Code ändere, scheint die Eigenschaft nicht mehr auf der Timeline getweent zu sein.Verhindert das Setzen von Eigenschaften in AS3 Timeline Tweens?

Wenn meine Klasse beispielsweise this.x = 100 und später die Zeitachse zwischen der Position des Objekts einstellt, wird dieses Zeitachsen-Tween nicht angezeigt.

Das Ändern der Eigenschaft scaleX oder scaleY scheint auch zu verhindern, dass Timeline Tweens passieren.

Hat jemand anderes dies erfahren, und wenn ja, gibt es einen Weg um es herum?

Antwort

3

Sie haben es richtig. Wenn Sie bestimmte Eigenschaften eines MC auf der Bühne ändern, geht Flash davon aus, dass Sie es mit einem Skript positionieren, und Tweens funktionieren nicht mehr. Ein paar Umgehungslösungen:

  1. Reparieren Sie Dinge, so dass Sie Skript und IDE-Positionierung zu trennen. Das heißt, wenn Sie die X-Position eines Objekts tweenen und es auch mit Skript drehen, ändern Sie es so, dass Sie zwischen dem X eines Container-Clips und einem inneren Clip drehen.
  2. Führen Sie alle Ihre Positionierung mit Skript - d. H. Verwenden Sie die Tween-Klasse oder eine Tween-Bibliothek.
  3. Wenn der Abspielkopf über ein Bild hinausgeht, in dem sich der Clip nicht auf der Bühne und dann in einem Rahmen befindet, wird der Clip "zurückgesetzt", um mit IDE-Positionierung und Tweens zu arbeiten. Dies gilt auch dann, wenn Sie mit gotoAndPlay über den leeren Rahmen springen. Wenn Sie zum Beispiel Skript verwenden, um den Clip auf Frame 10 zu verschieben, und dann auf Frame 20 gotoAndPlay(30);, dann funktioniert ein Tween bei Frame 30 korrekt, wenn Sie einen leeren Frame irgendwo zwischen den Frames 20 und 30 einfügen.
0

Ich würde strikt an den As3-Code, wenn ich du wäre.

Import diese an der Spitze Ihres Action

import fl.transitions.Tween; 
import fl.transitions.easing.*; 
import fl.transitions.TweenEvent; 

und stellen Sie dann Ihre Tweens wie folgt aus:

var myTween:Tween = new Tween(object, "property", EasingType, begin, end, duration, useSeconds); 
Verwandte Themen