ActionScript 第2版 VOLUME 1
――実践プログラミング

[cover photo]
この商品は品切れ再入荷未定です

本書は、世界中のFlashコミュニティーで今や有名となった「ActionScript: The Definitive Guide」第2版の日本語版です。本書の著者は、Flashコミュニティーのみならず、世界中のWebクリエータにおいて非常に強い影響力を持つ「グル」(導師)的存在、Colin Moock氏です。本書の冒頭には、数々の賛辞と「まえがき」としてActionScript創作者Gary Grossman(ゲーリー・グロスマン)の言葉が寄せられています。原書英語版のその密な内容により、日本語版では全2巻となっています。 本書「VOLUME 1」では『実践プログラミング』として、Flashで本格的なプログラミングをしてみたいという方へ、グルColin Moock氏の送る導きの書となっています。

まえがき
はじめに

1章 プログラマではない人のためのやさしいイントロ
    1.1 基本的なフレーズ
        1.1.1 コードの作成
        1.1.2 Flashにあいさつしよう
        1.1.3 ものごとを整理する(変数)
        1.1.4 カーテンの陰の魔法使い(インタプリタ)
        1.1.5 記入漏れにご注意(引数)
        1.1.6 ActionScriptの接着剤(演算子)
        1.1.7 全部をまとめてみる
    1.2 さらなるActionScriptの概念
        1.2.1 Flashプログラム
        1.2.2 式
        1.2.3 重要な2つの文型:条件とループ
        1.2.4 モジュラコード(関数)
        1.2.5 オブジェクトとオブジェクト指向のプログラミング
        1.2.6 ムービークリップインスタンス
        1.2.7 イベントベースの起動モデル
    1.3 マルチ選択クイズの製作
        1.3.1 クイズ概観
        1.3.2 レイヤー構造の作成
        1.3.3 インターフェイスと質問の作成
        1.3.4 クイズの初期化
        1.3.5 フレームラベルを追加する
        1.3.6 回答ボタンのスクリプト
        1.3.7 クイズ終了の作成
        1.3.8 クイズをテストする
    1.4 次へ進む!

2章 変数
    2.1 変数の作成(宣言)
        2.1.1 変数の自動作成
        2.1.2 変数名の規則
        2.1.3 最初は変数の宣言から
    2.2 変数に値を代入する
    2.3 変数の値の変更と検索
        2.3.1 変数に値があるかをチェックする
    2.4 値の型
        2.4.1 自動タイプ決定
        2.4.2 自動変数変換
        2.4.3 手動でデータ型を確認する
    2.5 変数の有効範囲(スコープ)
        2.5.1 タイムラインの変数
        2.5.2 変数のアクセシビリティ(有効範囲)
        2.5.3 ムービークリップ変数とグローバル変数
        2.5.4 異なるタイムラインの変数にアクセスする
        2.5.6 ムービークリップの変数の寿命
        2.5.7 ローカル変数
        2.5.8 有効範囲チェーン
        2.5.9 イベントハンドラの有効範囲
    2.6 外部の変数をロードする
    2.7 応用例
    2.8 次へ進む!

3章 データとデータ型
    3.1 データ対情報
    3.2 データ型によって意味を保持する
        3.2.1 ActionScriptのデータ型
    3.3 データの作成と分類
        3.3.1 自動リテラルタイプ
        3.3.2 複合式の自動タイプ
    3.4 データ型の変換
        3.4.1 自動タイプ変換
        3.4.2 明示的なタイプ変換
        3.4.3 変換の期間
        3.4.4 現存するデータのタイプを調べる
    3.5 プリミティブデータ対コンポジットデータ
    3.6 データのコピー、比較、受け渡し
    3.7 次へ進む!

