Flash CS3: Wo sind all die Masken hin?

02.07.2007, 11:00

Hey, wo sind die Masken? Nach dem Ausspielen einer älteren FLA Datei im neuen Flash 9 waren plötzlich alle Masken verschwunden. Da hab ich geflucht, wie der freundliche Leipziger Mediamarkt Kunde im bekannten Telefonstreich von Radio PSR.
Die Lösung war ähnlich simpel: Die neue Publish-Option ‘Ausgeblendete Ebenen exportieren’ war nicht aktiviert, was wohl die Default-Einstellung beim Öffnen von älteren Dateien ist. Also: Häkchen nicht vergessen - dann klappts auch mit den Masken.

Keine Kommentare »


Bessere trace Ausgabe von Objekten durch Überschreiben der toString() Methode

05.08.2006, 12:48

Beim Tracen eines Objects in Flash erscheint lediglich die Ausgabe [object Object], was recht bescheiden ist. Man kann die Ausgabe verbessern, in dem man die toString() Methode der Object Klasse in Flash überschreibt. Erzeugen wir mal ein Object in Flash und fügen ein paar Eigenschaften hinzu:

Actionscript:
adresse = new Object();
adresse.vorname ="Hans";
adresse.name ="Mustermann";
adresse.strasse ="Musterstr.";
adresse.hausnummer ="12";
adresse.plz ="12345";
adresse.ort ="Musterstadt";

trace(adresse);

Die trace-Anweisung erzeugt, wie gesagt, diese Ausgabe: [object Object]

Jetzt überschreiben wir die toString Methode, die die Object Klasse benutzt um die Trace-Ausgabe zu erzeugen:

Actionscript:
adresse = new Object();
adresse.vorname ="Hans";
adresse.name ="Mustermann";
adresse.strasse ="Musterstr.";
adresse.hausnummer ="12";
adresse.plz ="12345";
adresse.ort ="Musterstadt";

adresse.toString = function(){
        for(var prop in this){
                trace(prop + ":" + this[prop]);
        }
}

trace(adresse);

Der trace-Befehl erzeugt nun folgende Ausgabe:


toString:[type Function]
ort:Musterstadt
plz:12345
hausnummer:12
strasse:Musterstr.
name:Mustermann
vorname:Hans
[type Object]

Aber wir können die Ausgabe sogar noch sinnvoll formatieren:

Actionscript:
adresse = new Object();
adresse.vorname ="Hans";
adresse.name ="Mustermann";
adresse.strasse ="Musterstr.";
adresse.hausnummer ="12";
adresse.plz ="12345";
adresse.ort ="Musterstadt";

adresse.toString = function(){
        trace(this.name +", " + this.vorname);
        trace(this.strasse +" "+ this.hausnummer);
        trace(this.plz +" "+ this.ort);
}

trace(adresse);

Jetzt wird unser Object so ausgegeben:


Mustermann, Hans
Musterstr. 12
12345 Musterstadt
[type Object]

Wir haben damit lediglich die toString() Function des Objects adresse geändert. Wenn wir ein anderes Object erzeugen, erhält dieses Object wieder die ursprüngliche toString()-Funktion der Object Klasse.

Technorati: , , , ,

1 Kommentar »