package { import flash.display.Sprite; import flx.external.FlashInterface; import flx.events.FlashInterfaceEvent; import flash.text.TextField; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.text.TextFormat; import flash.display.Loader; import flash.net.URLRequest; import flash.events.MouseEvent; import flash.events.Event; import flash.display.DisplayObject; public class flex_component_sample extends Sprite { public var textArea:TextField; private var tf:TextFormat; public function flex_component_sample() { // Stage stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; // FlashInterface FlashInterface.publish(root, true); FlashInterface.addEventListener("talkToAll", talkToFlexHandler); // Setup loadSkinPanel(); loadSkinButtonClear(); loadSkinButtonDispatch(); loadSkinButtonMethod(); loadSkinButtonProperty(); createTextArea(); loadAS2SWF(); } private function createTextArea():void { // TextFormat tf = new TextFormat(); tf.font = "Verdana"; tf.leftMargin = 4; tf.size = 10; textArea = new TextField(); with(textArea) { x = 30; y = 50; width = 400; height = 80; border = true; background = true; wordWrap = true; defaultTextFormat = tf; } addChild(textArea); } private function loadSkinPanel():void { var loader:Loader = new Loader(); loader.x = 10; loader.y = 10; var urlRequest:URLRequest = new URLRequest("local/flex/assets/flash/skin_panel.swf"); loader.load(urlRequest); addChild(loader); } private function loadSkinButtonClear():void { var loader:Loader = new Loader(); loader.x = 350; loader.y = 140; var urlRequest:URLRequest = new URLRequest("local/flex/assets/flash/skin_button_clear.swf"); loader.load(urlRequest); addChild(loader); var sprite:Sprite = new Sprite(); sprite.buttonMode = true; sprite.addEventListener("click", clearText); sprite.addChild(loader); addChild(sprite); sprite.useHandCursor = true; } private function loadSkinButtonDispatch():void { var loader:Loader = new Loader(); loader.x = 85; loader.y = 215; var urlRequest:URLRequest = new URLRequest("local/flex/assets/flash/skin_button_dispatch.swf"); loader.load(urlRequest); addChild(loader); var sprite:Sprite = new Sprite(); sprite.buttonMode = true; sprite.addEventListener("click", dispatch); sprite.addChild(loader); addChild(sprite); sprite.useHandCursor = true; } private function loadSkinButtonMethod():void { var loader:Loader = new Loader(); loader.x = 180; loader.y = 215; var urlRequest:URLRequest = new URLRequest("local/flex/assets/flash/skin_button_method.swf"); loader.load(urlRequest); addChild(loader); var sprite:Sprite = new Sprite(); sprite.buttonMode = true; sprite.addEventListener("click", execMethod); sprite.addChild(loader); addChild(sprite); sprite.useHandCursor = true; } private function loadSkinButtonProperty():void { var loader:Loader = new Loader(); loader.x = 275; loader.y = 215; var urlRequest:URLRequest = new URLRequest("local/flex/assets/flash/skin_button_property.swf"); loader.load(urlRequest); addChild(loader); var sprite:Sprite = new Sprite(); sprite.buttonMode = true; sprite.addEventListener("click", execProp); sprite.addChild(loader); addChild(sprite); sprite.useHandCursor = true; } private function loadAS2SWF():void { var loader:Loader = new Loader(); loader.x = 30; loader.y = 245; var urlRequest:URLRequest = new URLRequest("local/flex/assets/flash/flash8.swf?flashId=demo"); loader.load(urlRequest); addChild(loader); } private function talkToFlexHandler(evt:FlashInterfaceEvent):void { textArea.text = evt.data; } public function sendMessage(message:String):void { textArea.text = message; } private function clearText(evt:Event):void { textArea.text = ""; } private function dispatch(evt:Event):void { FlashInterface.dispatchEvent({type:'talkToAll', data:"Dispatched from Flash9.\n\nFlashInterface.dispatchEvent({type:\'talkToAll\', data:\"Dispatched from Flash9.\"});"}); } private function execMethod(evt:Event):void { FlashInterface.call("demo.sendMessage", "Method executed from Flash9.\n\nFlashInterface.call(\"flash_1.sendMessage\", \"Method executed from Flash9.\");"); } private function execProp(evt:Event):void { FlashInterface.call("demo.txtOutput.text", "Property executed from Flash9.\n\nFlashInterface.call(\"flash_1.txtOutput.text\", \"Property executed from Flash9.\");"); } } }