サイトトップ

Director Flash 書籍 業務内容 プロフィール

ActionScript 3.0パフォーマンスチューニング
野中 文雄 著

 

ActionScript 3.0 Performance Tuning
>> amazon.co.jpへ

価格: 3,360円(税込)
発売: 2012年2月10日
出版: 株式会社技術評論社
ISBN: 978-4-7741-4992-9
サポートページ(出版社)

>> もくじ
*Chapter01 (19ページ)の「PDFプレビュー」あり!New!
>> はしがき

補足および正誤表

【はじめにお読みください − Read Me!】
本書は、ActionScript 3.0の基礎を学んだ方を対象として、スクリプトのパフォーマンスを最適化するテクニックについて解説します。ActionScript 3.0の基礎というのは、イベントリスナーが使えるくらいの知識を想定しています。変数の宣言やデータ型指定、関数の定義も含まれます。

スクリプトの学び方は、人により異なるでしょう。そして、その学び方によって、書籍に求める内容も変わってくるはずです。執筆する側からいえば、どのような読者を対象として解説するかということにつながります。本書は、つぎのようにターゲティングしています。

本書が期待に添えない読者 本書が対象とする読者
他人のスクリプトをコピー&ペーストして済むならその方が楽だ。 自分の意図した動作を自分のスクリプトとして書きたい。
スクリプトは結果として動けばそれでいい。 スクリプトはどのように組立てればよいのか、どうすればより効率的な処理になるのかを知りたい。
そのまま使えるサンプルがたくさんほしい。 ステートメントひとつひとつの意味を理解して、自分で応用できるようになりたい。

本書の各Chapter(章)と節は独立していますので、基本的にはどこから読んでも結構です。ただし、初学者はChapter01「文法の基本から」は、初めにお読みいただくことをお勧めします。また、Chapterの中では、後の節の方がより中級者向けの内容になるよう順序立てています。

サンプルのスクリプトは、試しやすく初心者にも理解しやすいように、できるだけクラスを用いずフレームアクションで説明しています。また、Chapter02以降は各章の結びとして、【Step up講義】と題したコラムを加え、入門書ではあまり扱われない題材を採上げました。

さらに、以下のような囲み記事を加えています。現在の知識とご興味に応じてご参照ください。

  • Tips   本文の補足や知っておくと便利な知識などを紹介しています。
  • キーワード   用語説明です。若干抽象的な解説も加えています。
  • 基礎知識リンク   解説で前提とする基礎知識を学ぶためのリンクです。筆者が担当するgihyo.jpの連載「ActionScript 3.0で始めるオブジェクト指向スクリプティング」の該当する解説をご紹介しています。
  • 参考リンク   より詳しい知識を得るために参考となるリンクです。筆者のサイトの情報も加えています。
 
Chapter01 文法の基本から >> PDFプレビュー(全19ページ)
  • 01-01 変数と関数にはデータ型を指定する
  • 01-02 配列アクセスよりドットアクセスを使う
  • 01-03 数値は小数か整数かマイナスを含むのかを区別する
  • 01-04 何度もアクセスするプロパティやオブジェクトは変数に入れる
  • 01-05 TextFieldインスタンスにテキストを加えるとき連結後代入演算子+=は使わない
Chapter02 条件で処理を分ける
  • 02-01 条件の順序を考える
  • 02-02 条件演算子?:は値を返す処理に使う
  • 02-03 switchステートメントはひとつの式がどの値に等しいかで分岐する
  • 02-S1【Step up講義】条件分岐をポリモーフィズムに置換える
Chapter03 まとめたデータの扱い
  • 03-01 配列エレメントのすべてを素速く処理するには
  • 03-02 Flash Player 10からは配列よりVectorインスタンスを使う
  • 03-03 配列に納めたオブジェクトは型指定した変数に取出す
  • 03-04 複数のインスタンスと値との関連づけにはDictionaryクラスを使う
  • 03-05 Arrayインスタンスはコンストラクタでなくリテラルでつくる
  • 03-06 配列エレメントはArray.push()メソッドより配列アクセス演算子[]で加える
  • 03-07 Vectorインスタンスにはできるだけ長さを定める
  • 03-08 Vectorインスタンスに初期値を与えるには
  • 03-09 エレメントのインデックスを式で計算したときはuint型で渡す
  • 03-S1【Step up講義】連結リスト(linked list)を使う
