OOP Help, AS3 OOP Problemi |
Dobrodošli, goste ( Prijava | Registracija )
![]() ![]() |
OOP Help, AS3 OOP Problemi |
Jul 1 2011, 16:18
Poruka
#1
|
|
|
Dakle, imam problem, radim svoju prvu oop stranicu i malo me grebe logika.
napravio sam Main klasu i u packageu sam radio ostale klase. Koristim SWFAddress i problem je ovaj. imam klasu za meni i klasu za dugme. u dugme klasi su samo definirani event listeneri i pripadajuće funkcije CODE package com.jossaric{ import flash.display.MovieClip; import flash.events.MouseEvent; import com.greensock.*; public class RestoBut extends MovieClip{ public function RestoBut() { var rb:MovieClip = this as MovieClip; rb.mouseChildren = false; rb.buttonMode = true; rb.addEventListener(MouseEvent.MOUSE_OVER, restoButOver); rb.addEventListener(MouseEvent.MOUSE_OUT, restoButOut); rb.addEventListener(MouseEvent.CLICK, restoButClick); } private function restoButOver(e:MouseEvent):void{ TweenMax.to(e.target.bg, .3, {tint:0x333333}); } private function restoButOut(e:MouseEvent):void{ TweenMax.to(e.target.bg, .3, {tint:null}); } private function restoButClick(e:MouseEvent):void{ var t:String = e.target.name.substr(2); Main.setAddress(t); } } } Svako dugme sa ovakvom klasom je dodano u meni klasu. Kao što vidite ovdje ja prosljeđujem varijablu (dio imena koji je u biti id) u main klasu i tamo želim da prema tome označim i disejblam odnosno odznačim i enablam određenu dugmad. Funkcija kojom želim da označavam dugmad u meniju nalazi se u Main klasi i glasi CODE public static function markRestoNav(list:XMLList, mc:MovieClip):void{ for(var i:uint = 0; i<list.length(); i++) { var bt:MovieClip = mc.getChildByName('bt' + i) as MovieClip; trace(bt); } } a pokrećem je iz main klase iz change address handlera sa CODE if(_xml != null && t1 != null) { var rm:MovieClip = getChildByName('restoMenu') as MovieClip; RestoMenu.markRestoNav(_xml, rm); } i trejsuje mi bt kao null, pokušao sam na razne načine no očito imam rupu u logici. |
|
|
|
|
Jul 2 2011, 13:27
Poruka
#2
|
|
|
određeni član Grupa: Urednici Poruke: 2,628 Datum reg.: 6-February 05 Lokacija: orion Član broj: 227 |
baš grebe...
kao što i sam vidiš, ovo ne radi a pritom je i komplikovano. lepo u main klasi postavi listener na custom event PRITISO_DUGMENCE, a u button klasi dispečuj taj isti event, i stvar je rešena... u Main klasi ćeš lako išlitati sve "id" parametre button-a, bez potrebe da prenosiš informacije tamo-amo. .getChildBy... je as2 logika. ne znam šta je konkretan problem u slučaju tvog koda, ali svakako promeni koncept. |
|
|
|
Jul 2 2011, 14:39
Poruka
#3
|
|
|
Kao sto the rece, zakomplikovao si logiku.
Ako vec neces da menjas kod, probaj : - da trejsujes taj mc sto treba da ima bt - probaj da tresujes hard coded bt. - koristi http://demonsterdebugger.com/ da vidis kako izlgeda display lista @ runtime. |
|
|
|
|
Jul 5 2011, 14:05
Poruka
#4
|
|
|
Da, ja baš želim da mijenjam kod. Dakle nije dobro da radim po as2 logici jer naravno želim napredovati tako da ću se potruditi da uradim ovo jednostavnije. Pokušat ću da riješim ovo kako the kaže pa se javim za help ako zapnem opet da mi ispravite smjer.
Tnx. |
|
|
|
|
![]() ![]() |
| Lo-fi verzija | Trenutno vreme: Wednesday 22. May 2013 - 17:04 |