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

Pristup objektima u roditeljskom frjmu, pomoc.

[es] :: Flash :: Pristup objektima u roditeljskom frjmu, pomoc.

[ Pregleda: 1645 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

dalibor_zdravkovic
Dalibor Zdravkovic
Ne Zaposlen
Leskovac

Član broj: 155994
Poruke: 114
93.87.37.*



+1 Profil

icon Pristup objektima u roditeljskom frjmu, pomoc.15.08.2010. u 20:31 - pre 166 meseci
Muci me sledeci problem.

U frejmu doadjme objekte komandom "addChild", u istom frejmu imam "MovieClip" sa dugmetom cijim klikom treba da npr. postavim parametar "alpha" na 1 objektan na poziciji 2 u roditeljskom frejmu.

MovieClip ima funkciju koja na klik dugmeta obavlja gore navedenu operaciju.

U fukciji sam pokusao da to izvedem sledecim komadnadma:

Code:

var item:Object = MovieClip(this.parent).getChildAt(2); // item je nakon izvrsenja NULL
item.alpha = 1;


Code:

var item:Object = MovieClip(this.parent.parent).getChildAt(2); // isti slucaj item je nakon izvrsenja NULL
item.alpha = 1;


Ubih se od guglanja i nista.

Da li neko ima resenje za ovaj slucaj;
Dalibor Zdravkovic
 
Odgovor na temu

StarCraft
Rančić Milan
Beograd

Član broj: 164837
Poruke: 441
...148.91.adsl.dyn.beotel.net.



+3 Profil

icon Re: Pristup objektima u roditeljskom frjmu, pomoc.16.08.2010. u 08:51 - pre 166 meseci
Ako pišeš sve u prvom frejmu timeline-a onda je this u stvari root, tj. Main (document) klasa, a ona nema parent.

Evo jedno kratko objašnjenje "kada iskače greška za null object":
- Ako imaš neki object i pokušaš da pristupiš nekom njegovom null property-u (greškom naravno), onda ne dobijaš nikakav error.
primer:
a = obekat.nekiNepostojećiProperty;
trace( a ); // output: null

- Ako pokušaš da pristupiš property-u nekog već nepostojećeg objekta, onda iskače error "null object reference"
primer:
a = nullObjekat.nekiProperty;
>izbacuje error<

www.zeitgeistmovie.com - film koji mora svako da vidi! (free to download)
 
Odgovor na temu

dalibor_zdravkovic
Dalibor Zdravkovic
Ne Zaposlen
Leskovac

Član broj: 155994
Poruke: 114
93.87.37.*



+1 Profil

icon Re: Pristup objektima u roditeljskom frjmu, pomoc.16.08.2010. u 10:09 - pre 166 meseci
Citat:
StarCraft:

Ako pišeš sve u prvom frejmu timeline-a onda je this u stvari root, tj. Main (document) klasa, a ona nema parent.

Evo jedno kratko objašnjenje "kada iskače greška za null object":
- Ako imaš neki object i pokušaš da pristupiš nekom njegovom null property-u (greškom naravno), onda ne dobijaš nikakav error.
primer:
a = obekat.nekiNepostojećiProperty;
trace( a ); // output: null

- Ako pokušaš da pristupiš property-u nekog već nepostojećeg objekta, onda iskače error "null object reference"
primer:
a = nullObjekat.nekiProperty;
>izbacuje error<
 

Ma nije to problem.

Problem je kako da iz "MovieClip-a" pristupim objektima koji se nalaze u istom frejmu u kome je i sam "MovieClip", ustvari da pribavim objekat koji pretstavlja taj frejm pa da komandom "getChildAt(i)" tog objekta u petlji prodjem kroz sve objeket u datom frejmu ukljucujuci i sam "MovieClip" ali ono sto je bitno da se sve to radi u samom "MovieClipu" a ne u frejmu u kome je "MovieClip".
Dalibor Zdravkovic
 
Odgovor na temu

kelja

Član broj: 70429
Poruke: 1416
*.dynamic.isp.telekom.rs.



+35 Profil

icon Re: Pristup objektima u roditeljskom frjmu, pomoc.16.08.2010. u 11:05 - pre 166 meseci
Nesto drugo je tu problem, ne ovaj kod, toliko mogu da kazem, jerbo ovaj tvoj kod radi. (Jednostavan test sa dva movie clipa u istom frejmu)

Citat:
U frejmu doadjme objekte komandom "addChild",


Mislim da je ovde uzrok problema, posalji ceo kod/fla fajl, pa ce ti neko vec pomoci. :)
 
Odgovor na temu

StarCraft
Rančić Milan
Beograd

