Here is a complete example: http://www.cflex.net/showFileDetails.cfm?ObjectID=690
Tracy ________________________________ From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of lagos_tout Sent: Friday, October 31, 2008 4:45 PM To: flexcoders@yahoogroups.com Subject: [flexcoders] Re: SWFLoader: access its contents right away Wow, I messed up on that. Instead of -- > //broadcast events that parent.swf can respond to. > systemManager.dispatch(new Event("myChild")); use -- //broadcast events that parent.swf can respond to. systemManager.dispatch(new Event("myEventName")); --- In flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> , "lagos_tout" <[EMAIL PROTECTED]> wrote: > > Hi, > > I recently did something like this. But it was more complicated because > I was loading a swf from a different domain from it's parent. I needed > to attach an event handler to the swf when SWFLoader was done loading. > Then at some point, the loaded swf would broadcast an event, and the > parent swf would be able to respond. > > Contrary to what the last poster said, I think you should consider > listening for the Event.INIT, not Event.Complete broadcast by your > SWFLoader. To determine which one you need, check descriptions of these > two events in the Flex 3 Language Reference. Here's the meat of it: > > INIT is broadcast when the properties and methods of a loaded SWF file > are accessible. > COMPLETE is broadcast when content loading is complete. > > So, if you need to be able to access child movie clips, I'd say use > INIT. > > Here's some code. Please note that both parent and child are Flex > applications, yielding parent.swf and child.swf. > > In parent.swf: > > mySwfLoader:SWFLoader = new SWFLoader(); > mySwfLoader.addEventListener(Event.INIT, onInit); > function onInit(event:Event):void > { > mySwfLoader.content.addEventListener("myEventName", > onMyEventHandler); > } > function onMyEventHandler(event:Event):void > { > //do something > } > > In child.swf: > > //broadcast events that parent.swf can respond to. > systemManager.dispatch(new Event("myChild")); > > I found that when loading a Flex generated child.swf, > mySwfLoader.content is a reference to the child.swf's systemManager > property. So in order to broadcast events from my loaded swf, you > needed to dispatch the event using the child application's systemManager > property. Hence the last line of code. > > Hope that helps. > > LT > > --- In flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> , Alex Harui <aharui@> wrote: > > > > The "complete" event tells you when the load is complete. All > SWFLoader loads from the network are asynchronous. You'll always have > to wait to access the data > > > > From: flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> [mailto:flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> ] > On Behalf Of Ignasi Lirio > > Sent: Thursday, October 30, 2008 2:36 PM > > To: flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> > > Subject: [flexcoders] SWFLoader: access its contents right away > > > > > > Hi all, > > > > I am new in this group, so hello to everyone :-) > > > > I want to discuss here about SWFLoader component in Flex 3, and how to > > access their contents... programatically. > > > > Just for short: > > > > I have an existing, empty SWFLoader object in my MXML code. > > > > After some time, I just want to populate it using SWFLoader.load() > > method with an external SWF movie, that has child MovieClips inside. > > > > Right after call the .load() method, I am insterested (in the same > > function) to access its children to move positions, etc. So, if I do > > something like: > > > > var myloader:SWFLoader= this.swfload; > > > > and then > > > > myloader.load("shelf2.swf"); > > > > and then > > > > myloader.content["s2"].alpha=0.3; > > > > It does not work at all. I tried myloader.addEventListener(...) with > > several events, does not work. > > > > The only way was to put that "myloader.content["s2"].alpha..." inside > > a setTimeout function, to allow SWFLoader to take some time to load. > > But you agree with me that this is so dirty. > > > > any ideas? Thanks to everyone! > > >