FlashComponent.js
上传用户:dawnssy
上传日期:2022-08-06
资源大小:9345k
文件大小:4k
源码类别:

JavaScript

开发平台:

JavaScript

  1. /*!
  2.  * Ext JS Library 3.1.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.115',
  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.     /**
  31.      * @cfg {Object} flashVars
  32.      * A set of key value pairs to be passed to the flash object as flash variables. Defaults to <tt>undefined</tt>.
  33.      */
  34.     flashVars: undefined,
  35.     
  36.     /**
  37.      * @cfg {Object} flashParams
  38.      * A set of key value pairs to be passed to the flash object as parameters. Possible parameters can be found here:
  39.      * http://kb2.adobe.com/cps/127/tn_12701.html Defaults to <tt>undefined</tt>.
  40.      */
  41.     flashParams: undefined,
  42.     /**
  43.      * @cfg {String} url
  44.      * The URL of the chart to include. Defaults to <tt>undefined</tt>.
  45.      */
  46.     url: undefined,
  47.     swfId : undefined,
  48.     swfWidth: '100%',
  49.     swfHeight: '100%',
  50.     /**
  51.      * @cfg {Boolean} expressInstall
  52.      * True to prompt the user to install flash if not installed. Note that this uses
  53.      * Ext.FlashComponent.EXPRESS_INSTALL_URL, which should be set to the local resource. Defaults to <tt>false</tt>.
  54.      */
  55.     expressInstall: false,
  56.     initComponent : function(){
  57.         Ext.FlashComponent.superclass.initComponent.call(this);
  58.         this.addEvents(
  59.             /**
  60.              * @event initialize
  61.              * 
  62.              * @param {Chart} this
  63.              */
  64.             'initialize'
  65.         );
  66.     },
  67.     onRender : function(){
  68.         Ext.FlashComponent.superclass.onRender.apply(this, arguments);
  69.         var params = Ext.apply({
  70.             allowScriptAccess: 'always',
  71.             bgcolor: this.backgroundColor,
  72.             wmode: this.wmode
  73.         }, this.flashParams), vars = Ext.apply({
  74.             allowedDomain: document.location.hostname,
  75.             elementID: this.getId(),
  76.             eventHandler: 'Ext.FlashEventProxy.onEvent'
  77.         }, this.flashVars);
  78.         new swfobject.embedSWF(this.url, this.id, this.swfWidth, this.swfHeight, this.flashVersion,
  79.             this.expressInstall ? Ext.FlashComponent.EXPRESS_INSTALL_URL : undefined, vars, params);
  80.         this.swf = Ext.getDom(this.id);
  81.         this.el = Ext.get(this.swf);
  82.     },
  83.     getSwfId : function(){
  84.         return this.swfId || (this.swfId = "extswf" + (++Ext.Component.AUTO_ID));
  85.     },
  86.     getId : function(){
  87.         return this.id || (this.id = "extflashcmp" + (++Ext.Component.AUTO_ID));
  88.     },
  89.     onFlashEvent : function(e){
  90.         switch(e.type){
  91.             case "swfReady":
  92.                 this.initSwf();
  93.                 return;
  94.             case "log":
  95.                 return;
  96.         }
  97.         e.component = this;
  98.         this.fireEvent(e.type.toLowerCase().replace(/event$/, ''), e);
  99.     },
  100.     initSwf : function(){
  101.         this.onSwfReady(!!this.isInitialized);
  102.         this.isInitialized = true;
  103.         this.fireEvent('initialize', this);
  104.     },
  105.     beforeDestroy: function(){
  106.         if(this.rendered){
  107.             swfobject.removeSWF(this.swf.id);
  108.         }
  109.         Ext.FlashComponent.superclass.beforeDestroy.call(this);
  110.     },
  111.     onSwfReady : Ext.emptyFn
  112. });
  113. /**
  114.  * Sets the url for installing flash if it doesn't exist. This should be set to a local resource.
  115.  * @static
  116.  * @type String
  117.  */
  118. Ext.FlashComponent.EXPRESS_INSTALL_URL = 'http:/' + '/swfobject.googlecode.com/svn/trunk/swfobject/expressInstall.swf';
  119. Ext.reg('flash', Ext.FlashComponent);