4章 プリミティブデータ型
    4.1 数字タイプ
    4.2 整数と浮動小数点
    4.3 数字リテラル
        4.3.1 整数リテラル
        4.3.2 浮動小数点リテラル
        4.3.3 数字データ型の特殊な値
    4.4 数字を扱う
        4.4.1 演算子を使用する
        4.4.2 ビルトインの数学関数
    4.5 文字列(ストリング)タイプ
        4.5.1 文字のエンコード
        4.5.2 文字列リテラル
        4.5.3 マルチ言語や特殊記号を入力する
    4.6 文字列を扱う
        4.6.1 文字列をつなげる
        4.6.2 文字列の比較
        4.6.3 ビルトイン文字列関数を使う
        4.6.4 文字インデックス
        4.6.5 文字列の検証
        4.6.6 文字列の一部を取り出す
        4.6.7 文字列の検証とサブストリングの取り出しの組み合わせ
        4.6.8 大文字と小文字の変換
        4.6.9 文字コード関数
        4.6.10 evalで文字列内のコードを起動する
    4.7 ブール型
        4.7.1 ブール値を使ってプリローダーを作成する
    4.8 未定義(undefined)
    4.9 ヌル(null)
    4.10 次へ進む!

5章 演算子
    5.1 演算子の一般的な機能
        5.1.1 演算子と式
        5.1.2 オペランドの数
        5.1.3 演算子の優先順位
        5.1.4 演算子の結合性
        5.1.5 データ型と演算子
    5.2 代入演算子
        5.2.1 演算と代入の結合
    5.3 算術演算子
        5.3.1 加算
        5.3.2 インクリメント(増分)
        5.3.3 減算
        5.3.4 デクリメント(減少)
        5.3.5 乗算
        5.3.6 除算
        5.3.7 除算剰余
        5.3.8 符号反転
    5.4 等価と不等価演算子
        5.4.1 プリミティブデータ型等価
        5.4.2 コンポジット(合成)データ型等価
        5.4.3 等価とデータ型変換
        5.4.4 不等価演算子
        5.4.5 等価演算の使用例
    5.5 厳密な等価と厳密な不等価演算子
    5.6 比較演算子
        5.6.1 より小さい演算子
        5.6.2 より大きい演算子
        5.6.3 より小さいか等しい(以下)演算子
        5.6.4 より大きいか等しい演算子
        5.6.5 比較演算子とデータ型変換
    5.7 Flash 4文字列演算子
    5.8 論理演算子
        5.8.1 論理式とデータ値
        5.8.2 論理和(OR)
        5.8.3 論理積(AND)
        5.8.4 論理否定(NOT)
    5.9 グループ化演算子
    5.10 カンマ演算子
    5.11 void演算子
    5.12 その他の演算子
        5.12.1 typeof演算子
        5.12.2 new演算子
        5.12.3 delete演算子
        5.12.4 配列エレメント/オブジェクトプロパティ演算子
        5.12.5 ドット演算子
        5.12.6 条件演算子
        5.12.7 instanceof演算子
        5.12.8 super「演算子」
        5.12.9 関数呼び出し演算子
        5.12.10 ビット単位演算子
    5.13 次へ進む!

6章 ステートメント
    6.1 ステートメントの種類
    6.2 ステートメントシンタックス
        6.2.1 ステートメントブロック
    6.3 ActionScriptステートメント
        6.3.1 ループと条件ステートメント
        6.3.2 式ステートメント
        6.3.3 var ステートメント
        6.3.4 setステートメント(変数設定)
        6.3.5 関数ステートメント
        6.3.6 関数呼び出しステートメント
        6.3.7 returnステートメント
        6.3.8 withステートメント
        6.3.9 ifFrameLoaded ステートメント
        6.3.10 空ステートメント
    6.4 ステートメントとアクションの違い
    6.5 次へ進む!

7章 条件ステートメント
    7.1 ifステートメント
    7.2 elseステートメント
        7.2.1 条件演算子
    7.3 else ifステートメント
    7.4 switchステートメント
        7.4.1 Flash 5でswitchステートメントをシミュレートする
    7.5 コンパクトな条件のシンタックス
    7.6 次へ進む!

8章 ループステートメント
    8.1 whileループ
    8.2 ループ術語
    8.3 do-whileループ
    8.4 forループ
        8.4.1 forループで複数の反復適用を使用する
    8.5 for-inループ
    8.6 ループを途中で停止させる
        8.6.1 breakステートメント
        8.6.2 continueステートメント
        8.6.3 反復数の上限
    8.7 タイムラインとクリップイベントループ
        8.7.1 空クリップタイムラインループの作成
        8.7.2 onEnterFrame()ムービークリップループフレームレートの影響
    8.8 タイムラインループ以外の手段:setInterval()
    8.9 次へ進む!

