ActionScript

Tips

知っているのと知らないのとでは、一味違う。そんなスクリプト系Tipsを集めました。

  • SWFファイルの外部読込みとMovieClip.attachMovie()メソッド

    リンケージ設定された[ライブラリ]のMovieClipシンボルは、SWFに関連づけられるようです。

    >>全文へ

  • パネルのドッキングを避ける

    パネルのタイトルバーをドラッグして他のパネルに近づけると、ドロップゾーンがハイライトして、そのパネルにドッキングすることができます(図001)。けれど、ドッキングせずに、その位置でフローティング状態にしておきたい場合があります。

    図001■パネルのドッキング
    FF0707311_001.gif

    >>全文へ

  • FileReference.onUploadCompleteDataイベント

    Flash CS3では、どうしてもActionScript 3.0に目を奪われがちです。でも、2.0についても、一部追加された機能はあります。

    >>全文へ

  • [AS3] URLエンコード

    ActionScript 3.0では、escape()関数の動作が2.0/1.0とは一部変わりました。たとえば、"F-siteセミナー"という文字列をescape()関数でURLエンコードすると、ActionScript 3.0と2.0/1.0の結果はそれぞれつぎのような文字列になります。

    【ActionScript 3.0】
    F-site%u30BB%u30DF%u30CA%u30FC

    【ActionScript 2.0/1.0】
    F%2Dsite%E3%82%BB%E3%83%9F%E3%83%8A%E3%83%BC

    >>全文へ

  • 【GAINER】FLASHでリアルデバイス


    むらけんです。こんにちわ。 2月のF-siteセミナーに来ていただいた方は記憶にあるかと思いますが、タナカミノルさんに、ちょろっと紹介していただいた[GAINER]というものがありましたね。参考:[セミナーレポート]

    >>全文へ

  • [papervision3d]*Step2*GeometryObject3Dクラス


    むらけんです。
    いや~遂にCS3日本発売日も来月に決定し、米国版のトライアウト版も先日ダウンロード可能となりました。そして、明日はF-siteセミナーです。160人会場で立ち見が出そうな位大入です。来られる方はよろしくです。
    さて、papervision3d第三回です。
    今回からは早速ですがソースファイルはCS3版とさせていただきます。

    >>全文へ

  • [papervision3d]*Step1*マウスイベント等を付けたりしてみる。


    むらけんです。
    前回はpapervision3dを利用した、シンプルなサンプルをご紹介しましたが、今回はもう少し立ち入ってみましょう。

    >>全文へ

  • [papervision3d]*Step0*入門編-HelloWorld-


    お久しぶりです。むらけんです。
    さて、世間を騒がせているpapervision3dですが、僕もAS3の壁を乗り越えてやっと弄り始めました。
    大分理解出来ましたので、自分を含めAS1.5大好きな人にも抵抗の少ないフレームアクションベースでご紹介していきたいと思います。

    >>全文へ

  • [AS3] 配列(Array)にキャストする

    あるデータ型の値を異なるデータ型として用いる場合には、データ型の「明示的な変換」(キャスト)を行います。配列すなわちArray型へのキャストには、別途注意すべき点があります。

    >>全文へ

  • コンポーネントにマウスイベントを追加する

    Flash 8のUser Interfaceコンポーネントは、マウスイベントの種類が少ないです。たとえば、Buttonコンポーネントでも、マウスイベントとしてはclickしかありません(図001)。User Interfaceコンポーネントに、他のマウスイベントを追加してみましょう。

    図001■Buttonコンポーネントのイベント
    FF070221_001.gif

    >>全文へ

  • [AS3] オーサリング時に配置されたインスタンスの型指定

    ActionScript 3.0では、オーサリング時に予め配置してあるインスタンスについての型指定が、2.0とは変わっているようです。

    >>全文へ

  • [AS3] ActionScript 3.0で外部テキストファイルを読込む

    ActionScript 3.0では、外部テキストファイルを読込むLoadVarsクラスがなくなります[*1]。その替わりに用意されたのが、flash.net.URLLoaderクラスです[*2]。URLLoaderクラスを使った外部テキストファイルの読込みについてご紹介します。

    >>全文へ

  • 汎用モザイクイン BitmapDataクラス

    FLASH8が出て少しした頃、Blurフィルタを用いて、ブラーインの演出というものが流行りましたね。 最近BitmapDataクラスを用いた、モザイクインをよく見かけるようになってきたので、汎用できるようにスクリプティングしてみました。

    >>全文へ

  • [AS3] Stringはプリミティブ値かオブジェクトか

    文字列は単純な値でしょうか、それともオブジェクトでしょうか。実は少し込入った仕組みになっていて、しかもActionSctipt 1.0/2.0と3.0とで仕様が変わっています。

    >>全文へ

  • 空のイベントハンドラメソッドは負荷がかかるか?

    mixiでこんな質問がありました。イベントハンドラメソッドに空のfunction(関数)を設定したとき、処理の負荷は増えるでしょうか? 理屈で考えると、Flash Playerからメソッドの呼出しが生じる分、CPUが使われるように思われます。簡単に、実験してみました。

    >>全文へ

  • タイムライン上のvar宣言

    変数に初期値を与えるとき、ふたつの書き方があります。これらは何か違いがあるのでしょうか?

    i = 0;

    var i = 0;

    >>全文へ

  • [AS3] ビットマップをダイナミックに配置する

    [ライブラリ]のビットマップ(図001)を、ActionScript 3.0でダイナミックに配置してみましょう。

    図001■[ライブラリ]に格納されたビットマップ
    FF0608101_005.gif

    >>全文へ

  • [AS3] doubleClickを受取る

    ActionScript 3.0では、イベントを取得するには、イベントリスナーへの登録が必要になりました。また、マウスイベントには、doubleClickが加わりました。ところが、普通のクリックは受取れるのに、同じ処理でダブルクリックを検出することができません。

    >>全文へ

  • [AS3] importの使い方が変わった

    ActionScript 3.0では、import指示子の使い方が、ActionScript 2.0と変わりました。

    >>全文へ

  • [AS3] new演算子でビジュアルオブジェクトをつくる

    プログラムでインスタンスをつくるには、「new クラス名()」というかたちでコンストラクタを呼び出すのが原則だ。ところが、MovieClipやTextFieldなどは、コンストラクタでインスタンスを生成することができず、MovieClip.createEmptyMovieClip()あるいはMovieClip.createTextField()などといった特別なメソッドを使う必要があった。ActionScript 3.0では、これらも原則どおりコンストラクタで作成することができる

    MYCOMジャーナル「AdobeのFlash担当者に訊く - Flash Player 9とActionScript 3.0何が変わる?」注[*5]

    >>全文へ

  • 深度の管理 − DepthManager

    [ライブラリ]にコンポーネントがあるとき、メインタイムライン(_root)の深度はDepthManagerクラスで管理することが考えられます。

    >>全文へ

  • XY座標の最小単位

    たとえば、メインタイムライン(_root)に、MovieClipインスタンスmy_mcを配置します。そして、[プロパティ]インスペクタで、X座標に12.3456789(ピクセル)という値を入力すると、どうなるでしょう?(図001)

    図001■[プロパティ]インスペクタでX座標に小数値を設定
    FF060426_001.gif

    >>全文へ

  • OnEnterFrameBeaconクラスを使う

    Flash MX 2004およびFlash 8には、OnEnterFrameBeaconというクラスがあります。このクラスのOnEnterFrameBeacon.init()というメソッドを呼出すと、MovieClipにリスナーオブジェクトが登録でき,MovieClip.onEnterFrameイベントを受取れるようになります。

    >>全文へ

  • Flash Player 8で書出したSWFの静止テキストが表示されない

    Flash 8はフィルタが追加されたり、テキストのレンダリングエンジンの性能もアップするなど、表現力が向上しました(「次世代Flash − 8ball」参照)。しかし、そのテキストの表示について、物騒なTechNoteがアップされました。

    Flash TechNote「Static text published for Flash Player 8 does not appear on Flash Player 7」より:
    Macromedia Flash Player 8向けにパブリッシュされたSWF内の静止テキストは、Flash Player 7(以前)で見ると表示されません("Static text in a SWF file published for Macromedia Flash Player 8 does not appear if viewed in Flash Player 7.")。

    >>全文へ

  • 意外と使えないMovieClip.onData

    Flash MX 2004オンラインヘルプによれば、「ムービークリップがMovieClip.loadVariables()またはMovieClip.loadMovie()の呼び出しからデータを受け取ったときに呼び出されます」。しかし、これは嘘です。MovieClip.loadMovie()メソッドを使った場合、MovieClip.onDataハンドラは呼出す方法がありません。

    >>全文へ

  • PopUpManager.createPopUp()の戻り値の型

    PopUpManager.createPopUp()メソッドは、「コンポーネント辞書」(オンラインヘルプ「Flashコンポーネントガイド」)によれば、「作成されたウィンドウへの参照」つまりWindowインスタンスを返します。ところが、戻り値をWindowsクラスで型指定した変数に代入すると、コンパイルエラーが発生します。

    >>全文へ

  • 未定義変数をisNaN()関数で調べると

    パブリッシュしたSWFのFlash Playerのバージョンによって、返される値が異なります。

    >>全文へ

  • Macromedia Flash MX 2004 Developerサンプル問題[解答]

    Macromedia Flash MX 2004 Developerサンプル問題の解答です。解答はとくに日本語訳する必要もないものなので、気になった部分にコメントをつけてみしました。

    >>全文へ

  • Macromedia Flash MX 2004 Developerサンプル問題

    Macromedia Flash MX 2004 Developerの認定試験というものがあります。サンプル問題が英文のままなので、ざっと日本語訳してみました。

    >>全文へ

  • トラブルの「捜査手順」

    殺人事件の捜査は、まず被害者の特定に始まり、つぎに犯行時刻を推定し、そして容疑者のアリバイを洗います。トラブルシューティングの手順も、これと同じ考え方で進めることができます。

    >>全文へ

  • Flash Playerの旧バージョン/リビジョン

    Flash Playerの古いバージョンを、テストのため必要とすることがあります。Macromediaでは、古いバージョンのFlash Playerを、テスト用に公開しています。

    >>全文へ

  • コンポーネントのアニメーションをカスタマイズ

    英語版が公開されたFlash MX 2004 Updater 7.2は、コンポーネント関連ドキュメントが充実しました。その中には、コンポーネントのアニメーションをカスタマイズする方法も、紹介されています([Help] > [Using Components] > [Customizing Components] > [Using styles to customize component color and text] > [Customizing component animations])。

    >>全文へ

  • Flashのフレームレートを正常に[Internet Explorer 6/Window]

    こんなレポートを見つけました。

    「Internet Explorer 6.0/Windowsで、wmode属性を設定すると、スピードがアップする」(3へぇ)

    >>全文へ

  • イベントハンドラメソッドはdeleteで消せ!

    Flash MXから実装されたイベントハンドラメソッドの定義をクリアしたいとき、delete演算子を使わずに、undefinednullを代入する人がいます。イベントハンドラメソッドは、delete演算子で削除した方が安全です。

    >>全文へ

  • System.capabilities.languageの英語システム上の戻り値

    Flash MX 2004の「ActionScript辞書」によれば、System.capabilities.languageの英語システム上の戻り値は、"en"です。Flash Player 6では、この値が異なります。

    >>全文へ

  • 認知されたLoadVars.onData

    Flash MX 2004のオンラインヘルプに、LoadVars.onDataメソッドが正規に掲載されました。

    >>全文へ

  • onClipEvent(load)で自分自身にloadMovieしてはいけません

    onClipEvent (load)ハンドラ内で、自分自身(this)をターゲットとしてMovieClip.loadメソッドを実行してはいけません。外部ファイル(SWFまたはJPEG)がロードされると、また新たにloadイベントが発生するので、永久に処理が終わらないからです。

    と、これだけで説明はよいのですが、AYAさんにウケたので、その状況をこんな風にたとえてみました。

    >>全文へ

  • ショートカットの考察

    ショートカットキーは、覚えておくと便利なものがいろいろあります。しかし、なかなか気づかなかったり、仕様が微妙に変わったり、いわれないとわからない部分も少なくありません。思いつくまま、ショートカットキーに関わる小ネタをご紹介します。

    >>全文へ

  • Flash MX 2004でハマりがちな問題点

    Flash MX 2004でスクリプトを書いたとき、MXからの変更点でハマりがちな項目に触れておきます。

    >>全文へ

  • ストリングの論理値評価

    ストリングの評価はfalseが原則
    ifアクションやBoolean関数あるいはBooleanオブジェクトで、ストリングの論理値を調べる場合があります。ストリングは、Number関数で数値に変換できる0以外の数字であればtrueと評価されます。他のストリングの論理値は、falseです(「ActionScript辞書」のBoolean(オブジェクト)の項には、「関数は数値(x)が0でなければtrueを返し」とありますが、意味がわかりません。誤訳でしょう)。

    >>全文へ

  • if (condition=1)

    いきなり問題です
    [1]つぎのActionScriptの問題点は何でしょう? [2]実行するとどのような結果になりますか?

    if (condition=1) {
       trace (true);
    } else {
       trace (false);
    }

    >>全文へ

  • 演算結果が半端な値になる(丸め誤差)

    Flashのバグ?
    以下のステートメントを実行してみましょう。0.01ではなく、0.00099999999999989というような半端な値が返ります。

    >>全文へ

インタラクティブな演出をしたいときには、ActionScriptが必須。Flashのバージョンが上がるごとに多機能になってきましたが、覚えることも増えました。まずは基本から始めましょう。