Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 10-10-2003, 13:10   #1 (permalink)
Neuer User
 
Registriert seit: Oct 2003
Beiträge: 3
Problem mit this in Klassen

Hallo,
folgende Klassendefinition (vereinfacht)

classParseXML = function( file ){
this.errNo = 0;

}

//noch eine methode

classParseXML.prototype.xmlOnLoad = function( boolStatus ){
trace(this.errNo);
}


Diese Methode sollte eigentlich nur die fehlernummer ausgeben aber...

test=new classParseXML( "test.xml" );
test.xmlOnLoad();

ergibt undefined ... die variable ist in der Methode der Klasse nicht bekannt, obwohl es ja eine Eigenschaft selbiger ist...komisch, oder.

Vielen Dank für Hilfe.

Grüße, Daniel.
Dael ist offline   Mit Zitat antworten
Alt 10-10-2003, 13:21   #2 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Funktioniert einwandfrei.

ActionScript:
  1. classParseXML = function (file) {
  2.     this.errNo = 0;
  3. };
  4. //noch eine methode
  5. classParseXML.prototype.xmlOnLoad = function(boolStatus) {
  6.     trace(this.errNo);
  7. };
  8. test = new classParseXML("test.xml");
  9. test.xmlOnLoad();

mfg r.
bokel ist offline   Mit Zitat antworten
Alt 10-10-2003, 13:48   #3 (permalink)
Neuer User
 
Registriert seit: Oct 2003
Beiträge: 3
Mist, ich habe zuviel weggekürzt...sorry
hier nochmal

classParseXML = function (file) {
this.errNo = 0;
this.obj = new XML();
obj.onLoad = this.xmlOnLoad;

};
//noch eine methode
classParseXML.prototype.xmlOnLoad = function(boolStatus) {
trace( _parent.errNo );
};


test = new classParseXML("test.xml");
test.xmlOnLoad();

Da liegt das Problem, ich definiere als Eigenschaft der Klasse ein xml-objekt, dieses wiederum versehe ich mit einem ereignishandler (welcher halt eine Methode der Klasse ist) .... die Frage ist num, wie referenziere ich die Eigenschaft errNo aus der Klasse im diesem Handler.
Meines Verständnisses müßte es ja mit _parent (ich will ja an das objekt vor dem xml-objekt) gehen, nur das is leider nicht definiert.

Kann mir jemand helfen??

Danke, Daniel.
Dael ist offline   Mit Zitat antworten
Alt 10-10-2003, 14:16   #4 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Wahrscheinlich meinst du sowas hier, oder ?

ActionScript:
  1. classParseXML = function (file) {
  2.     this.errNo = 0;
  3.     this.obj = new XML();
  4.     this.obj.owner = this;
  5.     this.obj.onLoad = this.xmlOnLoad;
  6. };
  7. //noch eine methode
  8. classParseXML.prototype.xmlOnLoad = function(boolStatus) {
  9.     trace(this.owner.errNo);
  10. };
  11. test = new classParseXML("test.xml");
  12. test.obj.onLoad();

mfg .r
bokel ist offline   Mit Zitat antworten
Alt 10-10-2003, 15:09   #5 (permalink)
Neuer User
 
Registriert seit: Oct 2003
Beiträge: 3
holla, das mein ich, danke.

Das finde ich am flash immer blöd, da will man eigentlich ganz logische Sachen machen und ist auf trickschusterei angewiesen....naja, mal nachdenken schadet ja nicht 8-).

danke nochmal...daniel.
Dael ist offline   Mit Zitat antworten
Alt 10-10-2003, 15:17   #6 (permalink)
Zuschauer
 
Registriert seit: Mar 2003
Beiträge: 15
Der entscheidende Punkt ist der this.obj.owner=this oder? Danke vielmals - danach hab ich auch grad gesucht

Bei mir läuft das übrigens auch, ohne die onLoad()-Methode explizit aufzurufen..

Grüße,
Jens
JensR ist offline   Mit Zitat antworten
Alt 10-10-2003, 15:31   #7 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Sicher, die Methode onLoad wird hier nur zum Test aufgerufen, Eigentlich wird onLoad ja vom XML-Objekt aufgerufen, wenn die Datei geladen ist.

mfg r.
bokel ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 04:29 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele