公開の壁「onFocus」@HIROBA

〜本日のお品書き〜

  1. 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;
}


これでローカルは動きました。

あとは公開。VMなのでポートフォワードして完成〜