9章 関数
    9.1 関数の作成
    9.2 関数の実行
    9.3 情報を関数に渡す
        9.3.1 パラメータのある関数の作成
        9.3.2 パラメータのある関数の呼び出し
    9.4 関数の終了と関数から返される値
        9.4.1 関数の終了
        9.4.2 関数から値を返す
    9.5 関数リテラル
    9.6 関数の有効性と寿命
        9.6.1 関数の有効性
        9.6.2 関数の寿命
    9.7 関数の有効範囲(スコープ)
        9.7.1 関数と有効範囲チェーン
        9.7.2 ローカル変数
    9.8 関数パラメータの再訪
        9.8.1 パラメータの数
        9.8.2 引数オブジェクト
        9.8.3 パラメータを値で渡す場合と参照で渡す場合
    9.9 再帰的な関数
    9.10 ネストした関数
        9.10.1 ネストした関数の有効範囲
    9.11 ビルトイン関数
        9.11.1 ビルトイン関数の有効性
    9.12 オブジェクトとしての関数
        9.12.1 関数を関数に渡す
        9.12.2 変数に関数を保管する
        9.12.3 関数にプロパティとメソッドを付ける
        9.12.4 関数から関数を返す
    9.13 コードの集中化
    9.14 マルチ選択クイズへの再訪
        9.14.1 クイズのコードを関数内で整理する
        9.14.2 クイズのまとめ
    9.15 次へ進む!

10章 イベントとイベントハンドリング
    10.1 同期コード実行
    10.2 イベントベースの非同期コード実行
    10.3 イベントの種類
    10.4 イベントハンドリング
    10.5 イベントハンドラプロパティ
    10.6 リスナーイベント
    10.7 Flash 5のon()とonClipEvent()ハンドラ
        10.7.1 ボタンとムービークリップにイベントハンドラを付ける
    10.8 イベントハンドラの寿命
    10.9 イベントハンドラの有効範囲
        10.9.1 イベントハンドラプロパティとイベントリスナーメソッドの有効範囲
        10.9.2 onClipEvent()ハンドラの有効範囲
        10.9.3 on()ハンドラの有効範囲
        10.9.4 有効範囲のまとめ
    10.10 thisキーワードの値
    10.11 Flash 5スタイルのonClipEvent()実行の順序
    10.12 ムービークリップイベントハンドラを複製する
    10.13 updateAfterEvent()で画面をリフレッシュする
    10.14 コードの再利用
    10.15 ダイナミックムービークリップイベントハンドラ
    10.16 イベントハンドラを応用する
    10.17 次へ進む!

11章 配列
    11.1 配列とは?
    11.2 配列の構造
        11.2.1 配列エレメント
        11.2.2 配列エレメントインデックス
        11.2.3 配列サイズ
    11.3 配列を作成する
        11.3.1 配列リテラル
        11.3.2 配列コンストラクタ
    11.4 配列エレメントを参照する
        11.4.1 エレメントの値を取り出す
        11.4.2 エレメントの値を代入する
    11.5 配列の大きさを決定する
    11.6 名前の付いた配列エレメント
        11.6.1 名前の付いた配列エレメントを作成して参照する
        11.6.2 名前の付いたエレメントを削除する
    11.7 配列にエレメントを加える
        11.7.1 直接新しいエレメントを加える
        11.7.2 lengthプロパティで新規エレメントを追加する
        11.7.3 配列メソッドで新規エレメントを追加する
    11.8 配列からエレメントを除去する
        11.8.1 delete演算子を使用して番号の付いたエレメントを除去する
        11.8.2 lengthプロパティでエレメントを削除する
        11.8.3 配列メソッドでエレメントを除去する
    11.9 一般的な配列操作ツール
        11.9.1 reverse()メソッド
        11.9.2 sort()とsortOn()メソッド
        11.9.3 slice()メソッド
        11.9.4 join()メソッド
        11.9.5 toString()メソッド
    11.10 オブジェクトとしての配列
    11.11 多次元配列
    11.12 マルチ選択クイズ、テイク3
    11.13 次へ進む!

