Flashhilfe.de - Flash Community

Getter/Setter durch mehrere klassen [Flash 10]

Forum > ActionScript 3.0 > Getter/Setter durch mehrere klassen

 


AntwortenRegistrieren Seite1  

 30.03.2011, 18:55 
Benutzerbild von heckercay
Beiträge: 167
Wohnort: Luxemburg
Registriert: Feb 2007

Getter/Setter durch mehrere klassen
Moin Leutz,
tut mir Leid aber ich raffs einfach nicht...

ich hab nach Login (mySql) mehere "public static vars" in eine Klasse gespeichert um sie von dort aus Projektübergreifend nutzen zu können. (klappt 1A)

jetzt möchte ich mir eine Klasse mit funktionen schreiben die, wenn eine der userVars geändert wird, automatisch auslöst und den neuen Wert in die BD einträgt. In AS2 hab ich sowas über watch() gemacht, der ist ja aber leider verschwunden... :/

Mein Problem krieg ich diese "get & set geschichte" einfach nicht hin,
versuchs schon seit tagen...
Klappt das überhaupt so Klassenübergreifend? hat jemand einen Ansatz?

Danke...
IchBinUnwürdig... :D
 30.03.2011, 19:57Re1
Benutzerbild von springerFlashhilfe.de Moderator
Beiträge: 4906
Wohnort: zuhaus
Registriert: Apr 2004

hi,
das kann man so machen:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package
{
     import flash.events.Event;
     import flash.events.EventDispatcher;
     public class Model extends EventDispatcher
     {
         private var _number:Number = 0;
         public function Model():void
         {
            
         }
         public function set number(value:Number):void
         {
            if( value == _number ) return;
            _number=value;
            this.dispatchEvent(new Event("wasAuchImmer"));
         }
         public function get number():Number
        {
            return _number;
 
        }
     }
}
lieber chips essen und danach voller zweifel sein, als voller zweifel chips essen...
Geändert von springer am 30.03.11 um 19:58 Uhr

 30.03.2011, 20:06Re2
Benutzerbild von heckercay
Beiträge: 167
Wohnort: Luxemburg
Registriert: Feb 2007

Themenautor/in

hmm d.h. also, du würdest alles in die userVar Klasse hauen?
und wie/wo muss dann der listener hin?!?

dank dir... :)

bei interesse, hier die Klasse:
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package{
     public class userVars {
        
        public static var userId:String          = "";
        public static var userNick:String          = "";
        public static var userName:String          = "";
        public static var userPass:String          = "";
        public static var userSurname:String       = "";
        public static var userMail:String          = "";
        public static var userProfession:String      = "";
        public static var userDomain:String          = "";
        public static var userBirthdate:String       = "";
        public static var userStartdate:String       = "";
        public static var userStreet:String          = "";
        public static var userPostalcode:String      = "";
        public static var userCity:String          = "";
        public static var userCountry:String       = "";
        public static var userLastlog:String       = "";
        public static var userCredits:Number       = 0;
        public static var userTransactionVolume:Number= 0;
        public static var userActive:Boolean       = false;
        public static var userVisible:Boolean       = false;
     }
}
IchBinUnwürdig... :D
Geändert von heckercay am 30.03.11 um 20:07 Uhr

 
nicht sichtbar bei eingeloggten Mitgliedern
 30.03.2011, 21:56Re3
Benutzerbild von springerFlashhilfe.de Moderator
Beiträge: 4906
Wohnort: zuhaus
Registriert: Apr 2004

hm, eigentlich solltest du das mit einem Singleton machen und nicht mit statischen variablen.

so könnte das in etwa aussehen:

Model.as
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package
{
     import flash.events.Event;
     import flash.events.EventDispatcher;
     import flash.events.IEventDispatcher;
     
     public class Model extends EventDispatcher
     {
        public static const MYVAR_CHANGED : String = "myVarChanged";
        
        public static var _instance : Model;
        
        private var _myVar : Number = 0;
        
        public function Model( enforcer:Enforcer )
        {
           super();
        }
        
        public static function getInstance():Model
        {
           if( _instance == null ) _instance = new Model( new Enforcer( ) );
           return _instance;
        }
 
        public function get myVar():Number
        {
           return this._myVar;
        }
 
        public function set myVar(value:Number):void
        {
           if( value == this._myVar ) return;
           this._myVar = value;
           this.dispatchEvent( new Event( Model.MYVAR_CHANGED ) );
        }
 
     }
}

class Enforcer{}


und die verwendung dann so:

SingletonExample.as
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package
{
     import flash.display.Sprite;
     import flash.events.Event;
     
     public class SingletonExample extends Sprite
     {
        private var model : Model;
        
        public function SingletonExample()
        {
           this.model = Model.getInstance();
           this.model.addEventListener( Model.MYVAR_CHANGED, onMyVarChanged );
 
           this.model.myVar = 25;
        }
        
        private function onMyVarChanged( event:Event ):void
        {
           trace( event.type, this.model.myVar )
        }
     }
}


mit

ActionScript:
1Model.getInstance().myVar


kannst du dann auch von überall aus zugreifen ;-)
lieber chips essen und danach voller zweifel sein, als voller zweifel chips essen...
 
Themen
Ähnliche Beiträge zum Thema
Problem mit Settern [Flash 10] 13.11.2010 - Stryck
 

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.
Partner Webseiten: DesignerInAction.de   Designnation.de   Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   PSD-Tutorials.de   Tutorials.de

Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2012 Sebastian Wichmann - Flashhilfe.de