Chapter04 数値と2進法(ビット)の演算を活用する
  • 04-01 掛け算と割り算の使い分け
  • 04-02 正数値の小数切捨てはint()関数を使う
  • 04-03 距離はPointやVector3DクラスのメソッドよりMath.sqrt()で三平方の定理を使う
  • 04-04 角度はVector3D.angleBetween()でなくMath.acos()メソッドで求める
  • 04-05 Math.max()/Math.min()/Math.abs()メソッドより条件演算子:?で計算した方が速い
  • 04-06 数値の範囲を決める − 最大値・最小値と循環する値
  • 04-07 数多くの座標を決まった角度回すには
  • 04-S1【Step up講義】2進数・16進数とビット演算
Chapter05 ステージに表示するインスタンスの扱い
  • 05-01 ステージに表示するインスタンスのクラスを選ぶ
  • 05-02 インスタンスを画面から消す3つの方法
  • 05-03 インスタンスをメモリから消し去るには
  • 05-04 マウスの動きに合わせたアニメーションはMouseEvent.MOUSE_MOVEよりEvent.ENTER_FRAMEを使う
  • 05-S1【Step up講義】マウスイベントの流れを知る
Chapter06 描画とアニメーションを軽くする
  • 06-01 Event.ENTER_FRAMEイベントのリスナーはひとつにまとめる
  • 06-02 描画はビットマップを駆使して速める
  • 06-03 Graphics.drawPath()メソッドはパスの多い同じ形状を複数のインスタンスに描くときお得
  • 06-S1【Step up講義】BitmapDataオブジェクトをピクセルごとに塗る
Chapter07 マニアックなテクニック
  • 07-01 データ型の変換はキャストよりas演算子が速い
  • 07-02 文字列の検索・置換は正規表現よりStringクラスの方が速い
  • 07-03 外部から読込んだSWFをメモリから消し去るには
  • 07-04 ランダムな値を重複なく取出すには
  • 07-05 オブジェクトは使い回した方がお得
  • 07-S1【Step up講義】メモリを解放する
Appendix Flash Player 11の新機能
  • AP-00 地味すぎて伝わらないFlash Player 11の新機能
  • AP-01 ビットマップのサイズ制限がなくなる
  • AP-02 System.pauseForGCIfCollectionImminent()メソッド
  • AP-03 DisplayObjectContainer.removeChildren()メソッド
  • AP-04 MovieClip.isPlayingプロパティ
  • AP-05 Matrix3Dオブジェクトの行列データをコピーするメソッド
  • AP-06 Vector3Dオブジェクトの座標値をコピーや設定するメソッド
  • AP-07 ByteArrayオブジェクトからサウンドデータをSoundオブジェクトに読込むメソッド
  • AP-08 Flash CS5/CS5.5でFlash Player 11のSWFを書出す
 

はしがき

本書は、ActionScript 3.0の処理をいかに軽く、あるいは速くするかという技術やコツをご紹介します。もっとも結論からいいますと、魔法のようなテクニックがある訳ではなく、基本に忠実に、かつ処理の流れを地道に改善するということが、おそらく本書の9割を占めます。

けれど裏返すと、基本があやふやなまま、処理の流れを十分に把握せずにスクリプティングしている場合は少なくありません。とくに、サンプルをかき集め、コピー&ペーストでスクリプトを組上げているとそうなりがちです。

スクリプトの最適化というのは、ダイエットと似ています。それは、自らの身体を改めて点検して、日頃の生活を見直すことから始まります。あいまいにしていた基本を身につけ、処理の組立てをもう1度よく考え、いわば引き締まったスクリプトを目指すのです。

ご紹介するテクニックは、大まかに3つの側面をもちます。

第1は、初めに述べた基本です。入門書などでは決まりとか作法のように習ったことが、最適化の観点からも推奨される場合です。単に決まりや作法で済ませず、その理由を理解することはステップアップにつながります。

第2は、処理の流れに応じた工夫です。何が重要なのかを確かめ、その結果を得るもっともよい手法を選ぶ知識ともいえます。結果が得られさえすればよいというのでなく、最適な処理を求める作業です。

第3は、トレードオフを含む判断になります。つまり、速度やメモリに利点がある代わりに、スクリプトの読みやすさや修正のしやすさなど何らかの難点を生じる場合です。判断は誰がするかは別にして、功罪を正しく測れることが必要になります。

それぞれのテクニックが、この3つのどれかひとつに当てはまることもあれば、いくつかの側面を併せもつこともあります。本書がみなさんのテクニックの引出しを増やすとともに、スクリプティングの知識と技術の向上につながれば幸いです。


Copyright © 2001-2012 Fumio Nonaka.  All rights reserved.