15.10.2012 Views

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ACTIONSCRIPT 3.0 ENTWICKLERHANDBUCH<br />

Verwenden der nativen JSON-Funktionalität<br />

Definieren von toJSON() für den Prototyp einer integrierten Klasse<br />

Die native JSON-Implementierung in ActionScript spiegelt den ECMAScript-JSON-Mechanismus wider, der in<br />

ECMA-262, 5. Edition definiert ist. Da ECMAScript keine Klassen unterstützt, definiert ActionScript das JSON-<br />

Verhalten anhand prototyp-basierter Absetzungen. Prototypen sind Vorläufer von ActionScript 3.0-Klassen, die das<br />

simulierte Vererben sowie das Hinzufügen und Neudefinieren von Mitgliedern zulassen.<br />

Mit ActionScript können Sie toJSON() für den Prototyp jeder Klasse definieren oder neu definieren. Dies gilt sogar<br />

für Klassen, die als final gekennzeichnet sind. Wenn Sie toJSON() für einen Klassenprototyp definieren, wird Ihre<br />

Definition die aktuelle Definition für alle Instanzen dieser Klasse im Rahmen Ihrer Anwendung. So können Sie zum<br />

Beispiel eine toJSON()-Methode für den MovieClip-Prototyp definieren:<br />

MovieClip.prototype.toJSON = function(k):* {<br />

trace("prototype.toJSON() called.");<br />

return "toJSON";<br />

}<br />

Wenn Ihre Anwendung dann stringify() für eine beliebige MovieClip-Instanz aufruft, gibt stringify() die<br />

Ausgabe Ihrer toJSON()-Methode zurück:<br />

var mc:MovieClip = new MovieClip();<br />

var js:String = JSON.stringify(mc); //"prototype toJSON() called."<br />

trace("js: " + js); //"js: toJSON"<br />

Sie können toJSON() auch in nativen Klassen, die diese Methode definieren, überschreiben. Mit dem folgenden Code<br />

überschreiben Sie zum Beispiel Date.toJSON():<br />

Date.prototype.toJSON = function (k):* {<br />

return "any date format you like via toJSON: "+<br />

"this.time:"+this.time + " this.hours:"+this.hours;<br />

}<br />

var dt:Date = new Date();<br />

trace(JSON.stringify(dt));<br />

// "any date format you like via toJSON: this.time:1317244361947 this.hours:14"<br />

Definieren oder Überschreiben von toJSON() auf Klassenebene<br />

Anwendungen müssen nicht immer Prototypen verwenden, um toJSON() neu zu definieren. Sie können toJSON()<br />

auch als Mitglied einer Unterklasse definieren, falls die übergeordnete Klasse nicht als finale Klasse gekennzeichnet ist.<br />

Sie können zum Beispiel die ByteArray-Klasse erweitern und eine öffentliche toJSON()-Funktion definieren:<br />

Letzte Aktualisierung 27.6.2012<br />

127

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!