2017-03-03 1 views
2

Ich möchte eine Schaltfläche mit einem TextField darauf, ein Label, wenn Sie möchten, das ist änderbar mit AS3.AS3: Ändern einer TextField in einem MovieClip

Ich habe festgestellt, dass ich dies nicht mit einem SimpleButton tun kann, aber durch die Verwendung der MovieClip-Timeline und Navigation das hin und her, habe ich es geschafft, die Textur der Schaltfläche zu ändern, wenn es über und geklickt wird. Ich habe drei TextFields oben auf der Schaltfläche in jedem Frame der Timeline erstellt, aber ich kann keine Möglichkeit finden, die TextFields dauerhaft zu ändern.

btn die MovieClip- ist, l1 ist die TextField- für Rahmen 1.

btn.l1.text = "label" 

Werke, bis ich die Taste berühren (die die MovieClip--Rahmen auf der Zeitleiste ändert), und wenn er zurückkehrt Bild 1, das Etikett ist zu nichts zurück.

Was ich im Wesentlichen wissen muss, ist; Wie ändere ich dauerhaft ein TextField in einem MovieClip, der Frames ändert?

Antwort

1

Sind Ihre drei Bilder unterschiedlich oder gleich? Wenn sie unterschiedlich sind, vergewissern Sie sich, dass Sie den Text der einzelnen Schaltflächen des Buttons ändern, da verschiedene Frames völlig neue Objekte haben werden.

2

Wenn Ihr Textfeld nur einen Keyframe auf seiner Ebene der Zeitleiste hat, behält es den Textwert beim Ändern der Frames bei. Aber jeder Keyframe wird das Textfeld neu erstellen und den Text zurücksetzen, wenn dieser Frame erreicht ist. Wenn Sie Keyframes verwenden, um die Textfarbe oder die Filter zu ändern, können Sie stattdessen das Textfeld in einen MovieClip einfügen und Keyframes mit Farbtönung auf dem MovieClip verwenden (solange für jeden Keyframe derselbe Instanzname für den MovieClip verwendet wird, wird nicht neu erstellt werden). So würden Sie den Text einmal ändern, um mit so etwas wie:

btn.labelMC.textField.text = "label"; 

Wenn Sie Keyframes verwenden Text-Schriftart oder die Art zu ändern (alles, was ein MovieClip- nicht tun kann), dann ist der einzige Weg sein wird zurückgesetzt die .text nach jeder Zeit ändern Sie den Rahmen:

btn.gotoAndStop(2); 
btn.l1.text = "label"; 

Sie können dieses Problem isolieren eine wiederverwendbare Klasse.

+0

+1 @Aaron Vermeiden Sie mehrere Schlüsselbilder (wenn möglich) und erstellen Sie eine Klasse für Ihre MC. Das wird deinen Text ändern. – tatactic

Verwandte Themen