Wie erstelle ich TextArea per ActionScript?

Orphelina

Erfahrenes Mitglied
Hallo @all,

ich möchte eine bzw. später mehrere TextAreas per ActionScript erstellen, die ich später mal mit Texten aus einer externen Datei füllen werde.
Aber irgendwie bekomm ich meine TextArea nicht angezeigt wenn ich den Film teste. Ich hab leider auch keine richtige Doku o.ä. zu dem Thema gefunden. Ich benutze Flash MX 2004 Professional und möchte nicht die vorgegebenen UI Komponenten nutzen- falls das möglich ist...

Hier das Script aus meinem Film(fla Datei)

Code:
import mx.controls.TextArea;

var test = new labelTest();
test.mainTest();

Und hier meine externe ActionScript Datei:
Code:
import mx.controls.*;

class labelTest extends MovieClip{
		
	function mainTest(){// Konstruktor
		for (var i= 1; i<11; i++) {
			_root.createClassObject(Label, "menuitem"+i, i);
			_root["menuitem"+i].autoSize = "left";
			_root["menuitem"+i]._x = 170+(60*(i-1));
			_root["menuitem"+i]._y = 100;
			_root["menuitem"+i].text = "this is really fun";
			_root["menuitem"+i].setStyle("fontSize", "14");
			_root["menuitem"+i].setStyle("color", "0xFFFFFF");
			trace("Menü Item 1: "+_root["menuitem"+i].name);
		}//end for
	}//end function

}//end class

Vielleicht ist nur ein Fehler drin oder ich hab was vergessen... Ich bin für jeden Tipp, Hilfe oder Links dankbar!

Gruss
 
Hi,

wenn Du per createClassObject ein Label instanzieren willst, muss sich die Label-Komponente auch in der Bibliothek befinden.

Allerdings frage ich mich, ob die Label-Komponente wirklich das ist, was Du suchst: Labels sind keine Textarea-Objekte, sondern einzeilige Beschriftungen.

Wenn Du eigentlich nur 11 Labels instanzieren willst, und das ganze von einer eigenen Klasse erledigen lassen willst, würde ich eine eigene Komponente erstellen (siehe Flashhilfe unter "Eigene Komponenten erstellen", die über die Label-Komponente verfügt.

Gruß

P.S.: Die name-Eigenschaft schreibt sich mit Unterstrich: _name
 
Hallo,

uups das Label steht nur drin, weil ich dachte vielleicht geht es damit. Ich will eigentlich über das Script TextAreas erstellen. Erstmal eine und die dann noch formatieren, aber letztendlich brauch ich wohl eher 2-3. Da ich ein Beispiel mit der Label-Komponente gefunden hatte, dachte ich ich kann das auch auf TextArea anwenden. Sie muss nicht editierbar sein, aber eben mehrzeilig. Heisst das nun, dass das gar nicht möglich ist?

Gruss
 
Klar, instanziere halt statt Labels TextAreas. ;)

... Dir ist aber klar, dass auch TextAreas UI-Komponenten sind, in sofern verstehe ich nicht ganz, warum Du sagst "... und möchte nicht die vorgegebenen UI Komponenten nutzen", sie aber dennoch in Deiner Klasse instanzierst... :suspekt:

Gruß

P.S.: wenns was möglichst "eigenes" sein soll... warum baust Du Dir nicht ne eigene Komponente aus Textfeldern, gezeichneten Rahmen und vielleicht noch selbstgebauten Scrollbalken?
.
 
ja das Problem war, dass ich ja rumprobiert hatte, dieses Script mit Labels auf TextAreas umzumodeln, aber er mir beim Testen des Films nichts auf der Bühne anzeigt. Auch wenn in der Klammer statt Label TextArea steht...
Ich will das halt per AS generieren und mir nicht die Textbox aus der UI-Komponenten-Liste auf die Bühne ziehen...

Gruss
 
Hi,

auch dann musst Du eine TextArea-Komponente zumindest in der Bibliothek haben. Ziehe einfach eine TextArea aus den Komponenten auf die Bühne und lösche sie dort wieder raus. Dann sollte auch deine Klasse funktionieren.

Ausserdem solltest Du in der .fla lieber Deine Klasse (labelTest) importieren, statt mx.controls.TextArea. Die Controls importierst Du ja schon in der Klasse.

Gruß
.
 
Hallo,

ja super das war genau die Info die ich gesucht habe und auch grad rausgefunden hab. Dann ist ja klar dass es nicht geht :)
Danke auch für den Tipp mit dem Importieren!

Gruss
 
Zurück