diff --git a/as/JSocket.as b/as/JSocket.as index 412cfb8..32f1045 100644 --- a/as/JSocket.as +++ b/as/JSocket.as @@ -14,13 +14,6 @@ package { private static var handlers:Object; public function JSocket():void { - if (stage) init(); - else addEventListener(Event.ADDED_TO_STAGE, init); - } - - private function init(e:Event = null):void { - removeEventListener(Event.ADDED_TO_STAGE, init); - ExternalInterface.addCallback('newsocket', newsocket); ExternalInterface.addCallback('connect', connect); ExternalInterface.addCallback('write', write); diff --git a/js/jsocket.js b/js/jsocket.js index 8231023..4db5ab0 100644 --- a/js/jsocket.js +++ b/js/jsocket.js @@ -34,9 +34,9 @@ function JSocket() { this.initialize.apply(this, arguments); } -JSocket.VERSION = '0.03'; +JSocket.VERSION = '0.04'; JSocket.init = function(src, swfloadedcb) { - JSocket.flashapi = $('
').prependTo('body').flashembed({ + JSocket.flashapi = $('
').prependTo('body').flashembed({ id: 'socketswf', name: 'socketswf', src: src.concat('?'.concat(JSocket.VERSION)), @@ -47,7 +47,14 @@ JSocket.init = function(src, swfloadedcb) { bgcolor: '#ffffff', allowScriptAccess: 'always' }).data('flashembed').getApi(); - JSocket.swfloadedcb = swfloadedcb; + + if ( JSocket.flashapi.newsocket ) { + // for IE(because already construct) + swfloadedcb(); + } + else { + JSocket.swfloadedcb = swfloadedcb; + } }; JSocket.swfloaded = function() { if ( JSocket.swfloadedcb ) { diff --git a/swf/JSocket.swf b/swf/JSocket.swf index d608836..6dccd3c 100644 Binary files a/swf/JSocket.swf and b/swf/JSocket.swf differ