プロが教える店舗&オフィスのセキュリティ対策術

AS3でif関数で外部SWFを読み込みたい!
AS2では下記の記述で動作していたのですが、
----------------------------------------
// もし 変数 result の値が 0 であれば
if (_root.result == "0") {
// flash読み込み
this.loadMovie("main.swf");
// もし 変数 result の値が 1 であれば
} else if (_root.result == "1") {
// flash読み込み
this.loadMovie("1.swf");
}
----------------------------------------
AS3にすると動かなくなってしまいました。

仕組みとしては、【htmlのflashvarsの変数を_rootで拾ってifステートメントで外部SWFを読む】
作りになっています。

参考書を買ってみて条件分岐について調べて試行錯誤してみたもののvarsとかtraceとかAS3で必要ですか?とにかくチンプンカンプンなので、どなたかご教授お願いいたします。。。
宜しくお願い致します。

A 回答 (2件)

ActionScript 2.0 以下と 3.0 以上とでは


根本的な考え方や捉え方が変わりますよ。
ムービーの構造も違います。

ですから
単純な ActionScript の変換 などでは対処できませんが,
書かれていらっしゃるスクリプトを
なるべく忠実に単純に ActionScript 3.0 に変換(?) すると次のような感じになります。


----------------------------------------------
//FlashVars 内の変数「result」の値を受け取り 変数「res」に代入
var res:String = loaderInfo.parameters.result;

//Loaderインスタンス「my_ld」を作成
var my_ld:Loader = new Loader();

//リクエストするファイルのURLを入れる変数を宣言
var my_file:URLRequest;

// もし res の値(文字列)が "0" であれば
if (res == "0") {
//リクエストするファイルのURLを「main.swf」にする
my_file = new URLRequest("main.swf");
// もし 変数 res の値(文字列)が "1" であれば
} else if (res == "1") {
//リクエストするファイルのURLを「1.swf」にする
my_file = new URLRequest("1.swf");
}

//Loaderインスタンス「my_ld」にファイルをロード
my_ld.load(my_file);

//Loaderインスタンス「my_ld」をこの階層に配置
this.addChild(my_ld);
----------------------------------------------



なるべく同じになるように変換っぽくはしてますが実際は変換ではありません。

自分の意識で「Loader」なども作成する必要がありますし,
FlashVars 内の変数は 特別な入れ物(loaderInfo.parametersオブジェクト)内に入りますから,
これも FlashVars であることを意識して そのオブジェクトを明示する必要があります。
    • good
    • 0

MovieClipからloadMovieメソッドはなくなりました


外部イメージ読み込みはloaderクラスに移行してます
    • good
    • 0

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