📄 uploader-experimental-debug.js
字号:
//the Flash Player external interface code from Adobe doesn't play nicely //with the default value, yui-gen, in IE this._id = attributes.id = attributes.id || YAHOO.util.Dom.generateId(null, "yuigen"); attributes.version = attributes.version || "9.0.45"; attributes.backgroundColor = attributes.backgroundColor || "#ffffff"; //we can't use the initial attributes right away //so save them for once the SWF finishes loading this._attributes = attributes; this._swfURL = swfURL; this._containerID = containerID; //embed the SWF file in the page this._embedSWF(this._swfURL, this._containerID, attributes.id, attributes.version, attributes.backgroundColor, attributes.expressInstall, attributes.wmode, buttonSkin); /** * Fires when the SWF is initialized and communication is possible. * @event contentReady */ //Fix for iframe cross-domain issue with FF2x try { this.createEvent("contentReady"); } catch(e){}};YAHOO.extend(YAHOO.widget.FlashAdapter, YAHOO.util.AttributeProvider,{ /** * The URL of the SWF file. * @property _swfURL * @type String * @private */ _swfURL: null, /** * The ID of the containing DIV. * @property _containerID * @type String * @private */ _containerID: null, /** * A reference to the embedded SWF file. * @property _swf * @private */ _swf: null, /** * The id of this instance. * @property _id * @type String * @private */ _id: null, /** * Indicates whether the SWF has been initialized and is ready * to communicate with JavaScript * @property _initialized * @type Boolean * @private */ _initialized: false, /** * The initializing attributes are stored here until the SWF is ready. * @property _attributes * @type Object * @private */ _attributes: null, //the intializing attributes /** * Public accessor to the unique name of the FlashAdapter instance. * * @method toString * @return {String} Unique name of the FlashAdapter instance. */ toString: function() { return "FlashAdapter " + this._id; }, /** * Nulls out the entire FlashAdapter instance and related objects and removes attached * event listeners and clears out DOM elements inside the container. After calling * this method, the instance reference should be expliclitly nulled by implementer, * as in myChart = null. Use with caution! * * @method destroy */ destroy: function() { //kill the Flash Player instance if(this._swf) { var container = YAHOO.util.Dom.get(this._containerID); container.removeChild(this._swf); } var instanceName = this._id; //null out properties for(var prop in this) { if(YAHOO.lang.hasOwnProperty(this, prop)) { this[prop] = null; } } YAHOO.log("FlashAdapter instance destroyed: " + instanceName); }, /** * Embeds the SWF in the page and associates it with this instance. * * @method _embedSWF * @private */ _embedSWF: function(swfURL, containerID, swfID, version, backgroundColor, expressInstall, wmode, buttonSkin) { //standard SWFObject embed var swfObj = new deconcept.SWFObject(swfURL, swfID, "100%", "100%", version, backgroundColor); if(expressInstall) { swfObj.useExpressInstall(expressInstall); } //make sure we can communicate with ExternalInterface swfObj.addParam("allowScriptAccess", "always"); if(wmode) { swfObj.addParam("wmode", wmode); } swfObj.addParam("menu", "false"); //again, a useful ExternalInterface trick swfObj.addVariable("allowedDomain", document.location.hostname); //tell the SWF which HTML element it is in swfObj.addVariable("elementID", swfID); // set the name of the function to call when the swf has an event swfObj.addVariable("eventHandler", "YAHOO.widget.FlashAdapter.eventHandler"); if (buttonSkin) { swfObj.addVariable("buttonSkin", buttonSkin); } var container = YAHOO.util.Dom.get(containerID); var result = swfObj.write(container); if(result) { this._swf = YAHOO.util.Dom.get(swfID); //if successful, let's add an owner property to the SWF reference //this will allow the event handler to communicate with a YAHOO.widget.FlashAdapter this._swf.owner = this; } else { YAHOO.log("Unable to load SWF " + swfURL); } }, /** * Handles or re-dispatches events received from the SWF. * * @method _eventHandler * @private */ _eventHandler: function(event) { var type = event.type; switch(type) { case "swfReady": this._loadHandler(); return; case "log": YAHOO.log(event.message, event.category, this.toString()); return; } //be sure to return after your case or the event will automatically fire! this.fireEvent(type, event); }, /** * Called when the SWF has been initialized. * * @method _loadHandler * @private */ _loadHandler: function() { this._initialized = false; this._initAttributes(this._attributes); this.setAttributes(this._attributes, true); this._initialized = true; this.fireEvent("contentReady"); }, set: function(name, value) { //save all the attributes in case the swf reloads //so that we can pass them in again this._attributes[name] = value; YAHOO.widget.FlashAdapter.superclass.set.call(this, name, value); }, /** * Initializes the attributes. * * @method _initAttributes * @private */ _initAttributes: function(attributes) { //should be overridden if other attributes need to be set up /** * @attribute wmode * @description Sets the window mode of the Flash Player control. May be * "window", "opaque", or "transparent". Only available in the constructor * because it may not be set after Flash Player has been embedded in the page. * @type String */ /** * @attribute expressInstall * @description URL pointing to a SWF file that handles Flash Player's express * install feature. Only available in the constructor because it may not be * set after Flash Player has been embedded in the page. * @type String */ /** * @attribute version * @description Minimum required version for the SWF file. Only available in the constructor because it may not be * set after Flash Player has been embedded in the page. * @type String */ /** * @attribute backgroundColor * @description The background color of the SWF. Only available in the constructor because it may not be * set after Flash Player has been embedded in the page. * @type String */ /** * @attribute altText * @description The alternative text to provide for screen readers and other assistive technology. * @type String */ this.getAttributeConfig("altText", { method: this._getAltText }); this.setAttributeConfig("altText", { method: this._setAltText }); /** * @attribute swfURL * @description Absolute or relative URL to the SWF displayed by the FlashAdapter. Only available in the constructor because it may not be * set after Flash Player has been embedded in the page. * @type String */ this.getAttributeConfig("swfURL", { method: this._getSWFURL }); }, /** * Getter for swfURL attribute. * * @method _getSWFURL * @private */ _getSWFURL: function() { return this._swfURL; }, /** * Getter for altText attribute. * * @method _getAltText * @private */ _getAltText: function() { return this._swf.getAltText(); }, /** * Setter for altText attribute. * * @method _setAltText * @private */ _setAltText: function(value) { return this._swf.setAltText(value); }});/** * Receives event messages from SWF and passes them to the correct instance * of FlashAdapter. * * @method YAHOO.widget.FlashAdapter.eventHandler * @static * @private */YAHOO.widget.FlashAdapter.eventHandler = function(elementID, event){ var loadedSWF = YAHOO.util.Dom.get(elementID); if(!loadedSWF.owner) { //fix for ie: if owner doesn't exist yet, try again in a moment setTimeout(function() { YAHOO.widget.FlashAdapter.eventHandler( elementID, event ); }, 0); } else { loadedSWF.owner._eventHandler(event); }};/** * The number of proxy functions that have been created. * @static * @private */YAHOO.widget.FlashAdapter.proxyFunctionCount = 0;/** * Creates a globally accessible function that wraps a function reference. * Returns the proxy function's name as a string for use by the SWF through * ExternalInterface. * * @method YAHOO.widget.FlashAdapter.createProxyFunction * @static * @private
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -