[ascoders] Namensräume

  • From: Ralf Siegel <ralf@xxxxxxxxxxx>
  • To: ascoders@xxxxxxxxxxxxx
  • Date: Wed, 26 Mar 2003 10:24:08 +0100


http://moock.org/webdesign/lectures/ff2003Workshop/

Benutzt Ihr solche Namensräume für Klassen? Ich glaube ich hatte mit Tatsuo letztes Jahr eine Diskussion zum Thema, wo ich meinte, dass ich Namensräume in Form von Objektpfaden rein von der Handhabung derzeit in ActionScript ziemlich umständlich finde und deshalb vermeide. Im Gegensatz zu z.B. Java ist man nämlich in dem Fall gezwungen, immer den ganzen Pfad anzugeben.


new org.moock.ui.MessageDialog();

Vielleicht mal als Vergleich - in Java kann man einfach schreiben:

______________________________________________________________

import "org.moock.ui.*";

new MessageDialog():
______________________________________________________________

Ich hab deswegen mal versucht, Colin's Skript zu erweitern, und einen 'Lookup' zu simulieren. Das ganze funktioniert vorläufig nur mit einem Namensraum ...

_______________________________________________________________

CODE
_______________________________________________________________


_global.AsSetupPackage = function(path) { var a = path.split('.'); var o = _global; for (var i = 0; i < a.length; i++) { var name = a[i]; if (o[name] == undefined) { o[name] = new Object(); } o = o[name]; } };

// ----------------------------------------

AsSetupPackage("org.moock.ui");
AsSetupPackage("de.audiofarm.ui");

// ----------------------------------------

org.moock.ui.MessageDialog = function() {
        trace("org.moock.ui.MessageDialog");
};

de.audiofarm.ui.MessageDialog = function() {
        trace("de.audiofarm.ui.MessageDialog");
};

// ----------------------------------------

objA = new org.moock.ui.MessageDialog();
objB = new de.audiofarm.ui.MessageDialog();

// ----------------------------------------

_global.AsSelectPackage = function(path) {
        if (path == null) {
                delete _global.__resolve;
        }
        _global.__resolve = function(c) {
                return path[c];
        };
};

// ----------------------------------------

AsSelectPackage(org.moock.ui);
objC = new MessageDialog();

AsSelectPackage(de.audiofarm.ui);
objD = new MessageDialog();

_______________________________________________________________

AUSGABE
_______________________________________________________________


org.moock.ui.MessageDialog de.audiofarm.ui.MessageDialog org.moock.ui.MessageDialog de.audiofarm.ui.MessageDialog

_______________________________________________________________


Was denkt ihr?


ralf ...


------------------------------------------------------ Archiv : //www.freelists.org/archives/ascoders/ Optionen : //www.freelists.org/list/ascoders ------------------------------------------------------

Other related posts: