-
ID:9VQWIe さんの質問

flashでナビゲーションを作成しているのですが、そのページへいったとき、ナビボタン部分がオーバーの状態でステイさせたいのですが、どのようにしたらよいか分からず困っています。

ナビゲーションに書いているのスクリプトは以下のようになっていいます。

---------------------------
navi1.addEventListener (MouseEvent.CLICK,navi1from1);
function navi1from1(event:MouseEvent){
MovieClip(root).gotoAndStop(1,"shopping");
}

navi2.addEventListener (MouseEvent.CLICK,navi2from1);
function navi2from1(event:MouseEvent){
MovieClip(root).gotoAndStop(1,"park");
}

navi3.addEventListener (MouseEvent.CLICK,navi3from1);
function navi3from1(event:MouseEvent){
MovieClip(root).gotoAndStop(1,"hospital");
}
---------------------------

as以外でも対処法があれば教えていただきたいです。
またまだ初心者のため、細かくお教えいただけると幸いです。

可能であれば、「このシーンにいるときにステイした状態」「このフレームにいるときにステイした状態」というようなスクリプトにできたら今後も活用できるので、教えていただきたいです。

みんなの回答 2 件

ID:v9bbpX さんの回答

swfobject.jsを使って変数をswfに渡すのが一番楽だと思います。
(例)
【html側】
<script type="text/javascript" src="swfobject.js"></script>
<div id="id_name"></div>
<script language="javascript">
var flashvars = {prm:"index"};
swfobject.embedSWF("flash.swf", "id_name", "幅px", "高さpx", "9.0.0","",flashvars);
</script>

【flash】
var flashvars:Object = loaderInfo.parameters;
if(flashvars.prm == "index") {
//indexの時のナビの挙動とか色々
}

詳しくは「swfobject.js flashvars」あたりでググれば色々出てくるかと。

ID:0HRya. さんの回答

  1. 上の人と意味的には同じだけど、FlashVarsで変数を渡す
  2. ExternalInterface経由でそのページのJavascriptとやり取りする

flash.external.ExternalInterface (ActionScript 3.0)

http://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/flash/external/ExternalInterface.html
ID:9VQWIe

ご回答ありがとうございます。
しかしながら初心者すぎて全くわかりませんで、できればflash内のASのみでできる方法をお教えいただきたいです。

作成したswfファイルをhtmlに設置するのがやっとだったレベルの知識なので、jsやhtmlと絡めたりするのであれば、どのようにどこに書けばよいのかもお教え頂きたいです。

ID:yYPjHd

それなら最初の回答の方のものを使ったほうが良さそうです。

2はASだけで完結しないし、どういう風にHTMLにSWF設置してるのかわからないし、キーワードでググれば同様のTipsを書いてる人はたくさんいるので、JSとSWFが直接通信できるんですよ、と言いたかっただけなのです。
(ajaxが絡むようなページ遷移とナビゲーションのときには必要かなーくらいの知識です)

最終更新日:2013-07-17 (2,160 views)

関連するトピックス

ページ上部に戻る