Thank you for responding , interesting but not really what I'm looking
for.  Your example makes it 'tightly coupled' ( if thats the correct
terminology :) ) .. ie. Application relies on comp1 being a child and
also having a 'fired' method. 


The ultimate goal is to have a bunch of 'panels' that will 'refresh'
their data based on a 'global' timer .. My concern was using the
'Application.application' for the addListener but I guess thats what
I'm trying to 'capture' - ie. an event thats dispatched from the
'Application' ..  



--- In [email protected], Bjorn Schultheiss
<[EMAIL PROTECTED]> wrote:
>
> How about this
> 
> <?xml version="1.0" encoding="utf-8"?>
> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";  
> layout="absolute" xmlns:ns1="*" creationComplete="init()">
>       
>       <mx:Script>
>               <![CDATA[
>                       import flash.utils.Timer;
>                       import flash.events.TimerEvent;
>                       
>                       private function init():void
>                       {
>                               var timer:Timer = new Timer(1000);
>                               timer.addEventListener( TimerEvent.TIMER, 
> comp1.fired );
>                               timer.start();
>                       }
>               ]]>
>       </mx:Script>
> 
>       <ns1:PanelComp id="comp1" />
>       
> </mx:Application>
> 
> 
> <?xml version="1.0" encoding="utf-8"?>
> <mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml"; layout="absolute"  
> width="400" height="300">
>       <mx:Script>
>               <![CDATA[
>                       public function fired( e:TimerEvent ):void
>                       {
>                               trace('fired');
>                       }
>               ]]>
>       </mx:Script>
> </mx:Panel>
> 
> 
> 
> On 29/03/2007, at 11:21 AM, iilsley wrote:
> 
> >
> > Thanks for the response ..
> > This is the code that I have ( it works ) but is it the right way
> > to do it :) ..
> >
> > <?xml version="1.0" encoding="utf-8"?>
> > <mx:Application
> > xmlns:mx="http://www.adobe.com/2006/mxml";
> > layout="absolute"
> > creationComplete="init()"
> > width="100%" height="100%" xmlns:ns1="*">
> > <mx:Script>
> > <![CDATA[
> > import flash.utils.Timer;
> > import flash.events.Event;
> > private var cnt:int=0;
> >
> > public var tm:Timer = new Timer(1000,0);
> > private function init():void
> > {
> > tm.addEventListener(TimerEvent.TIMER,fired);
> > tm.start();
> > }
> >
> > public function fired(Timer:TimerEvent):void
> > {
> > dispatchEvent(Timer);
> > t.text = (++cnt).toString();
> > }
> > ]]>
> > </mx:Script>
> >
> > <mx:Text id="t" text="here"/>
> > <ns1:myPanel x="145" y="95">
> > </ns1:myPanel>
> > </mx:Application>
> >
> > and then the myPanel.mxml source
> >
> > <?xml version="1.0" encoding="utf-8"?>
> > <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml";
> > creationComplete="init()" width="100" height="100">
> >
> > <mx:Script>
> > <![CDATA[
> > import mx.core.Application;
> > import flash.events.TimerEvent;
> >
> > private var cnt:int=0;
> > private function init():void
> > {   Application.application.addEventListener(TimerEvent.TIMER,fired);
> > }
> >
> > private function fired(e:TimerEvent):void
> > {
> > t2.text = "myPanel "+(++cnt).toString();
> > }
> > ]]>
> > </mx:Script>
> > <mx:Text id="t2" text="here"/>
> > </mx:Canvas>
> >
> > --- In [email protected], "Tracy Spratt" <tspratt@> wrote:
> > >
> > > If an event "bubbles" you can listen for it in any ancestor, like
> > > Application.application.
> > >
> > >
> > >
> > > Look at the docs for the timer event, to se if if bubbles. If it  
> > does
> > > not, in the timer component, re-dispatch an event, setting the  
> > second
> > > argument to true, to make it bubble.
> > >
> > >
> > >
> > > Tracy
> > >
> > >
> > >
> > > ________________________________
> > >
> > > From: [email protected]  
> > [mailto:[EMAIL PROTECTED] On
> > > Behalf Of iilsley
> > > Sent: Tuesday, March 27, 2007 11:50 PM
> > > To: [email protected]
> > > Subject: [flexcoders] newbie question: Timer across components..
> > >
> > >
> > >
> > >
> > > Is it possible to have a Timer in one component and have another
> > > component
> > > execute a function when that timer fires ?
> > >
> > > eg:
> > >
> > > Comp1 has a timer set for 3 seconds ..
> > >
> > > In Comp2 I want to 'capture' the TimerEvent.TIMER from Comp1 to  
> > execute
> > > a function defined in Comp2..
> > >
> > > ---
> > > I currently have something working but I kinda feel its just not the
> > > right way .. :) ..
> > >
> > > In Comp2 I have
> > >
> > > Application.application.ti.addEventListener(TimerEvent.TIMER,fired);
> > >
> > > where 'ti' is the Timer .
> > >
> > > Is there a better way to listen for the event ?
> > >
> > >
> > > Thanks
> > >
> >
> >
> >
>


Reply via email to