Član broj: 164837
Poruke: 441
...148.91.adsl.dyn.beotel.net.



+3 Profil

icon Re: Pristup objektima u roditeljskom frjmu, pomoc.16.08.2010. u 13:36 - pre 166 meseci
Kolko sam ja skapirao, ti imaš Main klasu (da je tako nazovem, recimo) i iz nje si instancirao neki MovieClip koji je NekeKlase. I sad, ti hoćeš da ta NekaKlasa kontroliše ostale MovieClipove koji se nalaze "pored njega" tj. u Main klasi (u root-u stejdža)?

To je generalno najveći problem u AS3, što takav princip rada jednostavno više ne funkcioniše (nažalost) a mnogi vuku naviku takvog rada još iz AS2. Ranije je bilo dovoljno bilo-odakle jednostavno napisati _root.nešto.nešto i to bi radilo ko sat, a sada...
Gle, ako baš hoćeš da radiš na ovaj način, fora kako da dođeš do root-a je sledeća, ti treba da od current objekta (koji je NekeKlase) i kastuješ root tog objekta u "oblik" tvoje Main klase. Tako recimo, ako ti je document klasa zaista klase "Main" onda do root-a dolaziš uz pomoć sledećeg kôda:

var main:Main = Main(this.root);

I onda bi trebalo da možeš da pristupiš ostalim objektima u root-u normalno. Kažem "trebalo bi" zato što meni ovo čas radi - čas ne radi (iz apsolutno nepoznatih razloga) i verovatno je najbolje da ti Main klasa extenduje MovieClip (i uopšte je verovatno najbolje da svuda koristiš MovieClip umesto Sprite) zato što je MovieClip jedn aod retkih dinamičnih klasa koje ti dozvoljavaju da u njih beležiš custom promenljive "u letu". Npr:

var mc:MovieClip = new MovieClip();
mc.blabla = 5; // ovo može


var mc:Sprite= new Sprite();
mc.blabla = 5; // ovo ne može, izbacuje grešku

Vremenom sam shvatio da se ne isplati boriti se protiv toga, nego jednostavno treba promeniti način rada (jbg) tako da bi ti u stvari trebao da sve akcije definišeš unutar Main klase, a da Main klasa sluša eventove koje bacaju ti child objekti. Npr:

[ child movieClip baci event "obrišiOstaleObjekte" ] -> [ Main listenuje taj event i pokreće funkciju obrisiObjekte() ]

i onda, da mi Main klasa ne bi imala milion redova kôda, onda pravim "menager" klase za određene oblasti u mojoj aplikaciji. Evo upravo radim na virtuelnoj tastaturi koja stoji na ekranu da bi deca mogla da kucaju ćirilicu lakše uz pomoć miša. I onda sam napravio klasu pod nazivom "TastaturaMenager". I kada instanciram tu klasu, ona automatski postavi MovieClip tastature na ekran, inicijalizuje sve dugmiće da slušaju mouseEventove i reguliše prikaz otkucanih slova prilikom kucanja itd. Ta klasa naravno sadrži i public metodu obrišiTastaturu() koju samo pozovem kada mi tastatura više ne treba. Tako isto imam i menager klasu za galeriju slika, za tranziciju prilikom menjanja stranica u aplikaciji, za main meni koji je uvek vidljiv, itd.
www.zeitgeistmovie.com - film koji mora svako da vidi! (free to download)
 
Odgovor na temu

dalibor_zdravkovic
Dalibor Zdravkovic
Ne Zaposlen
Leskovac

Član broj: 155994
Poruke: 114
93.87.37.*



+1 Profil

icon Re: Pristup objektima u roditeljskom frjmu, pomoc.17.08.2010. u 15:22 - pre 166 meseci
Hvala ljudi. Tako sam na kraju i sam uradio. U Childu bacam evente a u roditeljskom objektu ih hvatam. Znaci ako is childa tereba nesto da uradim van njega kreiram event za to pa ga bacim u childu a uhvatim ga u roditejskom objektu i odradim sve stvari u roditeljskom objektu.
Dalibor Zdravkovic
 
Odgovor na temu

StarCraft
Rančić Milan
Beograd

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



+3 Profil

icon Re: Pristup objektima u roditeljskom frjmu, pomoc.18.08.2010. u 00:23 - pre 166 meseci
Da, ali i pored toga, ja uvek kada pravim instancu neke moje custom kalse, njoj predajem referencu ka Main klasi. Obično zatreba ;)
www.zeitgeistmovie.com - film koji mora svako da vidi! (free to download)
 
Odgovor na temu

[es] :: Flash :: Pristup objektima u roditeljskom frjmu, pomoc.

[ Pregleda: 1645 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

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