Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

AS3 - pozivanje "globalne" promenljive

[es] :: Flash :: AS3 - pozivanje "globalne" promenljive

[ Pregleda: 2753 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

StarCraft
Rančić Milan
Beograd

Član broj: 164837
Poruke: 441
91.148.66.*



+3 Profil

icon AS3 - pozivanje "globalne" promenljive13.05.2009. u 09:05 - pre 181 meseci
Tek sam počeo da radim u AS3.
Hoću da napravim u jednom AS3 projektu da imam neku globalnu promenljivu koja će da definiše trenutni mod u kojem se kursor nalazi (normalan mod, mod selektovanja objekata, mod oduzimanja iz selekcije...)

Ja sam zamislio da napravim neku instancu pa da u njoj imam te neke "globalne" promenljive koje će ostali objekti da čitaju. Kako sad da napravim da instanca A čita promenljive iz instance B?
U AS2 bi samo napisao _root.B.mod, međutim to ne pali u AS3...

A možda se u AS3 sve to radi potpuno drugačije...?
www.zeitgeistmovie.com - film koji mora svako da vidi! (free to download)
 
Odgovor na temu

gonzos
Doboj

Član broj: 68687
Poruke: 293
91.191.27.*



+3 Profil

icon Re: AS3 - pozivanje "globalne" promenljive13.05.2009. u 19:26 - pre 181 meseci
Ono sto trebas je inheritance. Ako bas hoces da savladas sam (sto je najbolje) probaj ovo:

http://www.moock.org/blog/archives/000289.html

Izaberi inheritance kurs, naravno, nadam se da engleski nije problem!

[Ovu poruku je menjao gonzos dana 13.05.2009. u 21:46 GMT+1]
 
Odgovor na temu

StarCraft
Rančić Milan
Beograd

Član broj: 164837
Poruke: 441
91.148.66.*



+3 Profil

icon Re: AS3 - pozivanje "globalne" promenljive14.05.2009. u 12:26 - pre 181 meseci
Da, super su tutoriali, thnx. ALi nije inheritance ono što meni treba, to već znam.
Meni treba KAKO DA KOMUNICIRAM IZMEĐU DVE INSTANCE RAZLIČITIH KLASA GDE SE OBE NALAZE U ROOT-U STEJDŽA. Tj. kako da iz jedne instance pročitam vrednost iz neke druge instance, ili čak iz root-a samog. Treba nešto da se kastuje... nešto (šta god to značilo)
www.zeitgeistmovie.com - film koji mora svako da vidi! (free to download)
 
Odgovor na temu

dimjas
Nis

Član broj: 107293
Poruke: 52
*.adsl-3.sezampro.yu.



Profil

icon Re: AS3 - pozivanje "globalne" promenljive14.05.2009. u 13:07 - pre 181 meseci
Mislim da ti treba nesto kao ovaj primer
Code:

package {
    import flash.display.Sprite;
    
    public class MainTest extends Sprite {
        public static var main:MainTest;
        public var classA:ClassA;
        private var _classB:ClassB;
        
        
        public function MainTest() {
            main=this;
            
            init();
        }
        
        private function init() :void {
            classA=new ClassA("test");
            _classB=new ClassB();
            _classB.methodOne(classA.title);
        }
    }
}


Code:

package {
    public class ClassA {
        private var _title:String;
        
        public function get title() :String {
            return _title;
        }
        
        public function ClassA(value:String) {
            _title=value;
        }
    }
}


Code:

package {
    public class ClassB {
        public function ClassB() {
            init();
        }
        private function init() :void {
                methodTwo();
        }
        public function methodOne(value:String) :void  {
            trace(value);
        }
        
        private function methodTwo() :void {
            methodOne(MainTest.main.classA.title);
        }
    }
}


Ili ti treba neki Singleton pattern ili FrontController, nisam sigurna
 
Odgovor na temu

StarCraft
Rančić Milan
Beograd

Član broj: 164837
Poruke: 441
91.148.66.*



+3 Profil

icon Re: AS3 - pozivanje "globalne" promenljive14.05.2009. u 14:34 - pre 181 meseci
Ne znam šta ti je Singleton pattern ili FrontController, al mislim da sam skapirao šta si uradila.

Ti si u stvari SVE objekte (instance) potrpala u neke promenljive (referencirala si ih) čak si i "MainTest" stavila u "main" referencu. Pa si sve praktično odradila iz "MainTest" klase. A uspela si da referenciraš "classA" objekat iz "_classB" objekta zato što:
- si referencirala main klasu (pa onda možeš da napišeš: MainTest.main.classA.title )
- oba objekata su instancirana iz "main" instance (da li to znači da su oni automatski njeni childreni?)

U suštini output window (trace) bi trebao da izbaci dva puta istu stvar: "test".


Pošto ja dolazim iz AS2 sveta, naviko sam da su mi svi ti objekti već na ekranu, pa nisam mogao da se snađem...
Probaću da zbudžim nešto na ovaj fazon, pa ću videti dal će da upali...
www.zeitgeistmovie.com - film koji mora svako da vidi! (free to download)
 
Odgovor na temu

dimjas
Nis

Član broj: 107293
Poruke: 52
*.adsl-3.sezampro.yu.



Profil

icon Re: AS3 - pozivanje "globalne" promenljive14.05.2009. u 15:01 - pre 181 meseci
lol, samo sam napravila primer za to i 2 nacina za pristup toj drugoj klasi, mislila sam da ti to treba. Ako zelis u jednoj instanci da pamtis nesto sto ces koristiti kroz celu aplikaciju, onda mozes da koristis taj Singleton pattern, jedna instanca je uvek gde god da je pozivas.
 
Odgovor na temu

StarCraft
Rančić Milan
Beograd

Član broj: 164837
Poruke: 441
91.148.66.*



+3 Profil

icon Re: AS3 - pozivanje "globalne" promenljive15.05.2009. u 12:08 - pre 181 meseci
Dada, to mi je trebalo :) thnx

