Frames kopieren - neue Tweens ?

M@thias

Grünschnabel
Hi!
Ich arbeite zur zeit an einer Präsentation.
Ich bin nun an eine Stelle gekommen an welcher die Animationen die gleichen seien sollten, aber der Inhalt z.B. von einem animierten Text (Tween) immer verschieden ist.
Da es sehr zeitaufwändig wäre, alle Animationen einzeln herzustellen, habe ich eine Animation gemacht und diese Frames kopiert. Wenn ich aber nun versuche bei der zweiten Animation unter „Bearbeiten => An Position bearbeiten“ den Text zu verändern, ändert dieser sich auch bei der ersten Animation. Dies liegt bestimmt daran, dass beide Animationen den selben Tween benutzen. Also habe ich diese beiden Animationen in 2 verschiedene Flash Filme gespeichert und den letzten Frame der ersten Animation mit folgendem Script (Action Script 1.0) versehen:

stop();
onMouseDown = function() {
loadMovie("url des 2. Filmes",1);
}

Wenn ich den Film starte , zeigt er bei der 2. Animation den selben Text wie bei der ersten Animation an. Beim Bearbeiten der beiden Filme (FLA-Dateien) sind diese beiden Texte aber verschieden.
Was soll ich tun damit diese beiden Texte bei der Präsentation verschieden angezeigt werden?

Ich habe außerdem schon probiert beide Tweens umzubenennen.
 
Hallo!

Ich hoffe, ich versteh dich richtig. Sonst korrigierst du mich halt.

Jedesmal, wenn du einen Tween erstellt, packt Flash alle Komponenten, die zum Zeitpunkt, zu dem du den Tween erstellt hast, keine Tween-kompatible Komponenten waren (wie z.B. Textfelder, Shapes usw.), in eine Grafik, die dann angeschrieben wird mit z.B. "Tween 1", zu finden in der Bibliothek. Wenn du nun diese Grafik mehrfach verwendest, wird trotzdem immer dasselbe Objekt referenziert, d.h. wenn du den Inhalt der "Tween"-Grafik änderst, gilt das für alle Instanzen dieser Grafik in deinem Movie. Dem kannst du ganz einfach Abhilfe verschaffen und zwar mit ein bisschen Action Script.

Geh wie folgt vor:

Erstelle einen neuen MovieClip und setz da ein dynamisches(!) Textfeld rein. Dem Textfeld gibst du einen Instanznamen, z.b. "textFeld". Setz KEINEN Text in das Feld, sondern zieh es so gross, das es ungefähr deinen Vorstellungen entspricht.

Nun erstellst du all deine Tweens mit diesem einen MovieClip. Du nimmst zum Beispiel einen MovieClip, setzst auf das erste Keyframe den MC mit dem Textfeld und gibst ihm den Namen "textClip". Nun fügst du x Frames später (entsprechend der Tweenlänge) ein Keyframe und konvertierst die dazwischenstehenden Frames zu einem Tween. Du wirst bemerken, dass Flash kein neues Symbol erstellen wird, da der MC ein gültiges Tween-Objekt ist.
Wenn du nun wieder auf das erste Keyframe des Tween-Clips wechselst, drückst du F9 und der AS-Editor erscheint.
Dort platzierst du folgenden Code:

PHP:
this.textClip.textFeld.text = "dein Titel";

Der Code spricht das Textfeld im textClip an und weist ihm den Text zu.

Im Anhang die fla

Gruss
 

Anhänge

Hi,

das liegt daran, das du denselben MC zweimal instanzierst, der Umweg über loadMOvie kann zwar auch funktionieren, ist aber viel zu umständlich. besser ist es, wenn du das Textfeld innerhalb des Tweens gegen ein dynamisches Textfeld austauscht, und den Text von ausserhalb zuordnest.
Dabei musst du darauf achten, dem dyn. Textfeld einen Instanznamen zu geben, zB 'Inhalt':
Du legst dann einen neue Ebene an, benennst sie zB AS, und machst ein neues Schlüsselbild an der Stelle, an dem dein Tween MC zum ersten mal instanziert wird.
Jetzt musst du auch deinem Tween MC einen Instanzenbezeichner geben, zB, 'Tween1', und schreibst in deiner neuen Ebene 'AS' folgendes Script:
PHP:
_root.Tween1.Inhalt.text = "Deine erster Text";
Wenn in deiner Zeitleiste der Punkt erreicht ist, an dem dein Tween zum zweiten Mal instanziert wird, bennennst du ihn an dieser Stelle einfach anders, zB 'Tween2', machst ein neues Schlüsselbild in der 'AS' Ebene, und tippst ein neues Script:
PHP:
_root.Tween2.Inhalt.text = "Deine zweiter Text";
, fertig, ganz stressfrei ...

B
 
Zurück