« Flash表示用Javascript「SwfTagWriter」 | メイン | Aptana Eclipseプラグイン版によるエディタの併用(その1) »
2007年3月17日
JavascriptとActionScriptの連携その1
JavascriptとActionScriptの連携をいくつかのケースに分けて実践してみたいと思います。
最初のケースは、別のHTMLに埋め込まれているswfの特定のタイムライン(ラベル)にジャンプさせる方法です。
今回のケースでは下記の条件を設定しました。
1.リンク先のHTMLファイルは一つ、swfファイルも一つとする。
2.swfのタイムラインにラベルを記載。リンク元のHTMLから、リンク先swfの特定のラベルのあるタイムラインを最初に表示するようにする。
リンク元HTMLファイル名を、index.html
リンク先HTMLファイル名を、jsas.html
リンク先HTMLに埋め込まれたswfファイル名をjsas.swfとします。
サンプルソースは下記の通り。
まず最初に、リンク元のHTMLからリンク先のHTMLにパラメータを渡してやります。
<a href="jsas.html?scn1">ラベルscn1を表示させる</a><br />
<a href="jsas.html?scn2">ラベルscn2を表示させる</a><br />
<a href="jsas.html?scn3">ラベルscn3を表示させる</a><br />
<a href="jsas.html?scn4">ラベルscn4を表示させる</a><br />
リンク先HTMLのファイル名の後ろに?+ラベル名を記述します。
リンク先HTMLからリンクを貼っている外部jsファイルに下記のJavascriptを記述します。
{
var strTemp = new String();
var strArg = new String();
var nLength;
strTemp = location.search;
nLength = strTemp.length;
strArg = strTemp.substring(1, nLength);
document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/ cabs/flash/swflash.cab#version=6,0,29,0" width="320" height="240" id="index">')
document.write('<param name="allowScriptAccess" value="always" />')
document.write('<param name="movie" value="jsas.swf?goJump='+strArg+'">')
document.write('<param name="quality" value="high">')
document.write('<param name="bgcolor" value="#ffffff">')
document.write('<embed src="jsas.swf?goJump='+strArg+'" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="320" height="240" name="index">')
document.write('</object>')
}
<body>~</body>タグ内のswfを表示したい箇所に上記のjavascriptを呼び出すスクリプトを記述。
<script language="javascript">
<!--
Check();
// -->
</script>
呼び出されるswfのルートのタイムラインに下記のActionScriptを記載。
※注意点
swfファイルは完全にパラメータ等が読み込まれてからでないと、動作しないケースがあります。
ローディングバーをつけるなどして、FLASHで使用するデータを完全に読み込んでから実行します。
gotoAndPlay(_root.goJump);
以上で完了です。
仕組みとしては非常にシンプルです。
1.リンク元HTMLファイルからパラメータをつけて、リンク先HTMLへリンク。
2.リンク先HTMLでパラメータの文字列を取得、FlashVarsでswfファイルに変数goJumpを送信。
3.swfファイルで変数goJumpに該当するラベルにジャンプ。
投稿者 lepracaun : 2007年3月17日 14:03
![]()
トラックバック
このエントリーのトラックバックURL:
http://www.lepracaun.info/mt4/mt-tb.cgi/19