Macromedia Flash非公式テクニカルノート 1から連番の配列をつくる(ループ処理)
Platform: All 'for'あるいは'while'アクションは、終了条件を指定して、繰り返しループ処理を行います。これらのアクションを使って、1から指定された整数までの連続した数値の配列をつくってみましょう。 1. forを使ったスクリプト //1から指定された連番の配列をつくる関数 'for'アクションは、指定した変数の値を変化させて、条件を満たす間同じステートメントをループ処理します。この例では、1から指定した数値までの値を、配列に順次追加したうえで、その配列を返します。変数の多くは、ローカル変数として'var'宣言をしています('var'アクションについて、詳しくは「ActionScript辞書」をご参照ください)。 2. whileを使ったスクリプト
function xGetSerialArray (nLast) { 今回の例でいえば、変数の初期値および変数値の変更をループ処理の最初に設定する'for'アクションを使った方が、スクリプトとして見やすいといえます。 3. 返される値を調べる
lArray = new Array(); 新規に作成した配列にエレメントをひとつ追加したので、'trace'アクションにより出力ウィンドウには1と表示されます。 返された値を評価することによって、2のスクリプトは劇的に短縮できます。
function xGetSerialArray (nLast) { 'while'アクションの{}が改行されているために2行にわたっていますが、これは1行に記述できます(「アクション」パネルで「ノーマルモード」にすると、2行になってしまいます)。すると、実質3行のステートメントで'function'が構成できたことになります。 2のサンプルと異なり、変数iの初期値を設定していません。そうすると、初期値は未定義('undefined')になります。けれど、'while'アクションの条件中でプリインクリメント('++')していることに、ご注目ください。インクリメントの対象となるのは、数値です。'undefined'は数値として扱われると、0と看做されます。その値をプリインクリメントするので、初期値に1を与えたのと同じ結果になります('++'演算子について、詳しくは「ActionScript辞書」をご参照ください)。 'while'アクションの条件では、配列lResultに変数値iを追加し、返された値を配列の最後の値となる整数nLastと比較しています。返される値は、整数を追加した後の配列の長さです。整数を1から追加していくと、最後の値となる整数を追加したときに、配列の長さはその整数の値を超えます。したがって、そこで'while'アクションが終了する訳です。 メソッドが返す値を調べることで、ActionScriptを簡潔に記述できる例です。 _____ 作成者: 野中文雄 © 2001 and beyond Fumio Nonaka All rights reserved. |
|||