12章 オブジェクトとクラス
    12.1 オブジェクトの構造
    12.2 オブジェクトを具体化する
    12.3 オブジェクトプロパティ
        12.3.1 プロパティを参照する
        12.3.2 for-inループを使ってオブジェクトのプロパティを反復する
    12.4 オブジェクトメソッド
    12.5 クラスとオブジェクト指向のプログラミング
        12.5.1 オブジェクトクラス
        12.5.2 クラスを作成する
        12.5.3 継承:スーパークラスとサブクラス
        12.5.4 スクリーンにボールを表示する
    12.6 孤立したオブジェクトインスタンスを結合性配列として使用する
        12.6.1 オブジェクトリテラル
    12.7 全能のプロトタイプチェーン
        12.7.1 __proto__プロパティ
        12.7.2 コンストラクタプロパティ
        12.7.3 標準的なスーパークラス代入での高度な問題
        12.7.4 テストはありますか?
    12.8 ActionScriptのビルトインクラスとオブジェクト
        12.8.1 ビルトインクラス
        12.8.2 ビルトインオブジェクト
        12.8.3 こつを学ぶプロパティを追加する
    12.9 OOP クイックリファレンス
        12.9.1 いくつかのOOPのヒント
        12.9.2 OOPアプリケーションテンプレート
    12.10 さらに追求するトピックス
        12.10.1 カスタムイベント
        12.10.2 デザインパターンとUML
    12.11 ネームスペースをシミュレートする
    12.12 マルチ選択クイズ、OOP流
    12.13 次へ進む!

13章 ムービークリップ
    13.1 ムービークリップの「オブジェクト性」について
        13.1.1 MovieClipクラス
    13.2 ムービークリップのタイプ
        13.2.1 メインムービー
        13.2.2 通常のムービークリップ
        13.2.3 コンポーネント
        13.2.4 プロセスクリップ
        13.2.5 スクリプトクリップ
        13.2.6 リンククリップ
        13.2.7 シードクリップ
    13.3 ムービークリップの作成
        13.3.1 ムービークリップシンボルとインスタンス
        13.3.2 インスタンスの作成
        13.3.3 ムービークリップインスタンス名
        13.3.4 外部のムービーや画像を読み込む
    13.4 ムービーとインスタンスのスタック順
        13.4.1 ムービークリップの深度
        13.4.2 内部のレイヤースタック
        13.4.3 プログラミングによって生成するコンテンツスタック
        13.4.4 .swfドキュメントの「_level」スタック
        13.4.5 スタックと実行順序
    13.5 インスタンスとメインムービーの参照
        13.5.1 インスタンス名の使用
        13.5.2 現在のインスタンスやムービーを参照する
        13.5.3 ネストされたインスタンスへの参照
        13.5.4 _rootと_levelnによってメインムービーを参照する
        13.5.5 ターゲットパスの挿入によるオーサリングインスタンスの参照
        13.5.6 クリップオブジェクトへのダイナミックな参照
    13.6 クリップインスタンスとメインムービーを除去する
        13.6.1 unloadMovie()をインスタンスやレベルと共に使用する
        13.6.2 removeMovieClip()を使用してインスタンスを削除する
        13.6.3 手動で作成したインスタンスを手動で除去する
    13.7 メソッド対グローバル関数のオーバーラップに関する問題
    13.8 ランタイムにムービークリップ内で描画する
    13.9 ムービークリップをボタンとして使用する
    13.10 入力フォーカスとムービークリップ
    13.11 クリップで時計を製作する
    13.12 次に進む!

14章 ムービークリップサブクラスとコンポーネント
    14.1 ライブラリシンボルの作成
    14.2 サブクラスコンストラクタの作成と実行
    14.3 MovieClipサブクラスの代入
    14.4 サブクラスコードとライブラリシンボルをパッケージにする
    14.5 ムービークリップコンポーネントを作成する
        14.5.1 コンポーネントのグラフィックをパッケージする
        14.5.2 コンポーネントテンプレート
    14.6 MovieClipサブクラス 
    14.7 まとめ
    14.8 次へ進む!

15章 表記法
    15.1 ホワイトスペース(空白文字)
    15.2 ステートメントターミネーター(セミコロン)
    15.3 コメント
    15.4 予約語
    15.5 識別子
    15.6 大文字と小文字
    15.7 次へ進む!

