# Events bubbling out of custom classes?

**URL:** <https://forum.kirupa.com/t/events-bubbling-out-of-custom-classes/232682>\
**Category:** flash\
**Created:** [July 16, 2007, 10:07pm UTC](https://forum.kirupa.com/t/events-bubbling-out-of-custom-classes/232682 "2007-07-16T22:07:43Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![jnbeck](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/jnbeck/32/1502_2.png) [@jnbeck](https://forum.kirupa.com/u/jnbeck)\
**Post date:** [July 16, 2007, 10:07pm UTC](https://forum.kirupa.com/t/events-bubbling-out-of-custom-classes/232682/1 "2007-07-16T22:07:43Z")

</div>

Okay, I’m trying to create a job queue type of system that uses event bubbling so that events can be dispatched from multiple locations and bubble up to a front controller.

For some reason my EventHandler is never being called:  
OUTPUT:  
DataPack Constructed  
Custom Event Constructed  
EventTransporter Constructed  
Dispatching event type: \_dataevent

Does anyone see anything terribly wrong here?

_TestEvents.as_

```auto

package {
	import flash.display.Sprite;
	
	public class TestEvents extends Sprite
	{
		public function TestEvents()
		{
			addEventListener(CustomEvent.DATA_EVENT, onCustomEvent);
			
			var myCaller:EventCaller = new EventCaller();
			
			var myData:DataPack = new DataPack([1,2,3,4,5]);
			var event:CustomEvent = new CustomEvent(CustomEvent.DATA_EVENT, myData);
			var holder:EventTransporter = new EventTransporter(event);
			myCaller.callEvent(holder);
			
			
		}
		
		private function onCustomEvent(event:CustomEvent):void
		{
			trace("onCustomEvent data: "+event.data);
		}
	}
}

```

_DataPack.as_

```auto

package
{
	public class DataPack
	{
		private var _stuff:Array;
		
		public function DataPack(ary:Array)
		{
			trace("DataPack Constructed");
			_stuff = ary;
		}
		
		public function get stuff():Array { return _stuff }
	}
}

```

_EventCaller.as_

```auto

package
{
	import flash.events.EventDispatcher;
	
	[Event(name="_dataevent", type="CustomEvent")]
	public class EventCaller extends EventDispatcher
	{
		public function EventCaller() {}
		
		public function callEvent(holder:EventTransporter):void
		{
			trace("Dispatching event type: "+holder.event.type);
			dispatchEvent(holder.event);
		}
	}
}

```

_EventTransporter.as_

```auto

package
{
	public class EventTransporter
	{
		private var _event:CustomEvent;
		
		public function EventTransporter(event:CustomEvent)
		{
			trace("EventTransporter Constructed");
			_event = event;
		}
		
		public function get event():CustomEvent { return _event }
	}
}

```

_CustomEvent.as_

```auto

package
{
	import flash.events.Event;
	
	public class CustomEvent extends Event
	{
		public static const DATA_EVENT:String = "_dataevent";
		
		private var _data:DataPack;
		
		public function CustomEvent(type:String, data:DataPack)
		{
			trace("Custom Event Constructed");
			super(type, true);
			_data = data;
		}
		
		public function get data():DataPack { return _data }
	}
}

```
