プロが教える店舗&オフィスのセキュリティ対策術

Flash(swf)を一度クリックしてからでないと、操作が出来ない問題として、<object>タグを直接htmlの中に書かずにJavaScriptのdocument.write ()で書く方法で解決が紹介されています。

http://switch-blade.org/bl/2006/05/flashactivex_ …

http://www.geocities.jp/media_boxes/lesson/flash …
など。

ともにクリックしなくとも、マウスカーソルに反応するの事ができます。

そこで、マウスでなく、矢印キーに反応するswfを作り、上記と同じ方法でhtmlを作成したのですが、一度クリックしないと上手くいきません。

上手い方法ご存知でしたら、教えてください。

以下が期待した様に動作しないページです。

http://monoeye.web.fc2.com/ss.html

---------------------- htmlを以下に ----------------------
<html><body>
<div align="center">矢印キーで動かします。一度、画面をクリックして下さい。<hr>
<script language='JavaScript' src='flash3.js'></script><hr>
<div>
</body></html>
-------------------------------------------------------------

---------------------- flash3.jsを以下に ---------------------- (改行はなしです。)------
document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
codebase="http://fpdownload.macromedia.com/pub/shockwave/c …
width="512" height="384" align="middle"><param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="ss.swf" /><param name="quality" value="high" />
<embed src="ss.swf" quality="high" width="512" height="384" align="middle" allowScriptAccess="
sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/
getflashplayer" /></object>');

A 回答 (1件)

それはブラウザの「フォーカス」と呼ばれる物に起因する現象だね。


実際にマウスのクリックでフォームのテキストが入力できるようになるのは判るよね?
同じように 希望のobjectというflashはマウスやキーを反応させる為にはフォーカスがそこになければならないんだけど、そのためにマウスクリックを行うという事を行っている。
キーで出来ないのはフォームのテキストが複数有った時にカーソルキーで推移できないのと同じ。

だけどjavascriptによって特定の物にフォーカスを与える事は実はできるのでonKey等で検知してフォーカスを与えるって仕掛けになる。
注意するのはカーソルキー自体はブラウザのスクロールに使われるのでヘタすると(ブラウザ画面を)カーソルキーでスクロールできない!という苦情が発生するね。

http://www.tohoho-web.com/js/form.htm#focus
ここではformになっているけれど(ブラウザが)反応するのなら他の部品でも可能。(例えばaタグ)
    • good
    • 0
この回答へのお礼

ありがとうございます。

できました。

http://monoeye.web.fc2.com/ss2.html

お礼日時:2007/10/03 15:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!