16章 ActionScriptオーサリング環境
    16.1 アクションパネル
        16.1.1 編集モード
    16.2 スクリプトをフレームに追加する
    16.3 ボタンにスクリプトを追加する
    16.4 ムービークリップにスクリプトを加える
    16.5 コードはどこに?
    16.6 生産性
    16.7 ActionScriptコードを外部ファイルにする
        16.7.1 ファイルから読み込み(オーサータイム読み込み)
        16.7.2 #include(コンパイル時の読み込み)
        16.7.3 共有ライブラリ(ランタイムでの読み込み)
    16.8 コンポーネントの定義
        16.8.1 標準のインターフェイスでコンポーネントを作成する
        16.8.2 カスタマイズインターフェイスのあるコンポーネントを作成する
        16.8.3 プロフェッショナルコンポーネント分配機能
        16.8.4 コンポーネントの使用
    16.9 次へ進む!

17章 Flashフォームの作成
    17.1 Flashフォームのデータサイクル
        17.1.1 Flashのクライアントサイドユーザ入力
        17.1.2 データをサーバサイドでプロセスするために送信する
        17.1.3 データハンドリングアプリケーション
        17.1.4 Flashが結果を受信して解釈する
    17.2 Flash入力フォームを作成する
        17.2.1 インターフェイスを作成する
        17.2.2 サーバにデータを送信する
        17.2.3 echo.pl Perlスクリプト
        17.2.4 サーバから結果を受信する
    17.3 次へ進む!

付録A 資料
    A.1 ActionScriptの本
    A.2 ActionScriptとプログラミングのウェブサイト
    A.3 ECMA-262の資料
    A.4 オブジェクト指向プログラミング
    A.5 SWFファイルフォーマット
    A.6 文字のエンコードとユニコード

付録B ラテン-1文字の範囲とキーコード

付録C 下位互換性とプレイヤービルドの更新
    C.1 Flash 6のActionScriptにおける最良の実践法
    C.2 プレイヤービルドの更新
        C.2.1 Flash Player 6の更新、リリース65
        C.2.2 Flash Player 6の更新、リリース47
        C.2.3 Flash Player 6の更新、リリース40
        C.2.4 Flash Player 6の更新、リリース29
        C.2.5 Flash Player 5の更新、リリース41と42
    C.3 Flash 4対Flash 5(またはそれ以降)
        C.3.1 ムービークリップの制御
        C.3.2 Flash 4対Flash 5の変数へのアクセスシンタックス
        C.3.3 Flash 4スタイルのサブルーチンにおけるローカル変数
        C.3.4 Flash 4からFlash 5へのデータ型の変換
        C.3.5 Flash 4のイベント
        C.3.6 Flash 4対Flash 5の文字列演算子
        C.3.7 Tell Targetの将来は?

付録D ECMA-262やJavaScriptとの違い

付録E テキストフィールドのHTMLサポート
    E.1 テキストフィールドでのHTMLタグのサポート
        E.1.1 <B>(太字)
        E.1.2 <I>(斜体)
        E.1.3 <U>(下線)
        E.1.4 <LI>(リストアイテム)
        E.1.5 <FONT>(フォント制御)
        E.1.6 <P>(段落改行)
        E.1.7 <BR>(改行)
        E.1.8 <A>(アンカーまたはハイパーテキストリンク)
        E.1.9 <TEXTFORMAT>(フォーマットのサポート)
        E.1.10 <TAB>(タブ文字)
    E.2 構成文字サポート
    E.3 属性の値の引用
    E.4 認知しないタグと属性
    E.5 出力と入力にHTMLを使用する
    E.6 HTMLリンクからJavaScriptを起動する
    E.7 HTMLリンクからActionScript関数を呼び出す

付録F GETとPOSTのサポート
    F.1 ブラウザベースのGETとPOSTのサポート
    F.2 スタンドアローンプレイヤーのGETとPOSTのサポート

付録G Flash UIコンポーネント概要
    FCheckBox
    FComboBoxとFListBox
    FPushButton
    FRadioButtonとFRadioButtonGroup
    FScrollBar
    FScrollPane
    FStyleFormat

付録H Flashムービーをウェブページに埋め込む
    H.1 <OBJECT>タグの属性
    H.2 <EMBED>タグの属性
    H.3 <OBJECT>と<EMBED>タグ共通の属性
    H.4 HTML属性に影響するランタイムアクセス

索引

Feedback

皆さんのご意見をお聞かせください。ご購入いただいた書籍やオライリー・ジャパンへのご感想やご意見、ご提案などをお聞かせください。より良い書籍づくりやサービス改良のための参考にさせていただきます。
[feedbackページへ]