タグ

配列とFlashに関するmasakuma0812のブックマーク (4)

  • [AS3] 配列のインデックスを式で計算したときはuint型で渡す

    投稿者:野中 文雄 | 投稿日:2011.02.19 | [AS 3][ActionScript][Tips][野中ゼミ] 配列やVectorインスタンスのエレメントを扱うとき、インデックス番号を式で与えることがあります。その場合、配列アクセス演算子[]に式を直接書込むのでなく、uint型に変換(キャスト)するか、式の値はuint型の変数に入れたうえでその変数を渡すようにしましょう。その方が、書く手間は少し増えても、処理が速まります。 [1] 配列アクセス演算子[]にインデックスとして式を直接書込んだとき、その式の値のデータ型は決まっていません。この場合、エレメントの扱いが遅くなるようです。 var my_array:Array = [0, 1, 2]; var i:uint = 0; var element:int = my_array[i + 1]; // 配列アクセス演算子に式を直接

    [AS3] 配列のインデックスを式で計算したときはuint型で渡す
  • [AS3] 配列を初期化するには

    投稿者:野中 文雄 | 投稿日:2011.01.26 | [AS 3][ActionScript][Tips][野中ゼミ] 配列つまりArrayインスタンスをつくるには、つぎのふたつの書き方があります。どちらがよいのでしょうか。 var constructed_array:Array = new Array(); var literal_array:Array = []; どちらにしたところで、大きな違いはありません。けれど、気分によって変えるのはやめましょう。統一はしないと、見にくいです。だとすると、やはりどちらがお得なのかは気にかかります。 コンストラクタとリテラル ActionScript 3.0では、new演算子に続けて呼出すクラスと同名のメソッドでインスタンスをつくるのがお決まりです。このメソッドを「コンストラクタ」と呼びます。他方で、数値や文字列は値を直接書いてしまうのが普通で

    [AS3] 配列を初期化するには
  • [AS3] ふたつの配列を連結する

    投稿者:野中 文雄 | 投稿日:2011.01.12 | [AS 3][ActionScript][Tips][野中ゼミ] ふたつの配列を連結するには、Array.concat()メソッドを用います。ところが、Grant Skinner氏がtwitterで面白い手法を紹介していました。JavaScriptについて書かれたものの、ActionScript 3.0でも使えます。 それはひとつの配列(arr1)に対してFunction.apply()メソッドによりArray.push()メソッドを適用し、もうひとつの配列(arr2)は第2引数として渡してしまうというものです。すると、初めの配列に対してArray.push()メソッドが呼出され、ふたつ目の配列エレメントがその引数に渡されます。したがって、ふたつの配列が連結されるのです。 arr1.push.apply(arr1, arr2); S

    [AS3] ふたつの配列を連結する
  • [AS3] Vectorクラス対Arrayクラスの処理速度比較

    投稿者:野中 文雄 | 投稿日:2010.04.07 | [AS 3][ActionScript][Tips][野中ゼミ] Adobeのサイトに公開された「Optimizing Performance for the Flash Platform」の「Vector class versus Array class」の項は、Flash Player 10から実装されたVectorクラスとArrayクラス(配列)との処理速度を比べています。 VectorとArrayクラスの使い方やその違いについては、Adobeデベロッパーセンター「ActionScript 3.0におけるパフォーマンス向上のヒント」の05「ArrayとVectorクラス」で解説しましたので、ご参照ください。稿では、前記のドキュメントに沿って、ふたつのクラスの処理速度を比べてみます。 まず、条件を揃えなければなりません。配列の

    [AS3] Vectorクラス対Arrayクラスの処理速度比較
  • 1