actionscript 3 - AS3 - Nested SWF Button Problems -
so have main swf main menu launches other swfs , launches fine when other apps running can still click buttons on main menu...
function startload(e:mouseevent){ var mloader:loader = new loader(); var mrequest:urlrequest; if (e.target == btnone){ mrequest = new urlrequest("appone.swf"); } else if (e.target == btntwo){ mrequest = new urlrequest("apptwo.swf"); } mloader.contentloaderinfo.addeventlistener(event.complete, oncompletehandler); mloader.contentloaderinfo.addeventlistener(progressevent.progress, onprogresshandler); mloader.load(mrequest); } i can disable main menu buttons , works far haven't found way trigger main menu re-enable them.
disabling button obtained e.target when event arrives startload method improve behaviour of code. differentiating oncompletehandler methods per swf give chance enable corresponding buttons back.
since know nil button class, phone call yourbuttonclass, write disable(); , enable(); in examples below disabling , enabling methods buttons. please replace them appropriate right class name methods or property setting. checking e.target class , buttons avoid unnecessary tragedies.
function startload(e:mouseevent){ var mloader:loader; // havent seen river, lets not inflate our boat. var mrequest:urlrequest; if(!(e.target yourbuttonclass)) return; // no nightmares.. if((e.target != btnone)&&(e.target != btntwo))return; // no nightmares.. yourbuttonclass(e.target).disable(); // disable button here mloader = new loader(); // river! inflate boat :) if (e.target == btnone){ mrequest = new urlrequest("appone.swf"); mloader.contentloaderinfo.addeventlistener(event.complete, oncompleteappone); } else { // sure btntwo if not btnone now... mrequest = new urlrequest("apptwo.swf"); mloader.contentloaderinfo.addeventlistener(event.complete, oncompleteapptwo); } mloader.contentloaderinfo.addeventlistener(progressevent.progress, onprogresshandler); mloader.load(mrequest); } // method enabling btnone protected function oncompleteappone(event: e){ btnone.enable(); commoncompleteoperations(e);// if have other operations post processing } // method enabling btntwo protected function oncompleteapptwo(event: e){ btntwo.enable(); commoncompleteoperations(e);// if have other operations post processing } // method on finish mutual operations if have. protected function commoncompleteoperations(event e){ // processing here, instance remove event listener check // application domain etc... } as precaution, hear security error , io error events. both error events can handled single handler method per button/file.
actionscript-3 flash actionscript flash-builder flash-cs6
No comments:
Post a Comment