プロが教えるわが家の防犯対策術!

シーン「s1」,「s2」から成るFlashファイルがあります。

シーン「s1」の1フレームのフレームアクションに下記のScriptを記述しました。

stop() ;
aaa = PARM + "test" ;

これを実行すると正しくaaaの内容が表示されます。

しかし、上記Scriptに下記のアクションを追加すると途端に変な動きをします。

if(PARM = "aaaa") {
  gotoAndStop("s2",1) ;
}
else {
gotoAndStop(10) ;
}


HTMLから受け渡されるパラメーターは以下のように記述しています。

<param name="Flashvars" value="PARM=aaaaaaaa" />

s1の10フレームには矩形が描いてあり、必ず矩形が表れるものと思っていましたが、s2に移動しているようです。

何故なのでしょうか?。


宜しく御願い致します。

A 回答 (1件)

「 PARM の内容が”aaaa”であるどうか」を判断したい場合は、



 if( PARM == "aaaa" )

このように、イコール(=)を2つ続けて記述します。
イコールを1つにすると、「 PARM に”aaaa”を代入する」という意味になります。


同じように、記号が1つの時と2つの時で意味が変わる演算子には、&( AND )と|( OR )があります。
「AかつB」( AND )や「AまたはB」( OR )を判断したい時は、&& や || と、記号を2つ続けて書きます。
例えば、変数Aが1で、かつ変数Bが2の時に処理をさせたい場合は、

 if( ( A == 1 ) && ( B == 2 ) )

このような条件式になります。

「 A & 1 」や「 B | 2 」のように、&や|を1つだけ記述した場合は、ビット演算と言って、ビット単位で AND や OR などの論理演算をするという意味になります。
ビット演算はフラグの操作などに使うと便利です。この話は奥が深いのでここでは割愛しますが、1つの変数にいくつものフラグを保存したり、if 文を使わずにフラグを切り替えるなど、使い方次第ではスクリプトをスッキリと書けるようになります。
ちなみに、&と|ではありませんが、ビット演算の1つである^( XOR )を使った例は以前別の質問で少しだけ紹介した事があります。よろしければご参考までに。(#3です)

 ・ボタンによるシンボルの表示・非表示 (FlashMX2004)
  http://okweb.jp/kotaeru.php3?q=905694

この回答への補足

いつもありがとうございます。

本当は、IF文ではなくてswitch文を使って処理をしているのですが、説明しやすいようにIF文に置き換えてミスを犯しました。すみません。

サンプルファイルを作成すると正しく稼動しますが既存のファイルに当該のScriptを追加するとうまく動かないので、他に要因がありそうです。stopとかgotoAndStop絡みのような気がしますので、新たな質問をさせていただきます。

どうぞ宜しく御願い致します。

補足日時:2004/09/14 09:12
    • good
    • 0

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