2010年3月3日水曜日

AS3物語 第五話 IEだとリンクが効かない!swfobject.js 書き方

でけた~と思って、いろんなブラウザーで検証して(特にIE6=7)こそプロの仕事でございます。
私は日ごろは表示がものごつ早いIRONを愛用しています。

ところがどうしたことでしょう!IEだとXMLを使ったフラッシュメニューのリンクが効かないじゃないですか!
苦労して作ったAS3ももはやこれまでか!と悲愴になっていましたが、同じことが起こるようです。

↑こういうやつが動きません。でも↑のは動きます。単体だったら動くのですが組み合わせたのが動きません。理由はわかりませんな。
IEってつくづく怖いブラウザーですね。マイクロソフト社は何を考えているのでしょうか?

まずXMLのリンク文章で_selfや_blankは使えない。

さらに<param name="allowScriptAccess" value="always" />
 を追加する。

の2つをして、ちゃんとhtmlファイルがflash9で設定しるか確認し、パブリシュしなおして再度アップしキャッシュをクリーンにしたらちゃんと動きました。

この機会にたまに聞かれる swfobjectを導入した場合のIEで対応した書き方を書いておきます。
文字は当然 utf-8です。 じゃないとXMLの文章うまく動かないと思います。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>タイトル</title>
<meta name="name" content="キーワード" />
<meta name ="description" content="サイト説明文"/>
<!-- favorite icon -->
<link rel="shortcut icon" href="favicon.ico" type="image/vnd.microsoft.icon" />
<link rel="icon" href="favicon.ico" type="image/vnd.microsoft.icon" />
<link rel="stylesheet" type="text/css" href="./css/main.css"/>

<link rev="made" title="yumisaiki" href="mailto:yumisaiki@gmail.com"/>
<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
swfobject.registerObject("expressInstall.swf", "9.0.0");
</script>
</head>

<body>

<div id="デザイン要素を入れます">

//↓ここからフラッシュ
<object id="menu" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="290" height="650">//idは適当でよいらしい
<param name="movie" value="preloader3.swf"/>
<param name="allowScriptAccess" value="always" /> //←これを追加しました
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="preloader3.swf" width="290" height="650"> //サイズを書く
<!--<![endif]-->
ここの間にフラッシュない場合の文章を書きます

<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object> //ここまでがswfobjectです。

</div> //デザイン要素をとじます

<div id="naiyo">
以下内容
</div>
<br class="clears">
<!-- PHPフッター -->
<?php include("./footer.htm"); ?>
<!-- フッター -->
</body>
</html>

私はPHPで作るのでincludeも入れて作っておきました。私はいつでもコピペです(友近の銀座ママ風)。


なんか、asの開発が超楽になるflash developというものがあるらしい

超楽になるためにまた勉強することになるみたい

お問合せフォーム

お名前 :
Email: (必須)
メッセージ: (必須)


0 コメント :

コメントを投稿



連絡フォーム

名前

メール *

メッセージ *

サイト内検索