[自動フォーマット]が、またやらかしてくれました。
つぎのフレームアクション(スクリプト001)を、[自動フォーマット]してから、[ムービープレビュー]で確認すると、答えとしていくつが[出力]されるでしょう。
スクリプト001■functionの戻り値に括弧()のある式を指定function xTest(a:Number, b:Number, c:Number):Number {
return (a + b) * c;
}
trace(xTest(1, 2, 3));
図001■括弧()を使った式がfunctionの戻り値に指定
答えは「7」です(図002)。もちろん、意図した結果ではありません。
括弧()を使った式がreturnの後に戻り値として指定されると、[自動フォーマット]は()を消してくれます。Flash CS3 Professionalで[パブリッシュ設定]に[ActionScript 3.0]を指定している場合に再現されます。
図002■括弧()が消えた戻り値
対処方法は、式の値を一旦変数に代入して、returnする戻り値にはその変数を指定することでしょう(スクリプト002)。
スクリプト002■式の値は変数に代入して戻り値にはその変数を指定function xTest(a:Number, b:Number, c:Number):Number {
var n:Number = (a + b) * c;
return n;
}
trace(xTest(1, 2, 3)); // 出力: 9
[追記] 2007.09.23
スクリプトウィンドウで[ターゲット]を指定していない場合にも、[自動フォーマット]で式に用いた括弧()が消されてしまうようです(図003)。
図003■スクリプトウィンドウで[ターゲット]を指定しないと括弧()が消える