A few thoughts,

If you can get a handle on the parent (your controller), try initiating the
event from this or add the event listner on the array collection with the
listener function in the controller:

in collection class:

this.parent.dispatch( myEvent );

alternatively in your controller:

this.myArrayColl.addEventListener( MY_EVENT, cntrlrListnFnc );

the proper best practice is (in the parent/controller):

[Event(name="*eventName*", type=*"package.eventType"*)]

see: http://livedocs.adobe.com/flex/3/html/help.html?content=metadata_3.html

Also make sure your event is set to bubble = true:

new Event( MY_EVENT, true );




On Sat, Aug 27, 2011 at 6:23 PM, Vaibhav Seth <[email protected]>wrote:

> Hi Corey,
>
> Seems strange to me too, it should listen.
> I tried to do the same, but a little simple, and it is working correct.
>
>
> *CUSTOM ARRAYCOLLECTION*
>
> package as3
> {
> import mx.collections.ArrayCollection;
> import mx.events.CollectionEvent;
>
> public class MyAC extends ArrayCollection
> {
> public function MyAC(source:Array=null)
>  {
> super(source);
> }
>  public function getData():void
> {
>  for (var i:uint=0; i<10; i++)
> {
> this.addItem("Item"+i.toString());
>  }
> this.dispatchEvent(new CollectionEvent(CollectionEvent.COLLECTION_CHANGE));
>  }
> }
> }
>
> *CONSUMING APPLICATION*
> *
> *
> <?xml version="1.0" encoding="utf-8"?>
> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
> layout="absolute"
>  creationComplete="onCre()">
>  <mx:Script>
>  <![CDATA[
> import mx.controls.Alert;
> import mx.events.CollectionEvent;
>  import as3.MyAC;
>   private function onCre():void
> {
> var myAc:MyAC = new MyAC();
>
> myAc.addEventListener(CollectionEvent.COLLECTION_CHANGE,myACChangeHandler);
> myAc.getData();
>  }
>  private function myACChangeHandler(evt:CollectionEvent):void
>  {
> Alert.show("I am here",evt.currentTarget.length);
> }
>  ]]>
> </mx:Script>
>  </mx:Application>
>
>
> I am able to listen the event here, and I am able to listen it 10 times.
>
> Coming to your class:
>
> public class HostGroups extends baseCollection
>
> what is baseCollection here ?
>
> public override function copy(jsonObject:Object):void{
>
> I believe the base copy function will be in baseCollection class ? what it
> is for ?
>
> you can trace, if the control comes under the copy function ?
> you can also add a listener inside the HostGroup may be in a constructor to
> see if you can even listen the event inside the same class, if it is by any
> means a bubble issue.
>
> Let me know, if you find anything.
>
>
> On Sat, Aug 27, 2011 at 8:48 PM, Corey Osman <[email protected]> wrote:
>
>> HI,
>>
>> I have an issue where when I dispatch an event from an extended
>> arraycollection class the resulting event never gets caught.
>>
>> I dispatch the event from a arraycollection based class and then listen
>> for the event in a controller that instantiated the class.  However, the
>> event never seems to get caught.  Can anybody help me with this?    Events
>> are not new to me but I can't seem to get this specific instance to work.
>>  Is there a way to "monitor" the event stream?  I have spent 4 hours trying
>> to figure that out and can't solve this problem.
>>
>>
>> Code snippets
>> http://pastebin.com/1nXmCCQn
>>
>>
>> Corey
>>
>>
>> -------------------------------------------------------------
>> To unsubscribe from this list, simply email the list with unsubscribe in
>> the subject line
>>
>> For more info, see http://www.affug.com
>> Archive @ http://www.mail-archive.com/discussion%40affug.com/
>> List hosted by http://www.fusionlink.com
>> -------------------------------------------------------------
>>
>>
>>
>
>
> --
> Thanks,
> Vaibhav Seth.
>
>


-- 
Darin Kohles

Reply via email to