[ascoders] Re: Namensräume
- From: Ralf Siegel <ralf@xxxxxxxxxxx>
- To: ascoders@xxxxxxxxxxxxx
- Date: Thu, 27 Mar 2003 17:30:52 +0100
hab das jetzt mal zusammengebaut. Es wird jetzt doch NUR in den aktivierten
Namensräumen gesucht - denke, das ist näher am Java-Verhalten, wo ja auch
nur importierte Packages durchsucht werden.
Yup, ich denke es wäre sogar intuitiver, das in einem Ruck zu machen, d.h.
wenn der Pfad gebastelt wird, diesen gleich komplett in der Liste zu
registrieren, e.g.
...
if (o[name] == undefined) {
o[name] = new Object();
this.push(o[name]);
ASSetPropFlags(o, name, 1, 0); // optional
}
...
Oder komplett dann:
__________________________________________________________________
/////////////////////////////////////////////////
// ASNamespace Setup
/////////////////////////////////////////////////
_global.__resolve = function(c) {
for (var i = 0; i < ASNamespace.length; i++) {
if (typeof ASNamespace[i][c] == "function") {
return ASNamespace[i][c];
}
}
};
// ----------------------------------------------
_global.ASNamespace = new Array();
ASNamespace.initializePackage = function(path) {
// avoid calls when checking for object
var r = _global.__resolve;
delete _global.__resolve;
var a = path.split('.');
var o = _global;
var currentPath = a[0];
for (var i = 0; i < a.length; i++) {
var name = a[i];
if (o[name] == undefined) {
o[name] = new Object();
this.push(o[name]);
ASSetPropFlags(o, name, 1, 0); // optional
}
o = o[name];
}
_global.__resolve = r;
return o; // return shortcut
};
ASSetPropFlags(_global, "ASNamespace", 7, 0);
/////////////////////////////////////////////////
// Usage
/////////////////////////////////////////////////
var ns = ASNamespace.initializePackage("com.macromedia.secret");
_global.com.macromedia.secret.BetaClass = function() {
trace("com.macromedia.secret.BetaClass");
};
_global.com.macromedia.StandardClass = function() {
trace("com.macromedia.StandardClass");
};
// ----------------------------------------------
var ns = ASNamespace.initializePackage("de.ascoders.central");
_global.de.ascoders.central.RIAManager = function() {
trace("de.ascoders.central.RIAManager");
};
_global.de.ascoders.StandardClass = function(x) {
trace("de.ascoders.StandardClass");
};
// ----------------------------------------------
obj1 = new BetaClass();
obj2 = new com.macromedia.BetaClass(); // not found
obj3 = new StandardClass();
obj4 = new de.ascoders.StandardClass();
obj5 = new de.ascoders.central.RIAManager();
obj6 = new RIAManager();
______________________________________________________________
Ausgabe
______________________________________________________________
/*
com.macromedia.secret.BetaClass
com.macromedia.StandardClass
de.ascoders.StandardClass
de.ascoders.central.RIAManager
de.ascoders.central.RIAManager
*/
ralf ...
------------------------------------------------------
Archiv : http://www.freelists.org/archives/ascoders/
Optionen : http://www.freelists.org/list/ascoders
------------------------------------------------------
- Follow-Ups:
- [ascoders] AW: Re: Namensräume
- From: Andreas Hucks
- [ascoders] Re: Namensräume
- From: bokel
- References:
- [ascoders] Re: Namensräume
- From: Andreas Hucks
- [ascoders] Re: Namensräume
- From: Andreas Hucks
Other related posts:
- » [ascoders] Namensräume
- » [ascoders] Re: Namensräume
- » [ascoders] Re: Namensräume
- » [ascoders] Re: Namensräume
- » [ascoders] Re: Namensräume
- » [ascoders] Re: Namensräume
hab das jetzt mal zusammengebaut. Es wird jetzt doch NUR in den aktivierten Namensräumen gesucht - denke, das ist näher am Java-Verhalten, wo ja auch nur importierte Packages durchsucht werden.
------------------------------------------------------ Archiv : http://www.freelists.org/archives/ascoders/ Optionen : http://www.freelists.org/list/ascoders ------------------------------------------------------
- [ascoders] AW: Re: Namensräume
- From: Andreas Hucks
- [ascoders] Re: Namensräume
- From: bokel
- [ascoders] Re: Namensräume
- From: Andreas Hucks
- [ascoders] Re: Namensräume
- From: Andreas Hucks