Flashでアクションスクリプトなどを使ったコンテンツを作成すると、
「クリックするとこのコントロールをアクティブにして使用します」
というメッセージが一度出て、ユーザーが一度クリックしないと動作しない。
詳しくはマイクロソフトの下記のサイトに詳しい。http://www.microsoft.com/japan/msdn/workshop/author/dhtml/overview/activating_activex.aspx
ここではものすごく簡単に説明すると、APPLET (英語)、EMBED (英語)、または OBJECTタグでくくられた中身はユーザーがクリックするまで対話(入出力)させない、ということだ。
ただ、ユーザーにとってはクリック数が増えるので面倒でしかない。
それを防ぐため、一つ外部Javascriptから読み込むようにする方法がある。
具体的には以下の通り。
- まずJavascriptファイルを作る。ここでは仮に「foo.js」とする。
- テキストエディタからこのファイルを開き、問題のhtmlファイルのの中身をカットして、次のように編集して貼り付ける。
function RunFoo() {document.write('<OBJECT classid="clsid:xxxxxxx-aaa-・・・以下OBJECTタグの中身>'); document.write('<PARAM NAME=movie ・・・以下PARAMタグの中身・・・</OBJECT> '); }
注1:上記のようにdocument.write(‘から’);までの間に問題のFlashの部分を全部記述する。このとき、の間すべてをここで記述することに注意。
注2:改行が入る場合は、document.write(‘中身’);で区切らないとエラーになる。
- これでfoo.jsが出来上がる。次に、HTMLファイルの方で、からタグのどこかでと記述する。
- HTMLファイルと同じディレクトリに、foo.jsを保存する。(別に違う場所でもいいけど、その場合上記で、ファイルのパスを変更する)
- Flashの
<script type="text/javascript">RunFoo();</script>
と記述する。
これで終わり。
ただ、このままだとJavascriptを有効にしていないユーザーには何も見えなくなってしまう。そのため、
<script type="text/javascript">RunFoo();</script>
の後に
<noscript><img src="代替イメージなど・・・"></noscript>
と記述して、Javascriptを無効にしているユーザーのためにリンクなり画像なり何か書いておくと親切だろう。