package 
{
	import com.aditall.external.PluginFactory;
	import com.aditall.interfaces.IPlugin;
	import flash.display.DisplayObject;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
	
	/**
	* ...
	* @author wvxvw
	*/
	public class PlugInTest extends Sprite
	{
		public var testPlugin:IPlugin;
		public var pluginFactory:PluginFactory;
		public var testXML:XML = 
		
			sometext
		;
		
		public function PlugInTest() 
		{
			var re:RegExp = /foo\d+?$/g;
			pluginFactory = new PluginFactory();
			pluginFactory.addEventListener(Event.COMPLETE, handleFactoryComplete);
			pluginFactory.loadPlugin(pluginFactory.getAvailablePlugins()[0]);
		}
		
		/**
		* Handles download complete event.
		* @param evt - the complete event.
		*/
		private function handleFactoryComplete(evt:Event):void
		{
			testPlugin = evt.target.data as IPlugin;
			addChild(testPlugin as DisplayObject);
			testPlugin.addEventListener(MouseEvent.CLICK, handlePluginClick);
		}
		
		private function handlePluginClick(evt:MouseEvent):void
		{
			//trace(testPlugin.customFunction("foo"));
			trace(testPlugin.customFunction("abcd"));
		}
	}
	
}