[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/lib/yuilib/2in3/2.9.0/build/yui2-swf/ -> yui2-swf.js (source)

   1  YUI.add('yui2-swfdetect', function(Y) { Y.use('yui2-swf'); }, '3.3.0' ,{"requires": ["yui2-yahoo"]});
   2  YUI.add('yui2-swf', function(Y) {
   3      var YAHOO    = Y.YUI2;
   4      /*
   5  Copyright (c) 2011, Yahoo! Inc. All rights reserved.
   6  Code licensed under the BSD License:
   7  http://developer.yahoo.com/yui/license.html
   8  version: 2.9.0
   9  */
  10  YAHOO.namespace("widget");
  11  
  12  (function () {
  13      
  14      var version = 0;
  15      var UA = YAHOO.env.ua;
  16      var sF = "ShockwaveFlash";
  17      var mF, eP;
  18  
  19           if (UA.gecko || UA.webkit || UA.opera) {
  20                 if ((mF = navigator.mimeTypes['application/x-shockwave-flash'])) {
  21                    if ((eP = mF.enabledPlugin)) {
  22                       var vS = [];
  23                       vS = eP.description.replace(/\s[rd]/g, '.').replace(/[A-Za-z\s]+/g, '').split('.');
  24                      version = vS[0] + '.';
  25                      switch((vS[2].toString()).length)
  26                      {
  27                          case 1:
  28                          version += "00";
  29                          break;
  30                          case 2: 
  31                          version += "0";
  32                          break;
  33                      }
  34                       version +=  vS[2];
  35                      version = parseFloat(version);
  36                    }
  37                 }
  38              }
  39              else if(UA.ie) {
  40                  try
  41                  {
  42                      var ax6 = new ActiveXObject(sF + "." + sF + ".6");
  43                      ax6.AllowScriptAccess = "always";
  44                  }
  45                  catch(e)
  46                  {
  47                      if(ax6 != null)
  48                      {
  49                          version = 6.0;
  50                      }
  51                  }
  52                  if (version == 0) {
  53                  try
  54                  {
  55                      var ax  = new ActiveXObject(sF + "." + sF);
  56                         var vS = [];
  57                      vS = ax.GetVariable("$version").replace(/[A-Za-z\s]+/g, '').split(',');
  58                      version = vS[0] + '.';
  59                      switch((vS[2].toString()).length)
  60                      {
  61                          case 1:
  62                          version += "00";
  63                          break;
  64                          case 2: 
  65                          version += "0";
  66                          break;
  67                      }
  68                       version +=  vS[2];
  69                      version = parseFloat(version);
  70  
  71                  } catch (e) {}
  72                  }
  73              }
  74  
  75              UA.flash = version;
  76  
  77      YAHOO.util.SWFDetect = {        
  78              getFlashVersion : function () {
  79                  return version;
  80              },
  81  
  82              isFlashVersionAtLeast : function (ver) {
  83                  return version >= ver;
  84              },
  85                      
  86              parseFlashVersion : function (ver)         
  87               {    
  88                  var flashVersion = ver;         
  89                  if(YAHOO.lang.isString(ver))         
  90                  {     
  91                    var verSplit = ver.split(".");    
  92                    if(verSplit.length > 2)    
  93                    {    
  94                      flashVersion = parseInt(verSplit[0]);         
  95                      flashVersion += parseInt(verSplit[2]) * .001;    
  96                    }    
  97                    else    
  98                    {
  99                      flashVersion = parseFloat(ver);    
 100                    }          
 101                  }
 102                  return YAHOO.lang.isNumber(flashVersion) ? flashVersion : null;
 103                 }          
 104              };    
 105      
 106      var Dom = YAHOO.util.Dom,
 107          Event = YAHOO.util.Event,
 108          SWFDetect = YAHOO.util.SWFDetect,
 109          Lang = YAHOO.lang,
 110  
 111          // private
 112          FLASH_CID = "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000",
 113          FLASH_TYPE = "application/x-shockwave-flash",
 114          FLASH_VER = "10.22",
 115          EXPRESS_INSTALL_URL = "http://fpdownload.macromedia.com/pub/flashplayer/update/current/swf/autoUpdater.swf?" + Math.random(),
 116          EVENT_HANDLER = "YAHOO.widget.SWF.eventHandler",
 117          possibleAttributes = {align:"", allowfullscreen: "", allownetworking:"", allowscriptaccess:"", base:"", bgcolor:"", devicefont: "", loop: "", menu:"", name:"", play: "", quality:"", salign:"", seamlesstabbing: "", scale:"", swliveconnect: "", tabindex:"", wmode:""};
 118          
 119          /**
 120           * The SWF utility is a tool for embedding Flash applications in HTMl pages.
 121           * @module swf
 122           * @title SWF Utility
 123           * @requires yahoo, dom, event
 124           * @namespace YAHOO.widget
 125           */
 126  
 127          /**
 128           * Creates the SWF instance and keeps the configuration data
 129           *
 130           * @class SWF
 131           * @extends YAHOO.util.Element
 132           * @constructor
 133           * @param {String|HTMLElement} id The id of the element, or the element itself that the SWF will be inserted into.  
 134           *        The width and height of the SWF will be set to the width and height of this container element.
 135           * @param {String} swfURL The URL of the SWF to be embedded into the page.
 136           * @param {Object} p_oAttributes (optional) Configuration parameters for the Flash application and values for Flashvars
 137           *        to be passed to the SWF.
 138           */
 139                  
 140  YAHOO.widget.SWF = function (p_oElement /*:String*/, swfURL /*:String*/, p_oAttributes /*:Object*/ ) {
 141      
 142      this._queue = this._queue || [];
 143      this._events = this._events || {};
 144      this._configs = this._configs || {};
 145      
 146      /**
 147       * The DOM id of this instance of the element. Automatically generated.
 148       * @property _id
 149       * @type String
 150       */
 151      this._id = Dom.generateId(null, "yuiswf");
 152      
 153      if(p_oAttributes.host) this._host = p_oAttributes.host;
 154      
 155      var _id = this._id;
 156      var oElement = Dom.get(p_oElement);
 157      var flashVersion = SWFDetect.parseFlashVersion((p_oAttributes["version"]) || FLASH_VER);
 158      var isFlashVersionRight = SWFDetect.isFlashVersionAtLeast(flashVersion);
 159      var canExpressInstall = (UA.flash >= 8.0);
 160      var shouldExpressInstall = canExpressInstall && !isFlashVersionRight && p_oAttributes["useExpressInstall"];
 161      var flashURL = (shouldExpressInstall)?EXPRESS_INSTALL_URL:swfURL;
 162      var objstring = '<object ';
 163      var w, h;
 164      var flashvarstring = "YUISwfId=" + _id + "&YUIBridgeCallback=" + EVENT_HANDLER;
 165      
 166      YAHOO.widget.SWF._instances[_id] = this;
 167  
 168      if (oElement && (isFlashVersionRight || shouldExpressInstall) && flashURL) {
 169                  objstring += 'id="' + _id + '" '; 
 170                  if (UA.ie) {
 171                      objstring += 'classid="' + FLASH_CID + '" '
 172                  }
 173                  else {
 174                      objstring += 'type="' + FLASH_TYPE + '" data="' + YAHOO.lang.escapeHTML(flashURL) + '" ';
 175                  }
 176                  
 177                  w = "100%";
 178                  h = "100%";
 179                  
 180                  objstring += 'width="' + w + '" height="' + h + '">';
 181                  
 182                  if (UA.ie) {
 183                      objstring += '<param name="movie" value="' + YAHOO.lang.escapeHTML(flashURL) + '"/>';
 184                  }
 185                  
 186                  for (var attribute in p_oAttributes.fixedAttributes) {
 187                      if (possibleAttributes.hasOwnProperty(attribute.toLowerCase())) {
 188                          objstring += '<param name="' + YAHOO.lang.escapeHTML(attribute.toLowerCase()) + '" value="' + YAHOO.lang.escapeHTML(p_oAttributes.fixedAttributes[attribute]) + '"/>';
 189                      }
 190                  }
 191  
 192                  for (var flashvar in p_oAttributes.flashVars) {
 193                      var fvar = p_oAttributes.flashVars[flashvar];
 194                      if (Lang.isString(fvar)) {
 195                          flashvarstring += "&" + YAHOO.lang.escapeHTML(flashvar) + "=" + YAHOO.lang.escapeHTML(encodeURIComponent(fvar));
 196                      }
 197                  }
 198                  
 199                  if (flashvarstring) {
 200                      objstring += '<param name="flashVars" value="' + flashvarstring + '"/>';
 201                  }
 202                  
 203                  objstring += "</object>"; 
 204  
 205                  oElement.innerHTML = objstring;
 206                  YAHOO.widget.SWF.superclass.constructor.call(this, Dom.get(_id));
 207                  this._swf = Dom.get(_id);
 208              }
 209  };
 210  
 211  /**
 212   * The static collection of all instances of the SWFs on the page.
 213   * @property _instances
 214   * @private
 215   * @type Object
 216   */
 217  
 218  YAHOO.widget.SWF._instances = YAHOO.widget.SWF._instances || {};
 219  
 220  /**
 221   * Handles an event coming from within the SWF and delegate it
 222   * to a specific instance of SWF.
 223   * @method eventHandler
 224   * @param swfid {String} the id of the SWF dispatching the event
 225   * @param event {Object} the event being transmitted.
 226   * @private
 227   */
 228  YAHOO.widget.SWF.eventHandler = function (swfid, event) {
 229      YAHOO.widget.SWF._instances[swfid]._eventHandler(event);
 230  };
 231  
 232  YAHOO.extend(YAHOO.widget.SWF, YAHOO.util.Element, {
 233      _eventHandler: function(event)
 234      {
 235          if (event.type == "swfReady") 
 236          {
 237              this.createEvent("swfReady", {fireOnce:true});
 238               this.fireEvent("swfReady", event);
 239          }
 240          else if(event.type == "log")
 241          {
 242          }
 243          else 
 244          {
 245              if(this._host && this._host.fireEvent) 
 246              {
 247                  this._host.fireEvent(event.type, event);
 248              }
 249              else
 250              {
 251                  this.fireEvent(event.type, event);
 252              }
 253          } 
 254      },
 255          
 256      /**
 257       * Calls a specific function exposed by the SWF's
 258       * ExternalInterface.
 259       * @method callSWF
 260       * @param func {String} the name of the function to call
 261       * @param args {Object} the set of arguments to pass to the function.
 262       */
 263      callSWF: function (func, args)
 264      {
 265          if (!args) { 
 266                args= []; 
 267          };
 268          
 269          if (this._swf[func]) {
 270          return(this._swf[func].apply(this._swf, args));
 271          } else {
 272          return null;
 273          }
 274      },
 275      
 276      /**
 277       * Public accessor to the unique name of the SWF instance.
 278       *
 279       * @method toString
 280       * @return {String} Unique name of the SWF instance.
 281       */
 282      toString: function()
 283      {
 284          return "SWF " + this._id;
 285      }
 286  });
 287  
 288      
 289  })();
 290  YAHOO.register("swf", YAHOO.widget.SWF, {version: "2.9.0", build: "2800"});
 291  
 292  }, '2.9.0' ,{"requires": ["yui2-yahoo", "yui2-dom", "yui2-event", "yui2-element"], "supersedes": ["yui2-swfdetect"]});


Generated: Thu Aug 11 10:00:09 2016 Cross-referenced by PHPXref 0.7.1