Dynamic Text in einem MC

teccco

Erfahrenes Mitglied
Hallo!

Mein Projekt:

Ich habe ein "PullOut-Menü" realisiert, d.h. ich klicke auf einen Button (ein Menüpunkt in dem Fall) und dann fährt simpel gesagt ein Rechteck raus auf dem die Unterpunkte stehen. Das Rechteck selbst ist ein MovieClip. Die Menüpunkte bis dato statisch.

Nun dachte ich mir, dass es ja sinnvoll wäre wenn ich die Unterpunkte aus einer XML-Datei fetche um somit das Problem zu umgehen, jedesmal das Flash Movie neu exportieren zu müssen wenn sich ein Menüpunkt mal ändert. Daher wollte ich die Unterpunkte logischer Weise auch in ein Dynamic Text Field schreiben lassen.

Mein Problem:

Um das nun zu realisieren, ziehe ich also auf meinen MovieClip (das Rechteck was rausfährt) ein Dynamic Text Field und gebe es den Namen 'dynamischertext'. Des Weiteren gebe ich dem Textfeld die Eigenschaft markierbar zu bleiben (selectable).

Nun fetche ich also die Unterpunkte aus der XML-Datei und schreibe sie in das dynamische Textfeld auf meinem Rechteck-MovieClip:

meinrechteckmovieclip.dynamischertext.text = meinunterpunkt;

Wenn ich nun mein FlashMovie ausprobiere, klappt alles wie vorgesehen nur dass das dynamische Textfeld einfach leer ist. Wenn ich mit der Maus über die Position gehe an der das Textfeld sein sollte auf dem Rechteck, so ändert sich logischer Weise nur mein Mauszeiger in den Texteditiercursor da ich das ja als Eigenschaft eingestellt hatte.

Auszuschließen ist, dass die Variable meinunterpunkt leer ist, da ich mir den aktuellen Inhalt des Textfeldes problemlos wiedergeben lassen kann (auch mit statischem Text funktioniert es nicht)

Meine Lösungen bisher:

Ich habe bisher stundenlang in diesem Forum und in anderen Foren gesucht und keine funktionierende Lösung gefunden, leider. Was ich sinnvoll und vielversprechend fand, war, mein dynamisches Textfeld auch in einen MovieClip umzuwandeln, jedoch bleibt der Effekt leider der gleiche wie oben beschrieben.

Ich bedanke mich schonmal im Vorraus für Lösungsvorschläge.
 
Zuletzt bearbeitet:
Hi,

meine Vermutung: Die Zeichen im Textfeld sind nicht eingebettet und der MovieClip ist entweder maskiert, skaliert oder hat einen Alphawert von unter 100.

Abhilfe: Zeichen einbetten. ;)

Gruß
.
 
Hi, ich nochmal.

Ich habe bisher alles erfolgreich weiter umsetzen können. Allerdings bin ich relativ schnell darauf gestoßen, dass ich meine dynamisch erstellten Textfelder nicht als Link bzw. als Schaltfläche nutzen kann. Daher erstelle ich nun dynamisch fuer jedes Textfeld zusätlich einen MC auf dem das Textfeld dann liegt.

Und wenn ich alles richtig verstanden habe, müsste ich doch dann ganz einfach via onRelease meine Funktion definieren, oder? Denn genau das funktioniert leider nicht.

Mein Code zur Hilfe:
(j ist, wie unschwer zu erkennen, eine Laufvariable, da ich ja eine XML-Datei durchlaufe)

PHP:
   ausfahrendesrechteck_mc.createEmptyMovieClip("textmc" add j, 1+j); 
   ausfahrendesrechteck_mc["textmc"+j].createTextField("textfield" add j,10+j,5,j*10,80,20);
   ausfahrendesrechteck_mc["textmc"+j]["textfield"+j].autoSize = "left";
   ausfahrendesrechteck_mc["textmc"+j]["textfield"+j].embedFonts = true;
   ausfahrendesrechteck_mc["textmc"+j]["textfield"+j].selectable = false;
   ausfahrendesrechteck_mc["textmc"+j]["textfield"+j].border	= false;
 						
   ausfahrendesrechteck_mc["textmc"+j]["textfield"+j].setNewTextFormat(text_fmt);
   ausfahrendesrechteck_mc["textmc"+j]["textfield"+j].multiline = false;
   ausfahrendesrechteck_mc["textmc"+j]["textfield"+j].wordWrap  = false;
 						
   ausfahrendesrechteck_mc["textmc"+j]["textfield"+j].text = textausXMLfile; 
   
   ausfahrendesrechteck_mc["textmc"+j]["textfield"+j].onRelease = function() { meinefunktion(); }

Wie gesagt: der Text wird perfekt dargestellt und überhaupt gibt es keine Fehler, bis auf den Fakt, dass mein onRelease nicht funktioniert.
 
Ja, Textfelder kennen so keine Mausereignisse. War schon ein richtiger Ansatz, die Textfelder in einem leeren MC zu erstellen ... dann müsste es aber so lauten:
Code:
ausfahrendesrechteck_mc["textmc"+j].onRelease = function() {

Gruß

P.S.: Übrigens, das "j" in ["textfield"+j] kannst Du Dir sparen, da Du die Beschriftungen schon durch die Clipnamen unterscheidest. Du kannst getrost alle Textfelder "textfeld" nennen. ;)

Gruß
.
 
Ich muss mich mal wieder bedanken ;)

War natürlich wieder ein schöner Denkfehler von mir. Das mit dem ["textfeld"+j] war noch nen Überbleibsel. Ist jetzt auch weg.

Ich verbeuge mich vor dir und bedanke mich nochmals ^^
 

Neue Beiträge

Zurück