ActionScript ポケットリファレンス [Flash MX 2004/MX/5対応]

サポートページ

この記事を読むのに必要な時間:およそ 0.5 分

ダウンロード

本文中の各記述例に対応したサンプルファイルをダウンロードしてご利用いただけます。ファイルはZIP形式(Windows),SIT形式(Macintosh)で圧縮されておりますので,解凍してご利用ください。

[Windows]

  • chap1.zip
  • chap2_sec1_10.zip
  • chap2_sec11_20.zip
  • chap2_sec21_26.zip
  • chap3.zip
  • chap4.zip
  • [Macintosh]

  • chap1.sit
  • chap2_sec1_10.sit
  • chap2_sec11_20.sit
  • chap2_sec21_26.sit
  • chap3.sit
  • chap4.sit
  • お断り:

    ムービーの完成度を高めるため,また出力結果を見やすくするために,本書の記述例を一部改変している部分があります。あらかじめ,ご了承ください。なお,サンプルファイルに含まれるイラスト,写真,アニメーションの著作権は,著作者である馬場ぎんがまたはAYAに帰属します。これらを著作権者の許可なく再利用することは禁止されています。

    お詫びと訂正(正誤表)

    本書の掲載内容に下記の誤りがございました。読者の皆様,および関係者の方々にご迷惑をおかけしましたことを深くお詫び申し上げます。

    P.70 ふたつめの記述例 最終行

    ボタンアクションのイベントハンドラの閉じ波カッコ(})が脱字

    root上に配置したボタンで呼び出す例(ボタンアクションに記述)
    on(release){ // ボタンがクリックされたら
        target_mc.stop(); // 対象となるムービークリップtarget_mcを停止
        // 20ミリ秒ごとに,カスタムメソッドgoNext()を呼び出す
        // 第3引数はgoNext()に渡す引数(ムービークリップインスタンス)
        nID = setInterval(goNext, 20, target_mc);
      ← 脱字
    root上に配置したボタンで呼び出す例(ボタンアクションに記述)
    

    on(release){ // ボタンがクリックされたら

        target_mc.stop(); // 対象となるムービークリップtarget_mcを停止

        // 20ミリ秒ごとに,カスタムメソッドgoNext()を呼び出す

        // 第3引数はgoNext()に渡す引数(ムービークリップインスタンス)

        nID = setInterval(goNext, 20, target_mc);

    P.125解説 2行目~最終行

    この記述は明らかな誤りです。入れ子になったテキストフィールドがフォーカスされた時点で、親のムービークリップはフォーカスされていません。したがって、イベントハンドラメソッドは動作しません。

    ムービークリップイベントハンドラメソッドはフォーカスがないと動作しません。入れ子になったテキストフィールドへの入力チェックなどに使用法が限定されます(テキストフィールド以外のインスタンスは、マウスポインタが動くとフォーカスが失われます)。
    ムービークリップイベントハンドラメソッドはフォーカスがないと動作しません。そのため、実際には、このイベントハンドラメソッドは使用することができません(テキストフィールド以外のインスタンスは、マウスポインタが動くとフォーカスが失われます)。

    P.126解説 6行目~最終行

    上の項目と同じ

    上の項目と同じ
    上の項目と同じ

    P.128解説 7行目~9行目

    ふたつ上の項目と同じ

    ■にはあらゆるクラスのインスタンスを指定することができます。ただし,ムービークリップインスタンスを指定すると,イベントハンドラメソッドと重複し,フォーカスがあるときは同じイベントを2度受け取るので注意が必要です。通常は,汎用オブジェクトObjectインスタンスを生成して,指定します。←青字部分削除
    ■にはあらゆるクラスのインスタンスを指定することができます。通常は,汎用オブジェクトObjectインスタンスを生成して,指定します。

    P.128解説 最終行

    3つ上の項目と同じ

    のonClipEvent()ハンドラまたはイベントハンドラメソッドを利用します。 ← 青字部分削除
    のonClipEvent()ハンドラを利用します。

    P.169記述例 5行目

    my_lv = new LoadVars(); // LoadVarsインスタンスmy_lvを生成
    my_lv.onLoad = function(bRes){ // onLoadイベントハンドラメソッドの定義
        if(bRes){ // LoadVarsインスタンスmy_lvに変数が格納されたら
            msg_txt.text = "ダウンロードが終了しました"; // 終了メッセージを表示
            delete onEnterFrame; // 親ムービークリップのonEnterFrameを削除 ← 位置が誤り
        }else{ // それ以外はエラーメッセージを表示
            msg_txt.text = "ダウンロード中にエラーが発生しました。";
        }
        delete my_lv; // LoadVarsインスタンスmy_lvを削除
    }
    my_lv = new LoadVars(); // LoadVarsインスタンスmy_lvを生成
    my_lv.onLoad = function(bRes){ // onLoadイベントハンドラメソッドの定義
        if(bRes){ // LoadVarsインスタンスmy_lvに変数が格納されたら
            msg_txt.text = "ダウンロードが終了しました"; // 終了メッセージを表示
        }else{ // それ以外はエラーメッセージを表示
            msg_txt.text = "ダウンロード中にエラーが発生しました。";
        }
        delete onEnterFrame; // 親ムービークリップのonEnterFrameを削除
        delete my_lv; // LoadVarsインスタンスmy_lvを削除
    }

    P.176記述例

    補足説明にしたがって記述すると、URLエンコードされていない文字列をURLデコードするため、unescape()の意味がありません。

    ・ボタンアクションに記述(ボタン1)
    on(release){ // ボタンがクリックされたら
        my_str = "Flash&フラッシュ"; // 文字列を変数my_strに代入
        // 変数my_strの文字列をURLエンコードして[出力]パネルに表示
        trace(escape(my_str));
    }
    ・ボタンアクションに記述(ボタン2。ボタン1をクリックしたあとに実行)
    on(release){ // ボタンがクリックされたら

        // 変数my_strの値をURLデコードして[出力]パネルに表示     trace(unescape(my_str)); ← 引数が誤り }
    ・ボタンアクションに記述(ボタン1)
    on(release){ // ボタンがクリックされたら
        my_str = "Flash&フラッシュ"; // 文字列を変数my_strに代入
        // 変数my_strの文字列をURLエンコードして変数my2_strに代入
        my2_str = escape(my_str);
        // 変数my2_strの値を[出力]パネルに表示
        trace(my2_str);
    }
    ・ボタンアクションに記述(ボタン2。ボタン1をクリックしたあとに実行)
    on(release){ // ボタンがクリックされたら
        // 変数my2_strの値をURLデコードして[出力]パネルに表示
    

        trace(unescape(my2_str)); }

    P.191説明< ひとつめの記述例

    TextField.restrictプロパティに,"-"をそのまま指定することはできません。

    "\\-"とする必要があります。

    ・入力文字の制限

    // my_txtの入力文字を数字(0-9),スペース,ドット,カンマ,四則演算記号(.,+-*/)に制限

    my_txt.restrict = "0-9 .,+-*/"; ← 指定が誤り

    ・入力文字の制限

    // my_txtの入力文字を数字(0-9),スペース,ドット,カンマ,四則演算記号(.,+-*/)に制

    my_txt.restrict = "0-9 .,+\\-*/";

    P.256 記述例 6行目

    演算子の優先順位を変更する閉じカッコ())の位置が誤り

    // ふたつの戻り値からロード済みパーセントを求め,progress_txtに表示

    progress_txt.text = Math.floor(loadSize/totalSize) * 100 + "%";  ← 閉じカッコの位置が誤り

    // ふたつの戻り値からロード済みパーセントを求め,progress_txtに表示

    progress_txt.text = Math.floor(loadSize/totalSize * 100) + "%";

    P.333 記述例 1行目

    スクリプトとコメント文が対応していません

    System.showSettings(0); // ユーザーが前回開いていたパネルを開く

    System.showSettings(); // ユーザーが前回開いていたパネルを開く

    System.showSettings(0); // [プライバシー設定]パネルを開く