Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 13-10-2003, 18:58   #1 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
Object.deleteYourself() wie?

hi, ich habe folgendes Problem:
Ein Objekt soll sich vollständig selbst verwalten, ich meine, ich möchte es nicht so löschen: delete bla; sondern bla.deleteYourself. Folgender Versuch scheiterte kläglich, wie mach ich das richtig?

ActionScript:
  1. bla = new Object();
  2. bla.deleteYourself = function(){
  3.     delete _root.bla;
  4. }
  5. bla.traceWas = function(){
  6.     trace("asdf");
  7. }
  8.  
  9. bla.deleteYourself();
  10. bla.traceWas();
  11.  
  12. //Ausgabe: asdf
  13.  
THX
Janoscharlipp ist offline   Mit Zitat antworten
Alt 13-10-2003, 19:21   #2 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Hm, bei mir erscheint da keine Ausgabe. Kann es sein, dass du noch ein globales Objekt bla rumliegen hast ?

mfg. r
bokel ist offline   Mit Zitat antworten
Alt 13-10-2003, 19:49   #3 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
das verstehe ich nicht

ich könnte schwören, dass da vorher noch ne Ausgabe kam...
Janoscharlipp ist offline   Mit Zitat antworten
Alt 15-10-2003, 15:23   #4 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
achso, jetzt weiß ich, warum es so wie oben geht. Dort habe ich nämlich testweise mal einfach den Pfad _root.bla hingeschrieben. Aber eigenltich weiß das Objekt seinen Pfad nicht, d.h. es muss heißen:

ActionScript:
  1. bla = new Object();
  2. bla.deleteYourself = function(){
  3.         delete this;
  4. }
  5. bla.traceWas = function(){
  6.         trace("asdf");
  7. }
  8.  
  9. bla.deleteYourself();
  10. bla.traceWas();
  11.  
  12. //Ausgabe: asdf
  13.  


und so traced er was

gibt da ne Lösung?
Janoscharlipp ist offline   Mit Zitat antworten
Alt 15-10-2003, 15:32   #5 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Du musst den Pfad schon wissen, sonst geht es nicht. Du kannst den Pfad als Parameter an das Objekt übergeben.

mfg .r
bokel ist offline   Mit Zitat antworten
Alt 15-10-2003, 15:41   #6 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
also:

ActionScript:
  1. bla.deleteYouself = function(path){
  2. delete path;
  3. }

Danke!
Janoscharlipp ist offline   Mit Zitat antworten
Alt 15-10-2003, 15:47   #7 (permalink)
nerdig working
 
Benutzerbild von michael
 
Registriert seit: Jul 2001
Ort: Hamburg
Beiträge: 5.832
Delete mySelf oder "suicide"
michael ist offline   Mit Zitat antworten
Alt 15-10-2003, 18:01   #8 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
vielen Dank, der Thread ist aufschlussreich!
Janoscharlipp ist offline   Mit Zitat antworten
Alt 15-10-2003, 19:46   #9 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
hi, hier noch eine sehr unschöne Methode:

ActionScript:
  1. test = function(){
  2.     this.prop = "sonstnochwasoderwasanderes";
  3. }
  4. test.prototype.remAll = function(){
  5.     for(var i in this){
  6.         this[i] = null;
  7.     }
  8. }
  9. test.prototype.traceWas = function(){
  10.     trace("geht immernoch");
  11. }
  12.  
  13. bla = new test();
  14. bla.traceWas();//gibt was aus
  15. bla.remAll();
  16. bla.traceWas();//gibt nichts aus
  17. trace("neue Instanz erstellen");
  18. bla = new test();
  19. bla.traceWas();//gibt was aus
  20.  

unschön halt, dass immernoch die Referenz existiert, aber da sie leer ist, stört das ja eigenltlich nicht, oder?

Zudem muss ich so keine Verrenkungen von wegen Pfad speichern oder übergeben und ähnlichem anstellen.
Janoscharlipp 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 22:58 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele