チェンジセット 104
- コミット日時:
- 2007/11/17 03:26:35 (1 年前)
- ファイル:
凡例:
- 変更無し
- 追加
- 削除
- 更新
- コピー
- 移動
jirox/as3/sample/crossdomainbridge/CrossDomainBridge.js
r103 r104 29 29 var CrossDomainBridge = function(url, params, callbacks, method) { 30 30 // externalという文字列が入っていないとIEで動作しないので注意 31 this.id = 'externalCrossDomainBridge_' + CrossDomainBridge._sequense; 32 this.containerId = 'containerCrossDomainBridge_' + CrossDomainBridge._sequense; 31 this.id = 'externalCrossDomainBridge_' + CrossDomainBridge._sequence; 32 this.containerId = 'containerCrossDomainBridge_' + CrossDomainBridge._sequence; 33 this.flashCallbackName = 'flashCallback_' + CrossDomainBridge._sequence; 33 34 this.url = url; 34 35 this.params = params; … … 36 37 this._createContainer(); 37 38 this._createSwf(); 38 CrossDomainBridge._sequen se++;39 CrossDomainBridge._sequence++; 39 40 }; 40 41 41 CrossDomainBridge._sequen se = 0;42 CrossDomainBridge._sequence = 0; 42 43 43 44 CrossDomainBridge.prototype = { … … 50 51 request: function() { 51 52 var _this = this; 52 setTimeout(function() { 53 CrossDomainBridge[this.flashCallbackName] = function() { 54 delete(CrossDomainBridge[_this.flashCallbackName]); 53 55 _this._registerCallbacks(); 54 56 _this.swfObject.request(_this.url, _this.params); 55 } , 500);57 }; 56 58 }, 57 59 … … 69 71 */ 70 72 _createSwf: function() { 73 var time = new Date().getTime(); 71 74 if (navigator.appName.indexOf("Microsoft") != -1) { 72 this.element.innerHTML = '<OBJECT id=' + this.id + ' height=1 width=1 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000><PARAM NAME="Movie" VALUE="CrossDomainBridge.swf "><PARAM NAME="Src" VALUE="CrossDomainBridge.swf"><PARAM NAME="WMode" VALUE="Transparent"><PARAM NAME="AllowScriptAccess" VALUE="always"></OBJECT>';75 this.element.innerHTML = '<OBJECT id=' + this.id + ' height=1 width=1 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000><PARAM NAME="Movie" VALUE="CrossDomainBridge.swf?' + time + '"><PARAM NAME="Src" VALUE="CrossDomainBridge.swf?' + time + '"><PARAM NAME="WMode" VALUE="Transparent"><PARAM NAME="AllowScriptAccess" VALUE="always"><PARAM NAME="FlashVars" VALUE="requestCallback=' + this.flashCallbackName + '"></OBJECT>'; 73 76 } else { 74 this.element.innerHTML = '<embed width="1" height="1" flashvars="allowScriptAccess=always " wmode="transparent" quality="high" name="' + this.id + '" id="' + this.id + '" style="" src="CrossDomainBridge.swf" type="application/x-shockwave-flash"/>';77 this.element.innerHTML = '<embed width="1" height="1" flashvars="allowScriptAccess=always&requestCallback=' + this.flashCallbackName + '" wmode="transparent" quality="high" name="' + this.id + '" id="' + this.id + '" style="" src="CrossDomainBridge.swf?' + time + '" type="application/x-shockwave-flash"/>'; 75 78 } 76 79 }, jirox/as3/src/net/jirox/crossdomainbridge/CrossDomainBridge.as
r103 r104 41 41 ExternalInterface.addCallback('request', request); 42 42 ExternalInterface.addCallback('registerCallback', registerCallback); 43 // SWFの用意ができたので、flashvarsに指定されたrequestCallbackを実行する 44 ExternalInterface.call('CrossDomainBridge.' + loaderInfo.parameters['requestCallback'], null); 43 45 } 44 46
