The panel that fired the event is e.target! The curentPanel is a property of the NewEvent itself, so you access it directly through e.currentPanel, but before, you have either to make it public or implement a public getter for it. As I said, if with currentPanel you just want to save a reference to the panel that fired the event, then you don't need it, it's in e.target.
For the stopPropagation functions, which one to use depends on what you want to do, you can find more information here: http://livedocs.adobe.com/flex/3/html/help.html?content=events_08.html Haykel Ben Jemia Allmas Web & RIA Development http://www.allmas-tn.com On Thu, Dec 18, 2008 at 12:55 PM, lorenzo.boaro <[email protected]>wrote: > tahnks > > now it works... > > an other question... > > if i modify theevent class to pass a panel > > > public static const NEW_EVENT:String = "newEvent"; > > private var currentPanel:Panel; > > override public function clone():Event { > return new FlipEvent(type, currentPanel); > } > > public function NewEvent(type:String, currentPanel:Panel) > { > super(type); > this.currentPanel = currentPanel; > } > > then when i fire the event how my function test can know about the > currentPanel > > for example like this.. > > function test(e:NewEvent) { > trace(e.target.currentPanel); > } > > then i would stop the propagation of the event > > there are two methods > > stopPropagation or stopImmediatePropagation ..how can i use? > > thanks again > > --- In [email protected] <flexcoders%40yahoogroups.com>, "Haykel > BEN JEMIA" <hayke...@...> > wrote: > > > > You have to add the event listener to the object that dispatches the > event > > you want to listen to. If your panels have the ids "panel1" and > "panel2" for > > example, you have to do: > > > > panel1.addEventListener(NewEvent.FLIP_EVENT, test); > > panel2.addEventListener(NewEvent.FLIP_EVENT, test); > > > > and not > > > > this.addEventListener(NewEvent.FLIP_EVENT, test); > > > > If in the event listener function (test) you need to know which panel > > dispatched the event, you can use the event.target property or you > can use a > > different event listener for every panel. > > > > > > Haykel Ben Jemia > > > > Allmas > > Web & RIA Development > > http://www.allmas-tn.com > > > > > > > > > > On Thu, Dec 18, 2008 at 12:09 PM, lorenzo.boaro <lore...@...>wrote: > > > > > > Hi, > > > > > > i can't understand the custom event business! > > > > > > can you help me? > > > > > > i'll explain the problem.. > > > > > > i've created this class: > > > > > > package events > > > { > > > import flash.events.Event; > > > > > > import mx.containers.Panel; > > > > > > public class NewEvent extends Event > > > { > > > public static const NEW_EVENT:String = "newEvent"; > > > > > > override public function clone():Event { > > > return new NewEvent(type); > > > } > > > > > > public function NewEvent(type:String) > > > { > > > super(type); > > > } > > > > > > } > > > } > > > > > > the i have two custom panels that have 2 buttons respectively and in > > > the mouse click event they dispatch the NewEvent event: > > > > > > var ne:NewEvent = new NewEvent(NewEvent.FLIP_EVENT); > > > dispatchEvent(ne); > > > > > > after class definitions i put the event metadata tag correctly. > > > > > > finally a custom viewstack listens for panel events, in the > > > constructor of the viewstack i put > > > > > > this.addEventListener(NewEvent.FLIP_EVENT, test); > > > > > > the function prova use the trace function to print a message. > > > > > > but i can't undestand why not works...maybe i made mistakes or i > > > misunderstood listener concepts? > > > > > > thanks a lot > > > > > > Regards Lorenzo > > > > > > > > > > > > > >

