• ベストアンサー

flash AS3.0についての質問です。

flash AS3.0についての質問です。 http://www.geocities.jp/webcella/flash/imerjigazou/newpage2.html 上記のサイトのような感じで、ページを読み込むたびに、ランダムで外部swfを読み込ませたいのですが、 方法が分かりません。AS3.0のコードを出来れば、解説付で教えていただければ助かります。 よろしくお願い致します flash CS3

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

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

書かれていらっしゃるページの説明は 外部swfを読み込む 方法の説明ではありませんが...。 その方法は全く無視して 「ActionScript 3.0 で ランダムに外部swfを読み込ませる方法」 と考えてよろしいですよね? ランダムに表示させる「外部swf」は仮に3つあるものとします。 その3つのswfには それぞれ「movie0.swf」「movie1.swf」「movie2.swf」というファイル名を付けていたものとします。 またそれら3つのswfは それをロードする 親のswf や その 親のswf を表示させる HTML と同じフォルダにあるものとします。  任意のフォルダ(ディレクトリ)    ├親のswfを表示させるhtml    ├親のswf    ├movie0.swf    ├movie1.swf    └movie2.swf この場合 親のswf(fla)のメインのタイムラインのフレームに次のように書いてパブリッシュすれば完成です。 --------------------- //変数 rand_num にランダムな 0~2 の整数を取得 var rand_num:int = Math.floor(Math.random() * 3); //変数 name_str に「movie?.swf」という文字列を取得 var name_str:String = "movie" + rand_num + ".swf"; //「movie?.swf」をURLとするURLRequestインスタンスを生成 var swf_url:URLRequest = new URLRequest(name_str); //Loaderインスタンス「swf_ld」を生成 var swf_ld:Loader = new Loader(); //「swf_ld」に「movie?.swf」をロード swf_ld.load(swf_url); //このタイムライン(root)に「swf_ld」を配置 this.addChild(swf_ld); --------------------- 「movie?.swf」のファイルパスですが, これは「親のswf」から見たパスではなく 「親のswfを表示させるhtml」から見たパスです。 上の場合は「親のswf」も「親のswfを表示させるhtml」も 同じフォルダにあるのでどちらにしても同じパスになりますが 例えば次のようにファイルを配置したとします。  任意のフォルダ(ディレクトリ)    ├親のswfを表示させるhtml    └flash[フォルダ(ディレクトリ)]      ├親のswf      ├movie0.swf      ├movie1.swf      └movie2.swf この場合スクリプトの2行目は //変数 name_str に「flash/movie?.swf」という文字列を取得 var name_str:String = "flash/movie" + rand_num + ".swf"; のように変更する必要があります。 http:などから始まるような絶対パスにする場合はどちらの構造でも同じです。 結局 URLRequest というのはブラウザに渡されるリクエストだと考えればわかりやすいと思います。 ブラウザは何を表示しているのか(どこにいるのか)と言えば HTML を表示している(HTMLのアドレスにいる)のでTHMLからのパスになります。 さてスクリプトの1行目 ランダムな 0~4の整数 や 1~5の整数 を出すにはどうすれば良いか もしわからない場合は次の図↓を見て考えてみましょう。

paris0514
質問者

お礼

回答ありがとうございます。 ランダムにswfを読み込んでくれるようになりました! かわいらしい画像付ですごい分かりやすかったです。 また質問させてもらうことがあるかもしれないので、その時は宜しくお願いします。 助かりました!ありがとうございます。

すると、全ての回答が全文表示されます。

関連するQ&A