From 1c5685d68f1b73270fb814fe04cbb490eb90ba5f Mon Sep 17 00:00:00 2001 From: mensonge Date: Fri, 14 Nov 2008 15:39:19 +0000 Subject: Minor fix: Remove DOJO library (60Mo) replaced by link to Google CDN (online DOJO library) git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@159 b3834d28-1941-0410-a4f8-b48e95affb8f --- includes/js/dojox/flash/DojoExternalInterface.as | 168 ----- includes/js/dojox/flash/ExpressInstall.as | 71 --- includes/js/dojox/flash/README | 31 - includes/js/dojox/flash/_base.js | 762 ----------------------- includes/js/dojox/flash/tests/TestFlash.as | 36 -- includes/js/dojox/flash/tests/TestFlash.swf | Bin 1863 -> 0 bytes includes/js/dojox/flash/tests/buildFlashTest.sh | 4 - includes/js/dojox/flash/tests/test_flash.html | 15 - includes/js/dojox/flash/tests/test_flash.js | 155 ----- 9 files changed, 1242 deletions(-) delete mode 100644 includes/js/dojox/flash/DojoExternalInterface.as delete mode 100644 includes/js/dojox/flash/ExpressInstall.as delete mode 100644 includes/js/dojox/flash/README delete mode 100644 includes/js/dojox/flash/_base.js delete mode 100644 includes/js/dojox/flash/tests/TestFlash.as delete mode 100644 includes/js/dojox/flash/tests/TestFlash.swf delete mode 100644 includes/js/dojox/flash/tests/buildFlashTest.sh delete mode 100644 includes/js/dojox/flash/tests/test_flash.html delete mode 100644 includes/js/dojox/flash/tests/test_flash.js (limited to 'includes/js/dojox/flash') diff --git a/includes/js/dojox/flash/DojoExternalInterface.as b/includes/js/dojox/flash/DojoExternalInterface.as deleted file mode 100644 index d857968..0000000 --- a/includes/js/dojox/flash/DojoExternalInterface.as +++ /dev/null @@ -1,168 +0,0 @@ -/** - A wrapper around Flash 8's ExternalInterface; this is needed - because ExternalInterface has a number of serialization bugs that we - need to correct for. - - @author Brad Neuberg -*/ - -import flash.external.ExternalInterface; - -class DojoExternalInterface{ - public static var available:Boolean; - public static var dojoPath = ""; - - public static function initialize(){ - //trace("DojoExternalInterface.initialize"); - - // extract the dojo base path - DojoExternalInterface.dojoPath = DojoExternalInterface.getDojoPath(); - - // see if we need to do an express install - var install:ExpressInstall = new ExpressInstall(); - if(install.needsUpdate){ - install.init(); - } - - // set whether communication is available - DojoExternalInterface.available = ExternalInterface.available; - } - - /** Called when we are finished adding methods through addCallback. */ - public static function done(){ - //trace("done"); - DojoExternalInterface.call("dojox.flash.loaded"); - } - - public static function addCallback(methodName:String, instance:Object, - method:Function):Boolean{ - //trace("addCallback"); - ExternalInterface.addCallback(methodName, instance, function(){ - instance = (instance) ? instance : null; - var params = []; - if(arguments && arguments.length){ - for(var i = 0; i < arguments.length; i++){ - params[i] = DojoExternalInterface.decodeData(arguments[i]); - } - } - - var results = method.apply(instance, params); - results = DojoExternalInterface.encodeData(results); - - return results; - }); - - // tell JavaScript about DojoExternalInterface new method so we can create a proxy - ExternalInterface.call("dojox.flash.comm._addExternalInterfaceCallback", - methodName); - - return true; - } - - public static function call(methodName:String):Void{ - // we might have any number of optional arguments, so we have to - // pass them in dynamically; strip out the results callback - var parameters = new Array(); - for(var i = 0; i < arguments.length; i++){ - parameters.push(arguments[i]); - } - - // FIXME: Should we be encoding or decoding the data to get - // around Flash's serialization bugs? - - var results = ExternalInterface.call.apply(ExternalInterface, parameters); - - return results; - } - - /** - Called by Flash to indicate to JavaScript that we are ready to have - our Flash functions called. Calling loaded() - will fire the dojox.flash.loaded() event, so that JavaScript can know that - Flash has finished loading and adding its callbacks, and can begin to - interact with the Flash file. - */ - public static function loaded(){ - DojoExternalInterface.call("dojox.flash.loaded"); - } - - /** - Utility trace implementation that prints out to console.debug. - */ - public static function trace(msg){ - DojoExternalInterface.call("console.debug", "FLASH: " + msg); - } - - private static function decodeData(data):String{ - if(!data || typeof data != "string"){ - return data; - } - - // we have to use custom encodings for certain characters when passing - // them over; for example, passing a backslash over as //// from JavaScript - // to Flash doesn't work - data = replaceStr(data, "&custom_backslash;", "\\"); - - data = replaceStr(data, "\\\'", "\'"); - data = replaceStr(data, "\\\"", "\""); - - return data; - } - - private static function encodeData(data):String{ - if(!data || typeof data != "string"){ - return data; - } - - // certain XMLish characters break Flash's wire serialization for - // ExternalInterface; encode these into a custom encoding, rather than - // the standard entity encoding, because otherwise we won't be able to - // differentiate between our own encoding and any entity characters - // that are being used in the string itself - data = replaceStr(data, '<', '&custom_lt;'); - data = replaceStr(data, '>', '&custom_gt;'); - - // needed for IE - data = replaceStr(data, '\\', '&custom_backslash;'); - - // encode control characters and JavaScript delimiters - data = replaceStr(data, "\n", "\\n"); - data = replaceStr(data, "\r", "\\r"); - data = replaceStr(data, "\f", "\\f"); - data = replaceStr(data, "'", "\\'"); - data = replaceStr(data, '"', '\"'); - - return data; - } - - /** - Flash ActionScript has no String.replace method or support for - Regular Expressions! We roll our own very simple one. - */ - public static function replaceStr(inputStr:String, replaceThis:String, - withThis:String):String{ - var splitStr = inputStr.split(replaceThis); - if(!splitStr){ - return inputStr; - } - - inputStr = splitStr.join(withThis); - return inputStr; - } - - private static function getDojoPath(){ - var url = _root._url; - var start = url.indexOf("baseUrl=") + "baseUrl=".length; - var path = url.substring(start); - var end = path.indexOf("&"); - if(end != -1){ - path = path.substring(0, end); - } - - // some browsers append a junk string at the end: '%20'%20quality= - if(path.indexOf("'%20'%20quality=") != -1){ - path = path.substring(0, path.indexOf("'%20'%20quality=")); - } - return path; - } -} diff --git a/includes/js/dojox/flash/ExpressInstall.as b/includes/js/dojox/flash/ExpressInstall.as deleted file mode 100644 index 1801171..0000000 --- a/includes/js/dojox/flash/ExpressInstall.as +++ /dev/null @@ -1,71 +0,0 @@ -/** - * Based on the expressinstall.as class created by Geoff Stearns as part - * of the FlashObject library. - * - * Use this file to invoke the Macromedia Flash Player Express Install functionality - * This file is intended for use with the FlashObject embed script. You can download FlashObject - * and this file at the following URL: http://blog.deconcept.com/flashobject/ - * - * Usage: - * var ExpressInstall = new ExpressInstall(); - * - * // test to see if install is needed: - * if (ExpressInstall.needsUpdate) { // returns true if update is needed - * ExpressInstall.init(); // starts the update - * } - * - * NOTE: Your Flash movie must be at least 214px by 137px in order to use ExpressInstall. - * - */ - -class ExpressInstall{ - public var needsUpdate:Boolean; - private var updater:MovieClip; - private var hold:MovieClip; - - public function ExpressInstall(){ - // does the user need to update? - this.needsUpdate = (_root.MMplayerType == undefined) ? false : true; - } - - public function init():Void{ - this.loadUpdater(); - } - - public function loadUpdater():Void{ - System.security.allowDomain("fpdownload.macromedia.com"); - - // hope that nothing is at a depth of 10000000, you can change this depth if needed, but you want - // it to be on top of your content if you have any stuff on the first frame - this.updater = _root.createEmptyMovieClip("expressInstallHolder", 10000000); - - // register the callback so we know if they cancel or there is an error - var _self = this; - this.updater.installStatus = _self.onInstallStatus; - this.hold = this.updater.createEmptyMovieClip("hold", 1); - - // can't use movieClipLoader because it has to work in 6.0.65 - this.updater.onEnterFrame = function():Void { - if(typeof this.hold.startUpdate == 'function'){ - _self.initUpdater(); - this.onEnterFrame = null; - } - } - - var cacheBuster:Number = Math.random(); - - this.hold.loadMovie("http://fpdownload.macromedia.com/pub/flashplayer/" - +"update/current/swf/autoUpdater.swf?"+ cacheBuster); - } - - private function initUpdater():Void{ - this.hold.redirectURL = _root.MMredirectURL; - this.hold.MMplayerType = _root.MMplayerType; - this.hold.MMdoctitle = _root.MMdoctitle; - this.hold.startUpdate(); - } - - public function onInstallStatus(msg):Void{ - getURL("javascript:dojox.flash.install._onInstallStatus('"+msg+"')"); - } -} diff --git a/includes/js/dojox/flash/README b/includes/js/dojox/flash/README deleted file mode 100644 index e01f3be..0000000 --- a/includes/js/dojox/flash/README +++ /dev/null @@ -1,31 +0,0 @@ -------------------------------------------------------------------------------- -dojox.flash -------------------------------------------------------------------------------- -Version 0.4 -Release date: MM/DD/YYYY -------------------------------------------------------------------------------- -Project state: experimental (currently broken) -------------------------------------------------------------------------------- -Project authors - Brad Neuberg (BradNeuberg@dojotoolkit.org) - Alex Russell (alex@dojotoolkit.org, only handled minor porting issues) -------------------------------------------------------------------------------- -Project description - -Infrastructure for high-performance Flash/JS communication -------------------------------------------------------------------------------- -Dependencies: - -MTASC for creating builds -------------------------------------------------------------------------------- -Documentation - -TODOC -------------------------------------------------------------------------------- -Installation instructions - -Not intended as a stand-alone module. -------------------------------------------------------------------------------- -Additional Notes - -TODOC diff --git a/includes/js/dojox/flash/_base.js b/includes/js/dojox/flash/_base.js deleted file mode 100644 index 5a372dd..0000000 --- a/includes/js/dojox/flash/_base.js +++ /dev/null @@ -1,762 +0,0 @@ -if(!dojo._hasResource["dojox.flash._base"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dojox.flash._base"] = true; -dojo.provide("dojox.flash._base"); - -// for dijit.getViewport(), needed by dojox.flash.Embed.center() -dojo.require("dijit._base.place"); - -dojox.flash = function(){ - // summary: - // The goal of dojox.flash is to make it easy to extend Flash's capabilities - // into an Ajax/DHTML environment. - // - // dojox.flash provides an easy object for interacting with the Flash plugin. - // This object provides methods to determine the current version of the Flash - // plugin (dojox.flash.info); write out the necessary markup to - // dynamically insert a Flash object into the page (dojox.flash.Embed; and - // do dynamic installation and upgrading of the current Flash plugin in - // use (dojox.flash.Install). If you want to call methods on the Flash object - // embedded into the page it is your responsibility to use Flash's ExternalInterface - // API and get a reference to the Flash object yourself. - // - // To use dojox.flash, you must first wait until Flash is finished loading - // and initializing before you attempt communication or interaction. - // To know when Flash is finished use dojo.connect: - // - // dojo.connect(dojox.flash, "loaded", myInstance, "myCallback"); - // - // Then, while the page is still loading provide the file name: - // - // dojox.flash.setSwf(dojo.moduleUrl("dojox", "_storage/storage.swf")); - // - // If no SWF files are specified, then Flash is not initialized. - // - // Your Flash must use Flash's ExternalInterface to expose Flash methods and - // to call JavaScript. - // - // setSwf can take an optional 'visible' attribute to control whether - // the Flash object is visible or not on the page; the default is visible: - // - // dojox.flash.setSwf(dojo.moduleUrl("dojox", "_storage/storage.swf"), - // false); - // - // Once finished, you can query Flash version information: - // - // dojox.flash.info.version - // - // Or can communicate with Flash methods that were exposed: - // - // var f = dojox.flash.get(); - // var results = f.sayHello("Some Message"); - // - // Your Flash files should use DojoExternalInterface.as to register methods; - // this file wraps Flash's normal ExternalInterface but correct various - // serialization bugs that ExternalInterface has. - // - // Note that dojox.flash is not meant to be a generic Flash embedding - // mechanism; it is as generic as necessary to make Dojo Storage's - // Flash Storage Provider as clean and modular as possible. If you want - // a generic Flash embed mechanism see SWFObject - // (http://blog.deconcept.com/swfobject/). - // - // Notes: - // Note that dojox.flash can currently only work with one Flash object - // on the page; it does not yet support multiple Flash objects on - // the same page. - // - // Your code can detect whether the Flash player is installing or having - // its version revved in two ways. First, if dojox.flash detects that - // Flash installation needs to occur, it sets dojox.flash.info.installing - // to true. Second, you can detect if installation is necessary with the - // following callback: - // - // dojo.connect(dojox.flash, "installing", myInstance, "myCallback"); - // - // You can use this callback to delay further actions that might need Flash; - // when installation is finished the full page will be refreshed and the - // user will be placed back on your page with Flash installed. - // - // ------------------- - // Todo/Known Issues - // ------------------- - // * On Internet Explorer, after doing a basic install, the page is - // not refreshed or does not detect that Flash is now available. The way - // to fix this is to create a custom small Flash file that is pointed to - // during installation; when it is finished loading, it does a callback - // that says that Flash installation is complete on IE, and we can proceed - // to initialize the dojox.flash subsystem. - // * Things aren't super tested for sending complex objects to Flash - // methods, since Dojo Storage only needs strings - // - // Author- Brad Neuberg, http://codinginparadise.org -} - -dojox.flash = { - ready: false, - url: null, - - _visible: true, - _loadedListeners: new Array(), - _installingListeners: new Array(), - - setSwf: function(/* String */ url, /* boolean? */ visible){ - // summary: Sets the SWF files and versions we are using. - // url: String - // The URL to this Flash file. - // visible: boolean? - // Whether the Flash file is visible or not. If it is not visible we hide it off the - // screen. This defaults to true (i.e. the Flash file is visible). - this.url = url; - - if(typeof visible != "undefined"){ - this._visible = visible; - } - - // initialize ourselves - this._initialize(); - }, - - addLoadedListener: function(/* Function */ listener){ - // summary: - // Adds a listener to know when Flash is finished loading. - // Useful if you don't want a dependency on dojo.event. - // listener: Function - // A function that will be called when Flash is done loading. - - this._loadedListeners.push(listener); - }, - - addInstallingListener: function(/* Function */ listener){ - // summary: - // Adds a listener to know if Flash is being installed. - // Useful if you don't want a dependency on dojo.event. - // listener: Function - // A function that will be called if Flash is being - // installed - - this._installingListeners.push(listener); - }, - - loaded: function(){ - // summary: Called back when the Flash subsystem is finished loading. - // description: - // A callback when the Flash subsystem is finished loading and can be - // worked with. To be notified when Flash is finished loading, add a - // loaded listener: - // - // dojox.flash.addLoadedListener(loadedListener); - - dojox.flash.ready = true; - if(dojox.flash._loadedListeners.length > 0){ - for(var i = 0;i < dojox.flash._loadedListeners.length; i++){ - dojox.flash._loadedListeners[i].call(null); - } - } - }, - - installing: function(){ - // summary: Called if Flash is being installed. - // description: - // A callback to know if Flash is currently being installed or - // having its version revved. To be notified if Flash is installing, connect - // your callback to this method using the following: - // - // dojo.event.connect(dojox.flash, "installing", myInstance, "myCallback"); - - if(dojox.flash._installingListeners.length > 0){ - for(var i = 0; i < dojox.flash._installingListeners.length; i++){ - dojox.flash._installingListeners[i].call(null); - } - } - }, - - // Initializes dojox.flash. - _initialize: function(){ - //console.debug("dojox.flash._initialize"); - // see if we need to rev or install Flash on this platform - var installer = new dojox.flash.Install(); - dojox.flash.installer = installer; - - if(installer.needed() == true){ - installer.install(); - }else{ - // write the flash object into the page - dojox.flash.obj = new dojox.flash.Embed(this._visible); - dojox.flash.obj.write(); - - // setup the communicator - dojox.flash.comm = new dojox.flash.Communicator(); - } - } -}; - - -dojox.flash.Info = function(){ - // summary: A class that helps us determine whether Flash is available. - // description: - // A class that helps us determine whether Flash is available, - // it's major and minor versions, and what Flash version features should - // be used for Flash/JavaScript communication. Parts of this code - // are adapted from the automatic Flash plugin detection code autogenerated - // by the Macromedia Flash 8 authoring environment. - // - // An instance of this class can be accessed on dojox.flash.info after - // the page is finished loading. - // - // This constructor must be called before the page is finished loading. - - // Visual basic helper required to detect Flash Player ActiveX control - // version information on Internet Explorer - if(dojo.isIE){ - document.write([ - ' - - - - - -

Test Dojox Flash

- -

For detailed test output see Firebug console (if Firefox). - This test should be run on Firefox, Internet Explorer, and Safari - to confirm that Dojox Flash is working correctly.

- - \ No newline at end of file diff --git a/includes/js/dojox/flash/tests/test_flash.js b/includes/js/dojox/flash/tests/test_flash.js deleted file mode 100644 index 1b26eb2..0000000 --- a/includes/js/dojox/flash/tests/test_flash.js +++ /dev/null @@ -1,155 +0,0 @@ -// TODO: FIXME: Refactor this to use D.O.H. instead of its own assertions - -dojo.require("dojox.flash"); - -var flashLoaded = false; -var pageLoaded = false; -var testXML = testBook = null; - -function flashReady(){ - console.debug("flashReady"); - flashLoaded = true; - - if(isReady()){ - run(); - } -} - -function pageReady(){ - console.debug("pageReady"); - pageLoaded = true; - - loadResources(); - - if(isReady()){ - run(); - } -} - -function isReady(){ - return testXML && testBook && pageLoaded && flashLoaded; -} - -function loadResources(){ - console.debug("Trying to load resources"); - - var d = dojo.xhrGet({ - url: "../../storage/tests/resources/testXML.xml", - handleAs: "text" - }); - - d.addCallback(function(results){ - console.debug("testXML loaded"); - testXML = results; - if(isReady()){ - run(); - } - }); - - d.addErrback(function(error){ - console.debug("Unable to load testXML.xml: " + error); - }); - - d = dojo.xhrGet({ - url: "../../storage/tests/resources/testBook.txt", - handleAs: "text" - }); - - d.addCallback(function(results){ - console.debug("testBook loaded"); - testBook = results; - if(isReady()){ - run(); - } - }); - - d.addErrback(function(error){ - console.debug("Unable to load testXML.xml: " + error); - }); -} - -function run(){ - console.debug("run"); - try{ - var correct, actual; - - console.debug("Setting simple message..."); - correct = "hello world"; - dojox.flash.comm.setMessage(correct); - actual = dojox.flash.comm.getMessage(); - assert(correct, actual, "Setting/getting simple message did not work"); - - console.debug("Setting message with evil characters..."); - // our correct and actual values get tricky when we have double back - // slashes; do a trick so that they can be compared easier - var doubleSlash = "\\"; - doubleSlash = doubleSlash.charAt(0); - correct = "hello world\n\n\nasdfasdf!@#$@#%^[]{}&" + doubleSlash - + "
$%^&%^&*^&()<><><>,./;\0\r\f\'][`~=\"+-]MORE!\n\rLESS"; - dojox.flash.comm.setMessage(correct); - actual = dojox.flash.comm.getMessage(); - assert(correct, actual, "Setting/getting message with evil characters did not work"); - - console.debug("Setting testXML..."); - correct = testXML; - dojox.flash.comm.setMessage(correct); - actual = dojox.flash.comm.getMessage(); - assert(correct, actual, "Setting/getting testXML did not work"); - - console.debug("Setting testBook(~300K)..."); - correct = testBook; - dojox.flash.comm.setMessage(correct); - actual = dojox.flash.comm.getMessage(); - assert(correct, actual, "Setting/getting testBook did not work"); - - console.debug("Setting testBook 3 times (~900K)..."); - correct = testBook + testBook + testBook; - dojox.flash.comm.setMessage(correct); - actual = dojox.flash.comm.getMessage(); - assert(correct, actual, "Setting/getting testBook X 3 did not work"); - - console.debug("Setting JSON..."); - var obj = {type: "car", color: "red", model: "Ford", year: "2008", - features: ["A/C", "automatic", "4-wheel drive"]}; - correct = dojo.toJson(obj, true); - dojox.flash.comm.setMessage(correct); - actual = dojox.flash.comm.getMessage(); - assert(correct, actual, "Setting/getting JSON did not work"); - - console.debug("Calling method that takes multiple values..."); - actual = dojox.flash.comm.multipleValues("key", "value", "namespace"); - assert("namespacekeyvalue", actual, "Setting/getting multiple values did not work"); - - var allPassed = document.createElement("p"); - allPassed.style.backgroundColor = "green"; - allPassed.style.color = "white"; - allPassed.style.fontSize = "24pt"; - allPassed.appendChild(document.createTextNode("All tests passed")); - var body = document.getElementsByTagName("body")[0]; - body.appendChild(allPassed); - }catch(e){ - console.debug(e.message || e); - } -} - -function assert(correct, actual, msg){ - //alert("correct="+correct+",\n\nactual="+actual); - if(correct != actual){ - var failed = document.createElement("p"); - failed.style.backgroundColor = "red"; - failed.style.color = "white"; - failed.style.fontSize = "24pt"; - failed.appendChild(document.createTextNode("Test failed: " + msg)); - var body = document.getElementsByTagName("body")[0]; - body.appendChild(failed); - - throw new Error("ASSERTION FAILED: " + msg); - }else{ - console.debug("Assertion passed"); - } -} - -console.debug("adding listeners..."); -dojox.flash.addLoadedListener(flashReady); -dojox.flash.setSwf("TestFlash.swf", true); -dojo.connect(dojo, "loaded", pageReady); -- cgit v1.2.3