• ベストアンサー

【FLASH】同一のswfファイルに別の動作をさせる方法

FLASH8(Win-XP)使用者です。 同一のswfファイルを同じページ上に並べて別の動作をさせられないものかと考えています。 FLASHは画像サイズや背景色はHTML上で記述を変えるだけで変えられます。これと同じ要領で、何か値を与えて別の動作をさせられたら便利かなと思います。 そんな方法はありませんでしょうか? お詳しい方、よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • suzuki-_-
  • ベストアンサー率77% (152/195)
回答No.1

HTML上のファイルパスにパラメータをつけると、 変数に任意の文字を代入させることができるので、 そのまま変数として使用し処理させることが可能です(PC版のみ) 今回のサンプルではswf内におけるif分岐の条件として、 HTML側で記述したパラメータの内容を使用させてみます ■HTML側で編集 ・param 内のswfパスと embed 内のswfパスにパラメータをつける 例 sample.swfのmoveFlagに1を代入させるパスの書き方 sample.swf?moveFlag=1 例 sample.swfのmoveFlagに2を代入させるパスの書き方 sample.swf?moveFlag=2 ■swfファイル(flaで編集) ・_root(最上階層)のタイムライン上に  インスタンス名 hoge というMCを適当に配置 ・_root の1フレーム目に以下のスクリプトを記述 if (moveFlag == 1) {//moveFlagが1だったら hoge.onEnterFrame = function() { //この中のthisはhogeに対するもの this._rotation++;//回転する }; } else if (moveFlag == 2) {//moveFlagが2だったら hoge.onEnterFrame = function() { //この中のthisはhogeに対するもの this._x++;//右に移動 }; } else {//上記以外 //エラー表示 this.createTextField("error", 0, 0, 0, 200, 20); error.text = "myFlagが1でも2でもない!"; } ■後記 こんな感じでHTMLファイルを見てみると、 sample.swf?moveFlag=1とsample.swf?moveFlag=2で別々の動作になります パラメータの持たせ方には他にも FlashVarsというのもあります こちらも興味があったら検索などで調べてみてください

ikataro
質問者

お礼

おお!できました!! これはすごいですね。 今までは似たうな内容のswfをその都度書き出ししていましたがこれならかなり楽ができそうです。 どうもありがとうございました。