公開の壁「onFocus」@HIROBA
〜本日のお品書き〜
- HIROBA Web公開
遂に。HIROBAをWebサーバーから公開することになりました。
やったー
最初はすぐできると思っていましたが、いろいろなところに壁がありました。
その原因は主にフォーカス制御です。
フォーカスの渡し方として、ブラウザ→FlashPlayer→描画インスタンスと渡さなければなりません。
でないと、ブラウザ→他ウィンドウ→ブラウザとアクティブにした時、FlashPlayerにフォーカスが移らず、描画インスタンスが制御できません。
最終的には以下のコードになりました。
ちなみに、ニコニコ動画でも使っているswfobject.jsですが、Ver2.2ではSWFObjectが生成されません。途中で止まる・・・
なのでニコニコ動画からswfobject.jsを拝借(Ver1.5)したら動きました。
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE"> <html> <head> <title>HOCS</title> </head> <body bgcolor="#ffffff"> <script type="text/javascript" src="js/swfobject.js"></script> <script type="text/javascript"> window.onload=function(){ var so = new SWFObject("hiroba.swf", "hiroba", "800", "600", 9, "#000000"); so.write("hiroba"); window.document.hiroba.focus(); window.onfocus = function(){ window.document.hiroba.focus(); } } </script> <div id="hiroba"></div> </body> </html>
そして、AS部もフォーカス制御
stage.addEventListener(FocusEvent.FOCUS_IN, onForcus); private function onForcus(evt:FocusEvent) :void { stage.focus = this.hirobaClient; }
これでローカルは動きました。