1 package com.yahoo.util 2 { 3 import flash.display.Stage; 4 import flash.external.ExternalInterface; 5 6 public class YUIBridge extends Object 7 { 8 private var _stage:Stage; 9 public var flashvars:Object; 10 private var _jsHandler:String; 11 private var _swfID:String; 12 13 public function YUIBridge(stage:Stage) 14 { 15 _stage = stage; 16 flashvars = _stage.loaderInfo.parameters; 17 if (flashvars["YUIBridgeCallback"] && flashvars["YUISwfId"] && ExternalInterface.available) { 18 _jsHandler = flashvars["YUIBridgeCallback"]; 19 var jsCheck:RegExp = /^[A-Za-z0-9.]*$/g; 20 if (!jsCheck.test(_jsHandler)) { 21 _jsHandler = ""; 22 } 23 24 _swfID = flashvars["YUISwfId"]; 25 var idCheck:RegExp = /^yuiswf[0-9]*$/g; 26 if (!idCheck.test(_swfID)) { 27 _swfID = ""; 28 } 29 } 30 } 31 32 public function addCallbacks (callbacks:Object) : void { 33 if (ExternalInterface.available) { 34 for (var callback:String in callbacks) { 35 ExternalInterface.addCallback(callback, callbacks[callback]); 36 trace("Added callback for " + callbacks[callback] + " named " + callback); 37 } 38 sendEvent({type:"swfReady"}); 39 } 40 } 41 42 public function sendEvent (evt:Object) : void { 43 if(ExternalInterface.available) { 44 trace("Sending event " + evt.type); 45 ExternalInterface.call("YAHOO.widget.SWF.eventHandler", _swfID, evt); 46 } 47 48 } 49 } 50 }