Bubbling works generally. Simplify until it does, then re-add your complexity til it breaks.
_____ From: [email protected] [mailto:[email protected]] On Behalf Of valkyrie77 Sent: Sunday, March 08, 2009 1:52 PM To: [email protected] Subject: [flexcoders] Debugging Event Bubbling Hi Folks, I'm currently working on a twitter AIR client using the twitterscript AS3 library and having some issues with bubbling custom events that are created by nested "classses" back to the main application. I've architected so that the main application (A) spawns a new timeline window (B) for every twitter account a user may have. I have a Comm class (C) i use as a DAO layer to decouple the twitterscript custom events from my framework (in case i switch to a different as3 API library) My custom event class looks like this package com.kubeworks.events { import flash.events.Event; public class TweetCommEvent extends Event { public static const TIMELINE_BACK:String = "timelineBack"; public static const STATUS_BACK:String = "statusBack"; public static const USER_INFO_BACK:String = "userInfoBack"; public static const RATE_LIMIT_STATUS:String = "rateLimitBack"; public var data : Object = new Object (); public function TweetCommEvent(type:String, bubbles:Boolean=true, cancelable:Boolean=false) { super(type, bubbles, cancelable); } override public function clone():Event { return new PreferencePaneEvent(type, bubbles, cancelable); } } } My Comm Class goes something like package com.kubeworks.data { // Twitter API calls import com.kubeworks.events.TweetCommEvent; import flash.events.Event; import flash.events.EventDispatcher; import flash.utils.*; import mx.utils.ObjectUtil; import twitter.api.Twitter; import twitter.api.events.TwitterEvent; public class TweetComm extends EventDispatcher { private var username:String; private var password:String; private var _twitterClient:Twitter; // Constructor public function TweetComm(usern:String, pass:String) { // Initialize Twitter Event Listeners _twitterClient = new Twitter(); _twitterClient.addEventListener(Event.ACTIVATE, twitterClientActivateHandler); _twitterClient.addEventListener(Event.DEACTIVATE, twitterClientDeactivate); _twitterClient.addEventListener(TwitterEvent.ON_FRIENDS_TIMELINE_RESULT, twitterTimelineBack); _twitterClient.addEventListener(TwitterEvent.ON_SET_STATUS, twitterStatusBack); _twitterClient.addEventListener(TwitterEvent.ON_SHOW_INFO, twitterUserBack); _twitterClient.addEventListener(TwitterEvent.ON_RATE_LIMIT_STATUS, twitterRateLimitBackHandler); // Do stuff setLogin(usern, pass); setAuth(); } and within that class i'm re-dispatching like: private function twitterRateLimitBackHandler(event:TwitterEvent):void { var eventObj:TweetCommEvent = new TweetCommEvent(TweetCommEvent.RATE_LIMIT_STATUS, true); eventObj.data = event.data; dispatchEvent(eventObj); trace(">>twitterRateLimitBackHandler"); trace(ObjectUtil.toString(event)); trace("<<twitterRateLimitBackHandler"); trace(ObjectUtil.toString(eventObj)); } I've set the bubbling to true. However in my main application this EventListener never fires systemManager.addEventListener(TweetCommEvent.RATE_LIMIT_STATUS, onRateLimitHandler); Any help would be greatly appreciated as i am out ideas and have exausted google and my flex friends. Thanks, Sean

