数値演算子の使用

ActionScript で値を加算、減算、除算、または乗算するには、数値演算子を使用します。異なる種類の算術操作を実行できます。最も一般的な演算子はインクリメント演算子であり、一般的には i++ のように指定します。この演算子では、さらに実行できる操作があります。インクリメント演算子の詳細については、演算子を使用した値の操作を参照してください。

インクリメント演算子は、オペランドの前 ("事前インクリメント") または後 ("事後インクリメント") に追加できます。

ActionScript の数値演算子を理解するには :

  1. 新しい Flash ドキュメントを作成します。
  2. 次の ActionScript をタイムラインのフレーム 1 に入力します。
    // 例 1
    var firstScore:Number = 29;
    if (++firstScore >= 30) {
        // トレースが必要
        trace("Success! ++firstScore is >= 30");
    }
    // 例 2
    var secondScore:Number = 29;
    if (secondScore++ >= 30) {
        // トレースは不要
        trace("Success! secondScore++ is >= 30");
    }
    
  3. [制御]-[ムービープレビュー] を選択して ActionScript をテストします。

    "例 1" のコードブロックはトレースしますが、"例 2" のコードブロックはトレースしません。最初の例では、事前インクリメント (++firstScore) を使ってインクリメントし、値が 30 以上かどうかをテストする前に firstScore を計算します。そのため、firstScore は 30 にインクリメントしてから、30 以上かどうかがテストされます。

    しかし、例 2 では事後インクリメント (secondScore++) を使用し、テスト後に評価が実行されます。そのため、29 が 30 に対して比較され、評価後に 30 にインクリメントされます。

加算演算子を操作する場合、次の例のように、式で値を追加しようとすると、予期しない結果が生じることがあります。

trace("the sum of 5 + 2 is: " + 5 + 2); // 5 + 2 の合計 : 52

5 および 2 が加算されるのではなく、連結されます。この問題を回避するには、次のコードのように、式 5+2 をカッコで囲みます。

trace("the sum of 5 + 2 is: " + (5 + 2)); // 5 + 2 の合計 : 7

演算子の優先順位の詳細については、演算子の優先順位と結合性についてを参照してください。

外部ソース (XML ファイル、FlashVars、Web サービスなど) からデータをロードする場合は、数値演算子は非常に慎重に操作する必要があリます。SWF ファイルは数値のデータ型を認識しないので、数値がストリングのように扱われることがあります。この場合は、3 および 7 を加算し、結果が 37 になります。これは、両方の数値が数値として加算されず、ストリングのように連結されるためです。この状況では、Number() 関数を使用して、ストリングから数値にデータを手動で変換する必要があります。


 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00000733.html