[ascoders] Klassenfrage

Das habe ich zwar schon bei FlashCoders gepostet, allerdings gab's da
nicht so recht feedback. Ich hoffe also, dass Ihr mir hier mehr helfen
könnt:

Ich habe folgende AS1-Klasse erstellt, mehr Info dazu von mir unten:


myClass = function() {
        this.dummyProp = "foo";
};
mcClass.prototype = new Object();
myClass.prototype.loadXML = function(path, callback) {
        var testXML = new XML();
        testXML.ignoreWhite = true;
        testXML.dummyProp = "bar";
        testXML.onLoad = function(success) {
                if(success) {
                        callback(testXML);
                }
        };
        testXML.load(path);
};
myClass.prototype.doMoreStuff = function() {
        trace(this.dummyProp);
};

var bla = new myClass();
bla.loadXML("../dummy.xml", bla.doMoreStuff);


Beim onLoad-Event des XMLs (in der loadXML() ) soll die als Parameter
übergebene callback-funktion aufgerufen werden. Das klappt auch,
allerdings findet das trace innerhalb der doMoreStuff() die dummyProp
nicht mehr. Ich habe eigentlich erwartet, dass er mir jetzt "foo"
tracen sollte, da die Methode auf myClass definiert wurde (und auch so
aufgerufen wird). Die Methode findet er, allerdings traced er mir
jetzt "undefined". Wenn ich nur 'this' tracen lassen möchte, sagt er
mir '[type Object]'. Es kommt mir fast wie ein Geister-Objekt vor, da
die einzigen Objekte, die ich mit dem Code anlege die Instanz 'bla'
und das temporäre XML-Object 'testXML' sind.

Kann mir mal jemand mehr dazu sagen, warum das nicht funktioniert? Und
vor allem, was für die Methode doMoreStuff() in dem Moment des Aufrufs
dann 'this' ist? Ich kann das Problem irgendwie überhaupt nicht
nachvollziehen... wenn ich den Aufruf am Ende des Codes in
bla.loadXML("../dummy.xml", function() { bla.doMoreStuff} ); ändere,
läuft's natürlich, aber das will ich eigentlich nicht...

Danke schon mal...
Jan
------------------------------------------------------
Archiv   : http://www.freelists.org/archives/ascoders/
Optionen : http://www.freelists.org/list/ascoders
------------------------------------------------------

Other related posts: