Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 01-10-2008, 15:38   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2004
Beiträge: 83
Object auf null - statische Variable bleibt vorhanden

Hi,
ich habe in kleines Testfile angelegt:

Main.fla:
PHP-Code:
var my_gc:Gctest = new Gctest();
my_gc.setProb("Hiho");
my_gc.tracer();

my_gc null;

my_gc = new Gctest();
my_gc.tracer(); 
Gctest.as:
PHP-Code:
package {
    
import flash.display.MovieClip;
    
    public class 
Gctest extends MovieClip 
    
{
        private static var 
prob String;
        public function 
Gctest() 
        {
            
trace("Gctest init...");
        }
        
        public function 
setProb(p_string):void {
            
prob p_string;
        }
        public function 
tracer():void {
            
trace(prob);
        }
    }

Ausgabe ist (meiner Meinung nach) überraschenderweise:
Gctest init...
Hiho
Gctest init...
Hiho


Ich hätte gedacht er würde sagen:
Gctest init...
Hiho
Gctest init...
null


Ich habe also eigentlich my_gc = null gesetzt aber dennoch "behält" das Obejct sich die statische Eigenschaft "prob". Warum wird die nicht auch gelöscht wenn ich doch das ganze Object löschen? Und wie kann ich auch diese Eigenschaft sozusagen zurücksetzen.

Geändert von EiKei (01-10-2008 um 15:39 Uhr)
EiKei ist offline   Mit Zitat antworten
Alt 01-10-2008, 15:43   #2 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
statische "Objekte" gehören nicht zu einer Instanz der Klasse, sondern bekommen im Speicher einen separaten Platz.
Darum kann man diese "Objekte" auch nutzen ohne eine Instanz der Klasse erzeugt zu haben.
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 01-10-2008, 15:44   #3 (permalink)
as3 addict
 
Benutzerbild von Marcy_LH
 
Registriert seit: Jun 2002
Ort: Leipzig
Beiträge: 351
statische Variaben haben nichts mit Objekten zu tun. Sie sind vielmehr Klassenvariablem. Zum zurücksetzen einfach in den constructor ein:

prob = null;

Wobei du das dann auch nicht static machen könntest
Marcy_LH 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 12:06 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele