ButtonTest_06.as

package {
	
	import flash.display.Sprite;
	import flash.display.StageScaleMode;
	import flash.display.StageAlign;
	
	import fl.controls.Button;
	
	[SWF(backgroundColor = "#A5D0DE", width = "550", height = "300", frameRate = "12")]
	
	public class ButtonTest_06 extends Sprite {
		
		private var button:Button;
		
		public function ButtonTest_06() {
			stage.showDefaultContextMenu = false;
			stage.align = StageAlign.TOP_LEFT;
			stage.scaleMode = StageScaleMode.NO_SCALE;
			
			button = new Button();
			button.setSize(300, 100);
			button.x = centerAlign(stage.stageWidth, button.width);
			button.y = centerAlign(stage.stageHeight, button.height);
			button.label = "Warner Bros";
			addChild(button);
			
			/*
			라이브러리 자원 활용
			*/
			var logo:Sprite = new WarnerBros();
			logo.scaleX = 0.4;
			logo.scaleY = 0.4;
			
			button.setStyle("icon", logo);
			button.validateNow();
		}
		
		private function centerAlign(param1:Number, param2:Number):int {
			return Math.round((param1 - param2) / 2);
		}
	}
}


ButtonTest_07.as

package {
	
	import flash.display.Sprite;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import flash.display.MovieClip;
	import flash.display.Loader;
	import flash.display.DisplayObject;
	
	import flash.events.Event;
	import flash.events.ProgressEvent;
	import flash.events.IOErrorEvent;
	
	import fl.controls.Button;
	import flash.net.URLRequest;
	import flash.system.ApplicationDomain;
	
	[SWF(backgroundColor = "#A5D0DE", width = "550", height = "300", frameRate = "12")]
	
	public class ButtonTest_07 extends Sprite {
		
		private var button:Button;
		private var loader:Loader;
		
		private static var className:String = "MTV";
		private static var domain:String = "http://YourDomain/logos.swf";
		
		public function ButtonTest_07() {
			stage.showDefaultContextMenu = false;
			stage.align = StageAlign.TOP_LEFT;
			stage.scaleMode = StageScaleMode.NO_SCALE;
			
			button = new Button();
			button.setSize(300, 100);
			button.x = centerAlign(stage.stageWidth, button.width);
			button.y = centerAlign(stage.stageHeight, button.height);
			button.label = "MTV International";
			addChild(button);
			
			loader = new Loader();
			loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompletedEvent, false, 0, true);
			loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgressEvent, false, 0, true);
			loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onIOErrorEvent, false, 0, true);
			loader.load(new URLRequest(domain));
		}
		
		private function onProgressEvent(event:ProgressEvent):void {
			txtLoadInfo.text = "loading... ";
		}
		
		private function onIOErrorEvent(event:IOErrorEvent):void {
			event.target.removeEventListener(Event.COMPLETE, onCompletedEvent); 
			event.target.removeEventListener(ProgressEvent.PROGRESS, onProgressEvent);
			event.target.removeEventListener(IOErrorEvent.IO_ERROR, onIOErrorEvent);
			txtLoadInfo.text = "URL NotFount";
		}
		
		private function onCompletedEvent(event:Event):void {
			event.target.removeEventListener(Event.COMPLETE, onCompletedEvent); 
			event.target.removeEventListener(ProgressEvent.PROGRESS, onProgressEvent);
			event.target.removeEventListener(IOErrorEvent.IO_ERROR, onIOErrorEvent);
			
			/*
			외부 라이브러리 자원 활용
			*/
			var ClassReference:Class = event.target.applicationDomain.getDefinition(className) as Class;
			var logo:DisplayObject = new ClassReference();
			
			button.setStyle("icon", logo);
			button.invalidate();
			txtLoadInfo.text = "load completed... ";
		}
		
		private function centerAlign(param1:Number, param2:Number):int {
			return Math.round((param1 - param2) / 2);
		}
	}
}


ButtonTest_07.as

package {
	
	import flash.display.Sprite;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import flash.display.MovieClip;
	
	import fl.controls.Button;
	
	[SWF(backgroundColor = "#A5D0DE", width = "550", height = "300", frameRate = "12")]
	
	public class ButtonTest_08 extends Sprite {
		
		[Embed(source = "amnesty.swf")]
		private var AssetClass:Class;
		private var asset:MovieClip;
		
		public function ButtonTest_08() {
			stage.showDefaultContextMenu = false;
			stage.align = StageAlign.TOP_LEFT;
			stage.scaleMode = StageScaleMode.NO_SCALE;
			
			var button:Button = new Button();
			button.setSize(300, 100);
			button.x = centerAlign(stage.stageWidth, button.width);
			button.y = centerAlign(stage.stageHeight, button.height);
			button.label = "Amnesty\nInternational";
			addChild(button);
			
			asset = new AssetClass();
			
			button.setStyle("icon", asset);
			button.invalidate();
		}
		
		private function centerAlign(param1:Number, param2:Number):int {
			return Math.round((param1 - param2) / 2);
		}
	}
}