電子書籍の厳選無料作品が豊富!

初めてですがよろしくお願いします。

まず異なった最初のページ
index1.htmlとindex2.htmlというページから変数をセットして
同じ飛び先、main.htmlにリンクします。

そのmain.htmlのmain.swfで変数を受け取り
index1.htmlとindex2.htmlから受け取った変数に応じて
アクションを起こしたいのです。

夜分すみません。わかる方がいらっしゃいましたら、ご伝授の程、
よろしくお願いいたします

A 回答 (1件)

HTML から HTML に送信される 引数 を Flash で受け取るわけですから,


途中に何かを仲介させる必要があります。
一般的には JavaScript でしょう。

以下は,JavaScript を仲介して,
HTML に表示されている SWF に変数を受けわたす一例のサンプルです。


「index1.html」 のHTML コード例
------------------------------------
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
<title>index1</title>
</head>
<body>
<p>インデックス1のページ</p>
<p><a href="main.html?mynum=1">メインページへ</a></p>
</body>
</html>
------------------------------------


「index1.html」 のHTML コード例
------------------------------------
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
<title>index2</title>
</head>
<body>
<p>インデックス2のページ</p>
<p><a href="main.html?mynum=2">メインページへ</a></p>
</body>
</html>
------------------------------------


「main.html」 のHTML+JavaScript コード例1
------------------------------------
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
<title>main</title>
</head>
<body>
<p>メインページ</p>
<p>
<script type="text/javascript">
// URL を 「?」で分けて2番目の要素([1])を mydata に代入
var mydata = location.href.split("?")[1];
// Flash表示のタグの書き出し
document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400">');
document.write('<param name="movie" value="main.swf?'+mydata+'" />');
document.write('<embed src="main.swf?'+mydata+'" width="550" height="400" type="application/x-shockwave-flash" />');
document.write('</object>');
</script>
</p>
</body>
</html>
------------------------------------


この状態で,
「main.swf」 の _root(メインムービーのタイムライン)のステージ上に,
「mynum」という "変数名"(インスタンス名ではありません) のテキストフィールドを用意しておくと,
「1」とか「2」が表示されますから,
「mynum=1」とか「mynum=2」が,それぞれの HTML から送られてくることが確認できると思います。


また,
HTML から Flash に変数を送信するときに使われる,
「FlashVars」 を使っても同様のことができます。


「main.html」 のHTML+JavaScript コード例2
------------------------------------
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
<title>main</title>
</head>
<body>
<p>メインページ</p>
<p>
<script type="text/javascript">
// URL を 「?」で分けて2番目の要素([1])を mydata に代入
var mydata = location.href.split("?")[1];
// Flash表示のタグの書き出し
document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400">');
document.write('<param name="movie" value="main.swf" />');
document.write('<param name="FlashVars" value="'+mydata+'" />');
document.write('<embed src="main.swf" FlashVars="'+mydata+'" width="550" height="400" type="application/x-shockwave-flash" />');
document.write('</object>');
</script>
</p>
</body>
</html>
------------------------------------


「main.html」 のHTML+JavaScript コード例1 も 2 も,
Flash を表示させるタグは
必要な部分だけに省略していますが,
普通にはこれでも十分表示されると思います。



ActionScriptでは,
MovieClipクラス,あるいは Buttonクラス,あるいは TextFieldクラスの 「_url」 プロパティで,
SWF自体 の URL を参照(取得)することはできますが,
SWFが貼りついている HTML などの URL は参照できません。
したがって,ActionScript だけでは無理ということになります。
ActionScriptだけでは無理と言うより,
上記の例では ActionScript は全く登場していませんね。



もっと カッコイイ JavaScript の書き方はできると思いますが,
私は JavaScript の専門でないため,この辺で...。
 
    • good
    • 0

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