FlashComponent.js
上传用户:shuoshiled
上传日期:2018-01-28
资源大小:10124k
文件大小:3k
源码类别:

中间件编程

开发平台:

JavaScript

  1. /*!
  2.  * Ext JS Library 3.0.0
  3.  * Copyright(c) 2006-2009 Ext JS, LLC
  4.  * licensing@extjs.com
  5.  * http://www.extjs.com/license
  6.  */
  7. /**
  8.  * @class Ext.FlashComponent
  9.  * @extends Ext.BoxComponent
  10.  * @constructor
  11.  * @xtype flash
  12.  */
  13. Ext.FlashComponent = Ext.extend(Ext.BoxComponent, {
  14.     /**
  15.      * @cfg {String} flashVersion
  16.      * Indicates the version the flash content was published for. Defaults to <tt>'9.0.45'</tt>.
  17.      */
  18.     flashVersion : '9.0.45',
  19.     /**
  20.      * @cfg {String} backgroundColor
  21.      * The background color of the chart. Defaults to <tt>'#ffffff'</tt>.
  22.      */
  23.     backgroundColor: '#ffffff',
  24.     /**
  25.      * @cfg {String} wmode
  26.      * The wmode of the flash object. This can be used to control layering. Defaults to <tt>'opaque'</tt>.
  27.      */
  28.     wmode: 'opaque',
  29.     /**
  30.      * @cfg {String} url
  31.      * The URL of the chart to include. Defaults to <tt>undefined</tt>.
  32.      */
  33.     url: undefined,
  34.     swfId : undefined,
  35.     swfWidth: '100%',
  36.     swfHeight: '100%',
  37.     /**
  38.      * @cfg {Boolean} expressInstall
  39.      * True to prompt the user to install flash if not installed. Note that this uses
  40.      * Ext.FlashComponent.EXPRESS_INSTALL_URL, which should be set to the local resource. Defaults to <tt>false</tt>.
  41.      */
  42.     expressInstall: false,
  43.     initComponent : function(){
  44.         Ext.FlashComponent.superclass.initComponent.call(this);
  45.         this.addEvents('initialize');
  46.     },
  47.     onRender : function(){
  48.         Ext.FlashComponent.superclass.onRender.apply(this, arguments);
  49.         var params = {
  50.             allowScriptAccess: 'always',
  51.             bgcolor: this.backgroundColor,
  52.             wmode: this.wmode
  53.         }, vars = {
  54.             allowedDomain: document.location.hostname,
  55.             elementID: this.getId(),
  56.             eventHandler: 'Ext.FlashEventProxy.onEvent'
  57.         };
  58.         new swfobject.embedSWF(this.url, this.id, this.swfWidth, this.swfHeight, this.flashVersion,
  59.             this.expressInstall ? Ext.FlashComponent.EXPRESS_INSTALL_URL : undefined, vars, params);
  60.         this.swf = Ext.getDom(this.id);
  61.         this.el = Ext.get(this.swf);
  62.     },
  63.     getSwfId : function(){
  64.         return this.swfId || (this.swfId = "extswf" + (++Ext.Component.AUTO_ID));
  65.     },
  66.     getId : function(){
  67.         return this.id || (this.id = "extflashcmp" + (++Ext.Component.AUTO_ID));
  68.     },
  69.     onFlashEvent : function(e){
  70.         switch(e.type){
  71.             case "swfReady":
  72.                 this.initSwf();
  73.                 return;
  74.             case "log":
  75.                 return;
  76.         }
  77.         e.component = this;
  78.         this.fireEvent(e.type.toLowerCase().replace(/event$/, ''), e);
  79.     },
  80.     initSwf : function(){
  81.         this.onSwfReady(!!this.isInitialized);
  82.         this.isInitialized = true;
  83.         this.fireEvent('initialize', this);
  84.     },
  85.     beforeDestroy: function(){
  86.         if(this.rendered){
  87.             swfobject.removeSWF(this.swf.id);
  88.         }
  89.         Ext.FlashComponent.superclass.beforeDestroy.call(this);
  90.     },
  91.     onSwfReady : Ext.emptyFn
  92. });
  93. /**
  94.  * Sets the url for installing flash if it doesn't exist. This should be set to a local resource.
  95.  * @static
  96.  * @type String
  97.  */
  98. Ext.FlashComponent.EXPRESS_INSTALL_URL = 'http:/' + '/swfobject.googlecode.com/svn/trunk/swfobject/expressInstall.swf';
  99. Ext.reg('flash', Ext.FlashComponent);