Actionscript 3 Namespaces
Juten Tach,
herrlich, wenn’s im Hirn irgendwann ‘plopp’ macht. Heute hab’ ich endlich den Sinn von Namespaces in Actionscript 3 verstanden (also nicht die von XML, das war mir vorher schon klar).
Auslöser war dieses schöne kleine Beispiel aus den Adobe livedocs:
class A {
private namespace Key;
private var friends = [ B ];
function beMyFriend( suitor ):Namespace {
for each( friend in friends ) {
if( suitor is friend ) return Key;
}
return null;
}
Key function makeMyDay() {
trace("making my day");
}
}
class B {
function befriendAnA(a:A):void {
var key : Namespace = a.beMyFriend(this);
if( key != null ) {
a.key::makeMyDay();
}
}
}
var b:B = new B();
b.befriendAnA(new A());
Der Schlüssel hier ist die Funktion ‘beMyFriend’ in Klasse A und die Tatsache, dass der Namespace ‘Key’ private ist. ‘beMyFriend’ liefert einen Namespace zurück, nachdem sie eine Überprüfung gemacht hat. Das hatte ich bis dato nicht gewusst, dass man einen Namespace als simple Referenz durch die Gegend reichen kann.
Jetzt macht das alles schon sehr viel mehr Sinn. Man soll halt doch einfach mal die Hilfe lesen.

