Neu in ActionScript 3: Namespaces
Manch einer wird jetzt sagen: “Moment mal, die gab es aber ja schon in ActionScript 2!!!”
Das stimmt, aber die Beiden (private & public) aus AS2 waren eher als Orientierungshilfe für den Programmierer zu verstehen als denn richtige Namespaces…wieso? Seht selbst:
class MyClass { var myPrivateMember:String = "Don't change me from out of this class"; public function getMyPrivateMember() { return this.myPrivateMember; } } var myObj:MyClass = new MyClass(); myObj["myPrivateMember"] = "Not the original value";trace( myObj.getMyPrivateMember() ); //OUTPUT: Not the original value
Also ich finds jetzt nicht so toll…aber mit ActionScript 3 ist das ja nun besser geworden, d.h. die Namespaces funktionieren so wie man das erwartet und es, neben der Möglichkeit Eigene zu definieren, sind zwei Neue hinzugekommen: protected & internal.
Hier nochmal ein Überblick:
| Schlüsselwort | Sichtbarkeit/Zugriff |
|---|---|
| public | Methoden/Eigenschaften mt diesem Schlüsselwort können von jedem Scope aufgerufen werden. |
| private | Nur von Methoden/Eigenschaften innerhalb der jeweiligen Klasse. Selbst vererbte Klassen haben keinen Zugriff |
| protected | Ähnlich wie private jedoch mit dem Unterschied das auch veerbte Klassen Zugriff haben |
| internal | Sowohl von innerhalb und ausserhalb der deklarierenden Klassen, solange man sich im selben Paket befindet. |
Eigene Namespaces deklarieren und verwenden
Komplett neu in ActionScript 3 ist die Möglichkeit eigene Namespaces zu verwenden. Und weil Code mehr sagt als tausend Worte:
package de.web-programmer.as3Demo
{
public namespace myNs = “http://www.web-programmer.de“;
}
--------
package de.web-programmer.as3Demo
{
class MyClass
{
use_namespace myNs;
myNs var myString:String;
myNs function doSome()
{
...
}
}
}
Über Sinn und Unsinn lässt sich sicher streiten… ich z.B. bin eigentlich bisher immer recht gut mit den herkömmlichen Namespaces hingekommen, aber wenn man z.B. Anwendungen hat die externen Code einbinden oder große Bibliotheken schreibt kann es durchaus sein das sich dadurch interessante Möglichkeiten geben.
Andere Beiträge der Reihe:
- Neu in ActionScript 3: Grundlagen
- Neu in ActionScript 3: Sealed Classes
- Neu in ActionScript 3: Reguläre Ausdrücke
- Neu in ActionScript 3: Typsicherheit zur Laufzeit
- Neu in ActionScript 3: try..catch und eigene Exceptions
- Neu in ActionScript 3: Die neuen Datentypen
Danke für das Lesen dieses Eintrags. Du kannst nun einen Kommentar abgeben (0) oder einen Trackback hinterlassen.
Infos
Datum: Friday, 22. February 2008Eingeordnet unter Programmierung
Du kannst die Antworten zu diesem Eintrag durch den RSS 2.0 Feed verfolgen. Du kannst einen Kommentar abgeben, oder einen Trackback.
Vorheriger Eintrag: Achtung Umzug nach www.web-programmer.de »
Nächster Eintrag: Adobe AIR: Webevents von inlite »
- Adobe AIR 1.1 veröffentlicht
- PHP date für ActionScript 3
- Ubuntu 8.04 LTS (Hardy Heron) veröffentlicht
- MySQL Workbench released
- Adobe AIR unter Ubuntu 7.10
- Was AIR nicht kann…
- Was ist das eigentlich: Adobe Flex
- Neu in ActionScript 3: Die neuen Datentypen
- Beta 1 vom Internet Explorer 8 (IE8) erschienen
- Auf zur Flashforum Konferenz 2008

