This is a bit different. In the last example, the objects were generic with dynamic properties (are not declared). The class CustomProvider is dynamic, which means it can hold dynamic properties, but the properties in your code (monday, tuesday) are declared, hence not dynamic. The for..in loop only iterates over dynamic properties and methods. To make them dynamic, don't declare them, just add them at runtime.
More info here: http://livedocs.adobe.com/flex/3/html/help.html?content=usingas_8.html Haykel Ben Jemia Allmas Web & RIA Development http://www.allmas-tn.com On Thu, Dec 18, 2008 at 5:56 PM, lorenzo.boaro <[email protected]> wrote: > hi, > > i'll hope that you are very patient... > > i'll try your code...but not works..maybe i made mistake in creating > the custom provider... > > i have this class > > public dynamic class CustomProvider extends Object > { > private var test:String; > private var monday:String; > private var tuesday:String; > > public function CustomAdvancedBaseGridProvider(test:String, > monday:String, tuesday:String) > { > super(); > this.test= test; > this.monday= monday; > this.tuesday= tuesday; > } > > and then plus instances of CustomProvider are passed to an > Arraycolection... > > thanks > > Lorenzo > > > --- In [email protected] <flexcoders%40yahoogroups.com>, "Haykel > BEN JEMIA" <hayke...@...> > wrote: > > > > If your array has the id "a" for example, you can do: > > > > for each (var o:Object in a) > > { > > for (var p:Object in o) > > { > > trace(p + " " + o[p]); > > } > > } > > > > You can access the properties of an object like with an array. > > > > Haykel Ben Jemia > > > > Allmas > > Web & RIA Development > > http://www.allmas-tn.com > > > > > > > > > > On Thu, Dec 18, 2008 at 3:30 PM, lorenzo.boaro <lore...@...> wrote: > > > > > you have perfectly reason!!! > > > > > > thanks a lot... > > > > > > can i pose you the last question? > > > > > > i've an array collection like this (written completely from as3!!) > > > > > > <mx:Array> > > > <mx:Object monday="23" tuesday="45" /> > > > <mx:Object monday="33" tuesday="90" /> > > > <mx:Object monday="13" tuesday="15" /> > > > </mx:Array> > > > > > > can i access fields names (monday for example) and values (23 for > > > example) from as3 with a for cycle? how can i do this? > > > > > > for example i would print > > > > > > monday 23 > > > tuesday 45 > > > > > > and so on... > > > > > > thanks again..you are right! > > > > > > > > > --- In [email protected] > > > <flexcoders%40yahoogroups.com><flexcoders% > 40yahoogroups.com>, > "Haykel > > > BEN JEMIA" <haykelbj@> > > > wrote: > > > > > > > > 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 <loreboa@>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> > <flexcoders%40yahoogroups.com><flexcoders% > > > > 40yahoogroups.com>, > > > > > > "Haykel > > > > > BEN JEMIA" <haykelbj@> > > > > > 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 <loreboa@>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 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >

