June 22, 2009
「JavaScriptからFlashにフォーカスを与えられるよ」を参考にしてみた
JavaScriptからFlashにフォーカスを与えられるよ - てっく煮ブログ を読んで、てっく煮さんの記事ではテキストエリアにフォーカスを当てているけど、stage.focusにもなにかを代入すれば行けるんじゃ?と思いついたのでやってみた。
FlashではキーイベントやマウスホイールなどFlashにフォーカスがないとだめなイベントがある。
いままではFlashエリアを一度クリックしないとフォーカスが与えられないと思ってたんだけど、できたぽい。
実際のコードはこちら
ActionScript
import flash.external.ExternalInterface;
//ExternalInterfaceに登録
ExternalInterface.addCallback("onload", _onLoad);
//JavaScriptから実行される関数
function _onLoad():void {
stage.focus = ターゲット(stageとか特定のMCとかとか);
}
JavaScript
window.onload = function() {
var el = document.getElementById("swfのid");
if(el && el.onload) {
el.focus();
el.onload();
}
}
こんな感じでJavaScriptからフォーカスを当てた後に、ActionScript側で stage.focus に代入してあげればよいよ。