]> git.pond.sub.org Git - eow/blobdiff - static/dojo-release-1.1.1/dojox/flash/DojoExternalInterface.as
Replace Dojo with jQuery
[eow] / static / dojo-release-1.1.1 / dojox / flash / DojoExternalInterface.as
diff --git a/static/dojo-release-1.1.1/dojox/flash/DojoExternalInterface.as b/static/dojo-release-1.1.1/dojox/flash/DojoExternalInterface.as
deleted file mode 100644 (file)
index d857968..0000000
+++ /dev/null
@@ -1,168 +0,0 @@
-/**\r
-       A wrapper around Flash 8's ExternalInterface; this is needed\r
-       because ExternalInterface has a number of serialization bugs that we \r
-       need to correct for.\r
-       \r
-       @author Brad Neuberg\r
-*/\r
-\r
-import flash.external.ExternalInterface;\r
-\r
-class DojoExternalInterface{\r
-       public static var available:Boolean;\r
-       public static var dojoPath = "";\r
-               \r
-       public static function initialize(){\r
-               //trace("DojoExternalInterface.initialize");\r
-               \r
-               // extract the dojo base path\r
-               DojoExternalInterface.dojoPath = DojoExternalInterface.getDojoPath();\r
-               \r
-               // see if we need to do an express install\r
-               var install:ExpressInstall = new ExpressInstall();\r
-               if(install.needsUpdate){\r
-                       install.init();\r
-               }\r
-               \r
-               // set whether communication is available\r
-               DojoExternalInterface.available = ExternalInterface.available;\r
-       }\r
-       \r
-       /** Called when we are finished adding methods through addCallback. */\r
-       public static function done(){\r
-               //trace("done");\r
-               DojoExternalInterface.call("dojox.flash.loaded");\r
-       }\r
-       \r
-       public static function addCallback(methodName:String, instance:Object, \r
-                                                                          method:Function):Boolean{\r
-               //trace("addCallback");\r
-               ExternalInterface.addCallback(methodName, instance, function(){\r
-                       instance = (instance) ? instance : null;\r
-                       var params = [];\r
-                       if(arguments && arguments.length){\r
-                               for(var i = 0; i < arguments.length; i++){\r
-                                       params[i] = DojoExternalInterface.decodeData(arguments[i]);\r
-                               }\r
-                       }\r
-                       \r
-                       var results = method.apply(instance, params);\r
-                       results = DojoExternalInterface.encodeData(results);\r
-                       \r
-                       return results;\r
-               });\r
-               \r
-               // tell JavaScript about DojoExternalInterface new method so we can create a proxy\r
-               ExternalInterface.call("dojox.flash.comm._addExternalInterfaceCallback", \r
-                                                                                                        methodName);\r
-                                                                                                        \r
-               return true;\r
-       }\r
-       \r
-       public static function call(methodName:String):Void{\r
-               // we might have any number of optional arguments, so we have to \r
-               // pass them in dynamically; strip out the results callback\r
-               var parameters = new Array();\r
-               for(var i = 0; i < arguments.length; i++){\r
-                       parameters.push(arguments[i]);\r
-               }\r
-               \r
-               // FIXME: Should we be encoding or decoding the data to get\r
-               // around Flash's serialization bugs?\r
-               \r
-               var results = ExternalInterface.call.apply(ExternalInterface, parameters);\r
-               \r
-               return results;\r
-       }\r
-       \r
-       /** \r
-               Called by Flash to indicate to JavaScript that we are ready to have\r
-               our Flash functions called. Calling loaded()\r
-               will fire the dojox.flash.loaded() event, so that JavaScript can know that\r
-               Flash has finished loading and adding its callbacks, and can begin to\r
-               interact with the Flash file.\r
-       */\r
-       public static function loaded(){\r
-               DojoExternalInterface.call("dojox.flash.loaded");\r
-       }\r
-       \r
-       /**\r
-               Utility trace implementation that prints out to console.debug.\r
-       */\r
-       public static function trace(msg){\r
-               DojoExternalInterface.call("console.debug", "FLASH: " + msg);\r
-       }\r
-       \r
-       private static function decodeData(data):String{\r
-               if(!data || typeof data != "string"){\r
-                       return data;\r
-               }\r
-               \r
-               // we have to use custom encodings for certain characters when passing\r
-               // them over; for example, passing a backslash over as //// from JavaScript\r
-               // to Flash doesn't work\r
-               data = replaceStr(data, "&custom_backslash;", "\\");\r
-               \r
-               data = replaceStr(data, "\\\'", "\'");\r
-               data = replaceStr(data, "\\\"", "\"");\r
-               \r
-               return data;\r
-       }\r
-       \r
-       private static function encodeData(data):String{        \r
-               if(!data || typeof data != "string"){\r
-                       return data;\r
-               }\r
-               \r
-               // certain XMLish characters break Flash's wire serialization for\r
-               // ExternalInterface; encode these into a custom encoding, rather than\r
-               // the standard entity encoding, because otherwise we won't be able to\r
-               // differentiate between our own encoding and any entity characters\r
-               // that are being used in the string itself\r
-               data = replaceStr(data, '<', '&custom_lt;');\r
-               data = replaceStr(data, '>', '&custom_gt;');\r
-               \r
-               // needed for IE\r
-               data = replaceStr(data, '\\', '&custom_backslash;');\r
-               \r
-               // encode control characters and JavaScript delimiters\r
-               data = replaceStr(data, "\n", "\\n");\r
-               data = replaceStr(data, "\r", "\\r");\r
-               data = replaceStr(data, "\f", "\\f");\r
-               data = replaceStr(data, "'", "\\'");\r
-               data = replaceStr(data, '"', '\"');\r
-               \r
-               return data;\r
-       }\r
-       \r
-       /** \r
-                       Flash ActionScript has no String.replace method or support for\r
-                       Regular Expressions! We roll our own very simple one.\r
-       */\r
-       public static function replaceStr(inputStr:String, replaceThis:String, \r
-                                                                               withThis:String):String{\r
-               var splitStr = inputStr.split(replaceThis);\r
-               if(!splitStr){\r
-                       return inputStr;\r
-               }\r
-               \r
-               inputStr = splitStr.join(withThis);\r
-               return inputStr;\r
-       }\r
-       \r
-       private static function getDojoPath(){\r
-               var url = _root._url;\r
-               var start = url.indexOf("baseUrl=") + "baseUrl=".length;\r
-               var path = url.substring(start);\r
-               var end = path.indexOf("&");\r
-               if(end != -1){\r
-                       path = path.substring(0, end);\r
-               }\r
-               \r
-               // some browsers append a junk string at the end: '%20'%20quality=\r
-               if(path.indexOf("'%20'%20quality=") != -1){\r
-                       path = path.substring(0, path.indexOf("'%20'%20quality="));\r
-               }\r
-               return path;\r
-       }\r
-}\r