Pogledaću ovih dana na netu šta je taj singleton pettern (osim ako te ne mrzi da ovde ukratko objasniš) ^_^
www.zeitgeistmovie.com - film koji mora svako da vidi! (free to download)
 
Odgovor na temu

Tudfa
Jovicevic Vladimir

Član broj: 152699
Poruke: 384
*.dynamic.sbb.rs.



+3 Profil

icon Re: AS3 - pozivanje "globalne" promenljive16.05.2009. u 00:31 - pre 181 meseci
Singleton patern obezbedjuje da postoji samo jedna instanca(recimo klase koja sluzi za rad sa kofiguracionim parametrima aplikacije) date klase u okviru projekta i da postoji mogućnost globalnog pristupa toj instanci. E sad, dok dimjas ne napiše konkretnu implementaciju, pošto ja nisam još radio sa AS3, da pokušam da ti u kratkim crtama objasnim kako bi to trebalo da izgleda, pošto je to isto praktično za svaki objektno orijentisani jezik. Poenta je da postoji jedna instanca date klase i da joj se moze pristupiti iz svakog opsega. To se obično u OOP jezicima postize definisanjem konstruktora kao private i pomoću javne statične metode getInstance().
E sad pošto sam negde procitao da AS3 ne dozvoljava definisanje konstruktora drugačije sem public, voleo bih da dimjas pokaze
na primeru kako izgleda implementacija singleton paterna u AS3 i da li se onda koristi neka dodatna promenljiva ili nešto drugo...
 
Odgovor na temu

dimjas
Nis

Član broj: 107293
Poruke: 52
*.adsl-4.sezampro.yu.



Profil

icon Re: AS3 - pozivanje "globalne" promenljive16.05.2009. u 15:09 - pre 181 meseci
Code:

package com.dimjas.gallery {
    /**
    * stores all properties and values
    */

    public class GalleryStyleManager {
        // CONSTANTS
        public static const DEFAULT_BACKGROUND_INNER_COLOR:uint=0xCCCCCC;
        public static const DEFAULT_BACKGROUND_OUTER_COLOR:uint=0x000000;
        public static const DEFAULT_IMAGE_BACKGROUND_COLOR:uint=0x000000;
        public static const DEFAULT_THUMB_OVER_COLOR:uint=0xFFFFFF;
        public static const DEFAULT_NUMBER_OF_ITEMS:uint=10;
        public static const DEFAULT_THUMB_WIDTH:uint=100;
        public static const DEFAULT_THUMB_HEIGHT:uint=100;
        public static const DEFAULT_CIRCLE_RADIUS:uint=300;
        public static const DEFAULT_CAMERA_RADIUS:uint=180;
        
        // VARIABLES
        private static var _instance:GalleryStyleManager
        private var _properties:Object;
        
        public static function getInstance() :GalleryStyleManager {
            if(_instance==null) {
                _instance=new GalleryStyleManager();
            }
            return _instance;
        }
        
        public function GalleryStyleManager() {
            if(_instance!=null) {
                throw new Error("GalleryStyleManager class already instantiated");
            }
            else {
                _properties=new Object();
            }
        }
        
        /*----------------- PUBLIC FUNCTIONS --------------------*/
        /**
        * @param key      Name for property
        * @param value     Value for that property
        */
        public function setProperty(key:String, value:Object):void
        {
            _properties[key]=value;
        }
        /**
        * @param key     Name for property
        * @returns         Value for that property
        */
        public function getProperty(key:String):Object
        {
            return _properties[key];
        }
        
    }
}



Ovo je primer za jedan Singleton u kom "cuvam" sve podatke za jednu galeriju na primer. Obicno napravim jedan xml sa parametrima koje hocu da menjam, onda ih ovaj Singleton koristi. Ukoliko nisam nesto navela u xml-u, onda koristim te DEFAULT konstante iz njega.

Instanca se poziva sa: GalleryStyleManager.getInstance(); Primer:
Code:

GalleryStyleManager.getInstance().setProperty("thumbWidth", 200);


Ta static funkcija getInstance() obezbedjuje da se uvek koristi samo jedna instanca i nadam se da je sada sve jasno.

[Ovu poruku je menjao dimjas dana 16.05.2009. u 16:23 GMT+1]
 
Odgovor na temu

StarCraft
Rančić Milan
Beograd

Član broj: 164837
Poruke: 441
*.dynamic.sbb.rs.



+3 Profil

icon Re: AS3 - pozivanje "globalne" promenljive17.05.2009. u 00:11 - pre 181 meseci
E strava, čini mi se da mi nekako leži ovaj Singletone način programiranja (bar za početak, dok ne krenem da izmišljam neke svoje fore ;) )
Hvala puno na pomoći, pokušaću ovu foru nekako da primenim pa ću da vidim.
www.zeitgeistmovie.com - film koji mora svako da vidi! (free to download)
 
Odgovor na temu

[es] :: Flash :: AS3 - pozivanje "globalne" promenljive

[ Pregleda: 2753 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.