日本の読者の皆さんへ v |
序文 ⅶ |
はじめに xi |
迷子にならない方法-訳者まえがきに代えて xxv |
第1部 ゼロからのActionScript 1 |
1章 インストール 3 |
1.1 ActionScriptコードを記述するツール 3 |
1.2 Flashクライアントランタイム環境 4 |
1.3 コンパイル 5 |
1.4 簡単な復習 6 |
1.5 クラスとオブジェクト 6 |
1.6 プログラムの作成 8 |
1.7 パッケージ 8 |
1.8 クラスの定義 11 |
1.9 VirtualZooの復習 13 |
1.10 コンストラクタメソッド 14 |
1.11 オブジェクトの作成 16 |
1.12 変数と値 20 |
1.15 変数の値を別の変数に代入する 28 |
1.16 ペット用のインスタンス変数 31 |
1.17 インスタンスメソッド 32 |
1.18 メンバーとプロパティ 44 |
1.19 仮想動物園の復習 44 |
1.20 少し休憩! 45 |
2章 条件とループ 47 |
2.1 条件 47 |
2.2 ループ 53 |
2.3 Boolean論理 61 |
2.4 クラスとオブジェクトに戻る 66 |
3章 再びインスタンスメソッド 67 |
3.1 thisキーワードの省略 68 |
3.2 パインドメソッド 70 |
3.3 オブジェクトの状態を調べるメソッドと変更するメソッドの使用 72 |
3.4 getメソッドとsetメソッド 77 |
3.5 数が不確定のパラメータの処理 80 |
3.6 次はクラスレベルの情報と振る舞い 81 |
4章 静的変数と静的メソッド 83 |
4.1 静的変数 83 |
4.2 定数 86 |
4.3 静的メソッド 88 |
4.4 クラスオブジェクト 91 |
4.5 C++,Javaの用語との比較 92 |
4.6 次は関数 92 |
5章 関数 93 |
5.1 パッケージレベルの関数 94 |
5.2 ネストされた関数 97 |
5.3 ソースファイルレベルの関数 98 |
5.4 関数内からの定義へのアクセス 98 |
5.5 値としての関数 99 |
5.6 関数リテラルのシンタックス 99 |
5.7 再帰関数 101 |
5.8 VirtualZooプログラムで関数を使用する 103 |
5.9 次はクラスへ戻ります 108 |
6章 継承 109 |
6.1 継承入門 109 |
6.2 インスタンスメソッドのオーバーライド 113 |
6.3 サブクラス内のコンストラクタメソッド 117 |
6.4 クラスの拡張とメソッドのオーバーライドの防止 122 |
6.5 ビルトインクラスのサブクラス化 123 |
6.6 継承の理論 124 |
6.7 抽象はサポートされない 131 |
6.8 継承を仮想動物園プログラムで使用する 131 |
6.9 いよいよ実行! 141 |
7章 プログラムのコンパイルと実行 143 |
7.1 Flashオーサリングツールを使ったコンパイル 143 |
7.2 FlexBuilderを使ったコンパイル 144 |
7.3 mxmlcを使ったコンパイル 146 |
7.4 コンパイラ制限 147 |
7.5 コンパイル処理とクラスパス 148 |
7.6 strictモードコンパイルとstandardモードコンパイル 148 |
7.7 FlexBuilderでsbndardモードによるコンパイルを有効にする 149 |
7.8 Flashオーサリングツールでsbndardモードによるコンパイルを有効にする 149 |
7.9 お楽しみはこれからです 150 |
8章 データ型と型チェック 151 |
8.1 データ型と型注釈 152 |
8.2 型指定のない変数、パラメータ、戻り値、式 156 |
8.3 strictモードの3つの特殊な場合 157 |
8.4 型注釈を行わなかった場合の警告表示 158 |
8.5 コンパイル時の参照エラーの検出 159 |
8.6 キャスト 160 |
8.7 プリミティブ型への変換 164 |
8.8 デフォルトの変数値 167 |
8.9 nullとundefned 167 |
8.10 VirtualZooでのデータ型 168 |
8.11 次もさらにデータ型 173 |
9章 インターフェイス 175 |
9.1 インターフェイスの例 175 |
9.2 インターフェイスと複数のデータ型のクラス 177 |
9.3 インターフェイスのシンタックスとその使用 178 |
9.4 複数型に関するもう1つの例 182 |
9.5 さらにエッセンスへ 188 |
10章 ステートメントと演算子 189 |
10.1 ステートメント 189 |
10.2 演算子 191 |
10.3 演算子の概要 194 |
10.4 次は情報のリストの管理 200 |
11章 配列 201 |
11.1 配列とは? 201 |
11.2 配列の構造 202 |
11.3 配列の作成 202 |
11.4 配列のエレメントの参照 204 |
11.5 配列の大きさを求める 206 |
11.6 配列へのエレメントの追加 208 |
11.7 エレメントの配列から削除 213 |
11.8 toString()メソッドを使った配列の内容のチェック 215 |
11.9 多次元配列 216 |
11.10 次はイベント 217 |
12章 イベントとイベント処理 219 |
12.1 ActionScriptのイベントの基本 219 |
12.2 ターゲットオブジェクトヘのアクセス 227 |
12.3 リスナーを登録したオブジェクトへのアクセス 227 |
12.4 イベントのデフォルト動作の回避 231 |
12.5 イベントリスナーの優先度 233 |
12.6 イベントリスナーとメモリ管理 235 |
12.7 カスタムイベント 240 |
12.8 ActionScriptのイベントアーチテクチャにおけるイベントタイプの弱点 254 |
12.9 セキュリティ境界を越えたイベント処理 257 |
12.10 次は何? 261 |
13章 例外とエラー処理 263 |
13.1 例外処理のサイクル 263 |
13.2 複数のタイプの例外処理 266 |
13.3 例外のバブリング 276 |
13.4 finallyブロック 281 |
13.5 ネストされた例外 284 |
13.6 try catch finallyの制御フローの変更 288 |
13.7 ビルトインの例外の処理 291 |
13.8 さらに本質的な核心へ 292 |
14章 ガベージコレクション 293 |
14.1 ガベージコレクションに対する適格性 293 |
14.2 イングノメンタル・マークアンドスイープ 296 |
14.3 オブジェクトの内部的な破棄 297 |
14.4 オブジェクトの非アクティブ化 299 |
14.5 ガベージコレクションのデモ 302 |
14.6 ActionScriptの奥地へ 303 |
15章 ダイナミックなActionScript 305 |
15.1 ダイナミックなインスタンス変数 306 |
15.2 インスタンスヘの新しい振る舞いのダイナミックな追加 310 |
15.3 変数とメソッドのダイナミックな参照 312 |
15.4 ダイナミックなインスタンス変数を使った参照テーブルの作成 313 |
15.5 関数を使ったオブジェクトの作成 316 |
15.6 プロトタイプオブジェクトを使ってクラスを補強する 318 |
15.7 プロトタイプチェーン 320 |
15.8 さらに前進! 322 |
16章 スコープ 323 |
16.1 グローバルスコープ 324 |
16.2 クラスのスコープ 325 |
16.3 静的メソッドのスコープ 326 |
16.4 インスタンスメソッドのスコープ 327 |
16.5 関数のスコープ 328 |
16.6 スコープのまとめ 328 |
16.7 内部メカニズムの詳細 329 |
16.8 withステートメントを使ったスコープチェーンの展開 331 |
16.9 次は名前空間 331 |
17章 名前空間 333 |
17.1 名前空間で使用される用語 333 |
17.2 ActionScriptの名前空間 334 |
17.3 名前空間の作成 336 |
17.4 名前空間を使った変数とメソッド定義の修飾 339 |
17.5 修飾された識別子 342 |
17.6 名前空間の動作サンプル 344 |
17.7 名前空間へのアクセス可能性 347 |
17.8 修飾された識別子の可視性 351 |
17.9 修飾された識別子の比較 353 |
17.10 名前空間の債の代入と受け渡し 354 |
17.11 オープンな名前空間とuse namespaceディレクティブ 366 |
17.12 アクセス制御指定子のための名前空間 371 |
17.13 名前空間の実用例 374 |
17.14 最後のコアトピック 387 |
18章 XMLとE4X 389 |
18.1 階層としてXMLデータを理解する 389 |
18.2 E4XでXMLデータを表す 391 |
18.3 E4Xを使ったXMLデータの作成 393 |
18.4 XMLデータヘのアクセス 395 |
18.5 for-each-inとfor-inを使ったXMLの処理 414 |
18.6 子孫へのアクセス 417 |
18.7 XMLデータのフィルタリング 422 |
18.8 XMLツリーのトラバース 425 |
18.9 新しいXML内容の変更と作成 427 |
18.10 XMLデータのロード 438 |
18.11 XML名前空間の使用 439 |
18.12 XMLとXMLListのストリングヘの変換 446 |
18.13 E4Xにおける等価の判定 450 |
18.14 学ぶことはまだまだ 453 |
19章 Flash Playerのセキュリティ制限 455 |
19.1 本章で扱わない事項 456 |
19.2 ローカル領域、リモート領域、リモート区域 457 |
19.3 セキュリティサンドボックスタイプ 458 |
19.4 セキュリティの一般化は危険 460 |
19.5 コンテンツのロード、データとしてのコンテンツへのアクセス、クロススグノプティング、データのロードにかかる制限 461 |
19.6 ソケットのセキュリティ 466 |
19.7 セキュリティの想定例 467 |
19.8 ローカルセキュリティサンドボックスタイプの選択 470 |
19.9 配布者の許可(ポリシーファイル) 474 |
19.10 作成者の許可(allowDomain()) 490 |
19.11 読み込みロード 493 |
19.12 セキュリティ違反の処理 495 |
19.13 セキュリティドメイン 497 |
19.14 セキュリティに関連する開発によく起こる2つの問題 499 |
19.15 第2部へ! 501 |
第2部 表示とインタラクティピティ 503 |
20章 表示APIと表示リスト 505 |
20.1 表示APIの概要 506 |
20.2 表示リスト 510 |
20.3 包含イベント 538 |
20.4 カスタムのグラフィッククラス 551 |
20.5 次はイベントフロー 553 |
21章 表示APIと表示リスト 555 |
21.1 階層的なイベント送出 555 |
21.2 イベント送出の段階(フェーズ) 556 |
21.3 イベントリスナーとイベントフロー 557 |
21.4 イベントフローを優ったコードの一括化 565 |
21.5 現在のイベント段階の検出 568 |
21.6 オブジェクトをターゲットとするイベントを、そのオブジェクトの子孫をターゲットとするイベントと区別する 570 |
21.7 イベント送出の停止 572 |
21.8 イベントの優先度とイベントフロー! 577 |
21.9 表示階層の変異とイベントフロー 577 |
21.10 次は入力イベント 586 |
22章 インタラクティビティ 587 |
22.1 マウス入力のイベント 588 |
22.2 フォーカスイベント 605 |
22.3 キーボード入力のイベント 612 |
22.4 テキスト入力のイベント 623 |
22.5 FlashPlayerレベルの入力イベント 639 |
22.6 プログラムから画面へ 645 |
23章 画面の更新 647 |
23.1 予定された画面の更新 647 |
23.2 イベント後の画面の更新 657 |
23.3 再描画領域 661 |
23.4 さあ次へ! 671 |
24章 プログラムによるアニメーション 673 |
24.1 ループは使わない 673 |
24.2 ENTER_FRAMEイベントを使ったアニメーション 674 |
24.3 TimerEvent.TTMERイベントを使ったアニメーション 680 |
24.4 TimerとEvent.ENTER_FRAMEのどちらを選ぶか 687 |
24.5 汎用的なアニメーター 688 |
24.6 速度にもとづいたアニメーション 692 |
24.7 次は線と塗り 694 |
25章 ベクターによる描画 695 |
25.1 Graphicsクラスの概要 695 |
25.2 直線の描画 696 |
25.3 曲線の描画 699 |
25.4 シェイプの描画 701 |
25.5 ベクターコンテンツの削除 702 |
25.6 サンプル:オブジェクト指向によるシェイプライブラリ 704 |
25.7 線からピクセルヘ 715 |
26章 ビットマッププログラミング 717 |
26.1 BitmapDataとBitmapクラス 717 |
26.2 ピクセルのカラー値 718 |
26.3 新しいビットマップ画像の作成 723 |
26.4 外部にあるビットマップ画像のロード 725 |
26.5 ビットマップを調べる 728 |
26.6 ビットマップの変更 735 |
26.7 グラフィックのBitmapDataオブジェクトヘのコピー 743 |
26.8 フィルタとエフェクトの適用 758 |
26.9 ビットマップが使用したメモリの解放 767 |
26.10 文字、文字、文字 768 |
27章 テキスト表示とテキスト入力 769 |
27.1 テキストの作成と表示 771 |
27.2 テキストフィールドの内容の変更 779 |
27.3 テキストフィールドのフォーマット 782 |
27.4 フォントとテキストのレンダノング 812 |
27.5 行方知れずのフォントとグリフ 826 |
27.6 使用できるフォントの検出 827 |
27.7 使用できるグリフの検出 829 |
27.8 “埋め込みテキスドのレンダノング 830 |
27.9 テキストフィールドの入力 834 |
27.10 テキストフィールドとFlashオーサリングツール 838 |
27.11 ロード中...少しお待ちください 840 |
28章 外部の表示アセットのロード 841 |
28.1 実行時Loaderを使って表示アセットをロードする 842 |
28.2 実行時にアセットをロードするための、コンパイル時の型チェック 862 |
28.3 複数のフレームを持つ.swfアイルのアセットヘのアクセス 871 |
28.4 実行時にロードしたアセットのインスタンス化 875 |
28.5 ソケットを使って実行時に表示アセットをロードする 87 |
28.6 実行時にロードした.swfアセットの削除 889 |
28.7 コンパイル時に表示アセットを埋め込む 891 |
28.8 第3部へ 903 |
第3部 ActionScriptの応用トピック 905 |
29章 ActionScriptとFlashオーサリングツール 907 |
29.1 Flashドキュメント 907 |
29.2 タイムラインとフレーム 908 |
29.3 タイムラインスクリプティング 911 |
29.4 ドキュメントクラス 914 |
29.5 シンボルとインスタンス 918 |
29.6 ムービーグノップシンボルにリンクされるクラス 920 |
29.7 手動で作成したシンボルのインスタンスへのアクセス 924 |
29.8 手動で作成したテキストへのアクセス 931 |
29.9 ActionScriptによるFlashオーサリングシンボルのインスタンス化 933 |
29.10 プログラムで作成した表示オブジェクトのインスタンス名 935 |
29.11 複数のシンボルを単一のスーパークラスにリンクさせる 936 |
29.12 リンクされるクラスに代わる、コンポジションにもとづいたもう1つの方法 938 |
29.13 クラスのプリロード 940 |
29.14 次は刑exフレームワークの使用 943 |
30章 最小限のMXMLアプリケーション 945 |
30.1 一般的な方法 945 |
30.2 実際のUIコンポーネントサンプル 948 |
30.3 友だちと共有 950 |
31章 クラスライブラリの配布 951 |
31.1 クラスのソースファイルの共有 952 |
31.2 クラスライブラリを.swcファイルとして配布する 953 |
31.3 クラスライブラリを.swfファイルとして配布する 958 |
31.4 とはいえ本当に終わりかい? 965 |
付録 仮想動物園 最終版 967 |
索引 986 |