ActionScript

野中ゼミ

野中文雄による、リファレンス形式の記事です(FumioNonaka.comより抜粋)。

  • 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

    >>全文へ

  • [AS3] ()を使った式が戻り値に指定された関数を[自動フォーマット]すると

    [自動フォーマット]が、またやらかしてくれました。

    つぎのフレームアクション(スクリプト001)を、[自動フォーマット]してから、[ムービープレビュー]で確認すると、答えとしていくつが[出力]されるでしょう。

    スクリプト001■functionの戻り値に括弧()のある式を指定
    function xTest(a:Number, b:Number, c:Number):Number {
      return (a + b) * c;
    }
    trace(xTest(1, 2, 3));

    >>全文へ

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

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

    >>全文へ

  • [AS3][Windows] クラスが見つからない・定義されていないというエラーが出る

    Flash Professional 9 ActionScript 3.0 PreviewのWindows版で、クラスの定義もActionScript (AS)ファイルの保存場所も正しいはずなのに、コンパイルエラーを発生する場合があります。

    >>全文へ

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

    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クラスを使った外部テキストファイルの読込みについてご紹介します。

    >>全文へ

  • [AS3] 静的プロパティと同名のインスタンスプロパティ

    ActionScript 3.0のクラスでは2.0とは異なり、静的プロパティと同名のインスタンスプロパティを定義できることが明記されています

    >>全文へ

  • イリュージョン − 消えるif条件ブロック内の関数

    少々マニアックな現象です。if条件のステートメントブロック{}内に設定した関数(function)が、こつ然と消えてなくなります。

    >>全文へ

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

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

    >>全文へ

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

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

    >>全文へ

  • Flash MX 2004ヘルプ正誤表

    Flash MX 2004オンラインヘルプの勝手に(非公式)正誤表です。

    >>全文へ

  • delete

    演算子; オペランド[*1](parameter)の参照に指定されたオブジェクトまたは変数を破棄します。オブジェクトが正しく削除できれば、'true'を返します。そうでなければ、値として'false'が返されます。この演算子は、スクリプトで使用されたメモリを解放するのに役立ちます[*2]。'delete'は演算子ですが、通常つぎのようなステートメントとして用いられます。

    >>全文へ

  • Alert.show()

    メソッド(クラス); クラスの(静的)メソッドで、警告ウィンドウを表示し、そこにメッセージのほか、オプションとしてタイトルやボタン、アイコンが加えられます。警告のタイトルは、ウィンドウ上端に表示され、行は左寄せになります。アイコンは、メッセージテキストの左側に表示されます。ボタンは、メッセージテキストとアイコンの下側中央に表示されます。

    >>全文へ

  • Object.watch()

    メソッド; イベントハンドラ([訳者註] コールバック関数)を登録して、指定したActionScriptオブジェクトのプロパティが変更されたときにそれを呼出します。プロパティが変更されると、コールバック関数はmyObjectをプロパティの帰属するオブジェクトとして呼出されます。新規の値は、'Object.watch()'メソッドから返す必要があります。戻り値がないと、監視しているオブジェクトプロパティには'undefined'が値として設定されます。

    >>全文へ

  • ECMA-262第4版準拠

    Flash Player 7では一部実装が変更され、ECMA-262第4版提案(ECMA-262 Edition 4 proposal)への準拠をより強めています。ActionScript 2により可能になったクラスベースのプログラミング技術(New object-oriented programming model参照)に加えて、追加された機能もあり、一部の動作が変更されています。また、Flash Player 7にパブリッシュする場合でActionScript 2.0を使用しているときは、あるオブジェクト型を別の型にキャストすることも可能です[*1]。

    >>全文へ

  • System.capabilities.isDebugger

    プロパティ; Flashムービーを再生しているPlayerが、デバッグ版なら'true'、リリース版なら'false'を返します。

    >>全文へ

  • Stage.onResize

    コールバックメソッド; Flashムービーのサイズが変更されたことを知らせます。このイベントを使うと、ムービーのサイズが変わったときに、ステージ上のオブジェクトをレイアウトし直す'function'を作成することができます。

    >>全文へ

  • FScrollPane.setScrollContent

    メソッド; ScrollPaneに表示するMovieClipを指定します。このメソッドを呼出すと、オーサリング時に設定したScroll Contentパラメータの値は書替えられます。

    >>全文へ

  • Object.registerClass

    メソッド; ムービークリップシンボルを、ActionScriptのオブジェクトクラスに帰属させます。シンボルが存在しないと、Flashはストリング識別子とオブジェクトクラスとの間に帰属関係を設定します。

    >>全文へ

  • MovieClip.onKeyUp

    イベントハンドラメソッド(訳者註: 原文は"event"); キーが放されると呼出されます。onKeyUpメソッド(訳者註: 原文は"event")は、引数なしに呼出されます。'Key.getAscii'や'Key.getCode'メソッドを用いることにより、どのキーが押されたのかを判別することができます。イベントハンドラメソッドには、イベントが発生したときに実行する'function'(関数)を定義する必要があります。

    >>全文へ

  • MovieClip.onKeyDown

    イベントハンドラ(訳者註: イベントハンドラメソッド); MovieClipにキー入力のフォーカスがあり、キーが押されると呼出されます。onKeyDownメソッド(訳者註: 原文は"event")は、引数なしに呼出されます。Key.getAsciiKey.getCodeメソッドを用いることにより、どのキーが押されたのかを判別することができます。イベントハンドラメソッドには、イベントが発生したときに実行するfunction(関数)を定義する必要があります。

    >>全文へ

  • Object.constructor

    プロパティ; オブジェクト(インスタンス)の初期化に使用されたコンストラクタ関数を参照します。

    コンストラクタがプロトタイプオブジェクトを生成すると、その参照が'prototype'プロパティに格納されます。そして、プロトタイプオブジェクトには、'constructor'プロパティが設定されます。'constructor'プロパティは、生成されたプロトタイプオブジェクトのコンストラクタ関数を参照します。

    >>全文へ

  • Function.prototype

    プロパティ; 関数がコンストラクタとして実行されると、そのクラスが継承すべきプロパティやメソッドを備えたプロトタイプオブジェクトが自動的に生成されます。'prototype'プロパティは、そのプロトタイプオブジェクトを参照します。コンストラクタ関数から作成されたクラスのインスタンスは、プロトタイプオブジェクトからすべてのプロパティとメソッドを継承します。

    >>全文へ

  • Function.call

    メソッド; Functionオブジェクトに帰属する'function'を呼出します。ActionScriptのあらゆる'function'は、Functionオブジェクトに帰属します。したがって、すべての'function'が'call'メソッドをサポートします。

    >>全文へ

  • MovieClip.loadVariables

    メソッド; 外部ファイルからデータを読込んで、MovieClipの変数に値を設定します。外部ファイルは、CGIスクリプトやアクティブサーバーページ(ASP)、PHPスクリプトで生成されたテキストファイルでも構いません。また、変数はいくつでも指定できます。

    >>全文へ

  • Function.apply

    メソッド; ActionScriptから呼出す'function'に対して、使用する'this'の値を指定します。このメソッドは、呼出した'function'に渡す引数も、指定することができます。'apply'はFunctionオブジェクトのメソッドなので、ActionScript中のすべての'function'のメソッドでもあります。

    >>全文へ

  • _global

    識別子; グローバル変数やグローバルなオブジェクト、クラスを作成します。たとえば、ライブラリを作成してグローバルActionScriptオブジェクトにすると、MathやDateオブジェクトと同じように扱われることになります。タイムラインやローカルに設定された変数や'function'とは異なり、グローバルの変数や'function'は、どのタイムラインやFlashムービーのスコープからでも参照できます。ただし、同名の識別子があって内部スコープが遮断される場合を除きます。

    >>全文へ

  • SharedObject.flush

    メソッド; ローカルに存在している共有オブジェクトを、ただちにローカルファイルに書込みます。このメソッドを使用しなければ、Flashは共有オブジェクトをその処理が終了するときににファイルへ書込みます。処理の終了とは、SWFムービーが終了するか、共有オブジェクトに対する参照がすべてなくなって、ガーベージコレクションによりオブジェクトが削除されるときをいいます。

    >>全文へ

  • SharedObject.getLocal

    メソッド; ローカルに保持されているSharedObjectの参照を返します。オブジェクトは、現在のクライアントのみが使用できます。

    >>全文へ

  • super

    演算子: 第1シンタックス形式は、オブジェクトのメソッド本文でスーパークラスの側のメソッドを呼出すために使われます。そして、オプションとして引数(引数1... 引数N)をスーパークラスのメソッドに渡します。この形式は、スーパークラスのメソッドに対して追加的な処理を行うサブクラスのメソッドを作成し、かつ本来の処理を実行するスーパークラスのメソッドを呼出したいときに有効です。

    >>全文へ

  • SharedObject.data

    読取り専用プロパティ; オブジェクトの'data'プロパティには、任意の名前の属性とその値をセットにして設定できます。各属性の値には、データ型の制限はとくにありません。ArrayやNumber、Booleanなども使用可能です。たとえば、以下のステートメントは、変数"profile_so"に格納したSharedObjectに、さまざまなデータ型の値を属性として設定しています。

    >>全文へ

  • asfunction

    プロトコル; HTMLテキストフィールドのURLに関する特別のプロトコル。HTMLテキストフィールドでは、テキストはHTMLのAタグを使って、ハイパーリンクにすることができます。AタグのHREF属性には、HTTPやHTTPS、FTPなどの標準プロトコルのURLが指定できます。'asfunction'プロトコルは、Flash専用の追加プロトコルで、リンクからActionScriptの'function'を実行することができます。

    >>全文へ

  • unloadMovieNum

    アクション; ロードされたムービーをFlash Playerから削除します。

    >>全文へ

  • loadVariablesNum

    url 変数が置かれている絶対または相対URL。ムービーにWebブラウザでアクセスするとき、URLのホストはムービー自身と同じサブドメインになければなりません。

    >>全文へ

  • loadMovieNum

    url ロードするSWFファイルの絶対または相対URL。相対パスは、レベル0のSWFファイルに対して相対的でなければなりません。URLは、ムービーが現在存在しているURLと同じサブドメインになければなりません。Flashスタンドアロンプレーヤーで使用したり、Flashオーサリング環境のムービープレビューモードでテストするには、すべてのSWFファイルが同じフォルダになければならず、ファイル名にはフォルダやディスクドライブの指定を含めることはできません。

    >>全文へ

  • fscommand

    アクション; FlashムービーとスタンドアロンFlash Player、あるいはFlahムービーとFlah PlayerをサポートするWebブラウザなどの プログラムとの間の通信を可能にします。また、'fscommand'アクションは、メッセージをMacromedia DirectorやVisual Basic、Visual C++、その他ActiveXコントロールをサポートするプログラムに渡すために使用することもできます。

    >>全文へ

  • return

    アクション; 'function'が返す値を指定します。'return'アクションは、式を評価して、その結果を、実行した'function'の値として返します。'return'アクションにより、'function'は実行を停止して、'function'は戻り値に置替えられます。'return'ステートメントのみを使用すると、'null'が返ります。

    >>全文へ

  • String.split

    メソッド; Stringオブジェクトを、引数に指定された区切り文字を検出するたびに分けて、サブストリングに分割し、サブストリングを入れた配列を返します。

    >>全文へ

  • パブリッシュしたFlash 5コンテンツをデバッグする

    1. Flash Debug Player 5について
    Flash Debug Player(プラグイン)をインストールすると、パブリッシュしたFlash 5コンテンツをFlash 5のデバッガを使ってデバッグすることができます。パブリッシュされたコンテンツの変数やプロパティを確認できるので、オーサリングに便利です。また、Flashオーサリングアプリケーションに付属するFlash Debug Player([制御]-[ムービーのデバッグ]で使用されます)より新しいバージョンが使えることも利点です。

    >>全文へ

  • else if

    アクション; 条件を評価して、最初の'if'ステートメントが'false'を返したとき実行するステートメントを指定します。'else if'条件が'true'を返すと、Flashはその条件に続く中括弧{}内のステートメントを実行します。'else if'条件が'false'のときは、Flashは中括弧内のステートメントをスキップして、中括弧に続くステートメントを実行します。'else if'アクションは、スクリプトの処理を分岐するために使用します。

    >>全文へ

  • 8進数はサポートされているのか

    1. 8進数と16進数
    ActionScriptでの8進数や16進数の一般的なサポートについて、『ActionScriptリファレンスガイド』に明確な記述は見当たらないようです。ただ、「ActionScript辞書」のColorオブジェクトで後者が、'parseInt'関数では両者とも、引数として使用されています。また、実際「0x」で始まる数値は、16進数として扱われます。

    >>全文へ

  • 配列と配列要素

    1. 配列の要素と長さ
    ActionScriptの配列は、生成するときに要素の個数を決める必要がありません。配列のインデックス番号をブラケットアクセス[]で指定して値を代入すれば、そのサイズの配列が作成できます。インデックスは、連続した番号である必要はありません。メモリには、配列中で使用する要素のインデックス番号と値とが格納されます。つまり、配列で使っていない要素にはメモリを割り当ません。このために、メモリを効率的に使いながら、配列のサイズを自由に変えることができるのです。

    >>全文へ

  • NaN

    特別な変数; 数値演算やデータ型の変換を行ったときに、数値として表せない結果になったとき返される特別な値です。IEEE-754規格に基づきます。'NaN'という変数名は非数値(Not a Number)からきています。たとえば、0を0で除算した場合が、これに当たります。0による除算は、未定義なためです(0でない値を0で除算することも、数学の演算上は未定義です。しかし、ActionScriptでは除される値が正の場合はInfinity、負の場合には-Infinityを返します)。

    >>全文へ

  • Arguments.callee

    プロパティ; 呼び出し元の関数を参照します。

    [訳者註] 原文が"the Arguments object of the calling function"(呼び出し元の関数のArgumentsオブジェクト)しているのは、誤りです。この仕様は、Navigator 3と同じです。Navigator 4とは異なることにご注意ください。

    >>全文へ

  • undefined

    特別な値; 通常変数にまだ値が設定されていないことを示すために用いられます。未定義の値を参照すると、特別な値である'undefined'が返ります。ActionScriptのコードでtypeof(undefined)は、ストリングの"undefined"を返します。"undefined"タイプの値は、'undefined'のみです。

    >>全文へ

  • XML.onData

    イベントハンドラ(訳者註: イベントハンドラメソッド); XMLテキストがサーバーから完全にダウンロードされるか、 サーバーからのダウンロード時にエラーが発生すると、呼び出されます。このハンドラ(訳者註: メソッド)は、XMLを解析する前に呼出されます。したがって、FlashのXML解析によらず、独自の解析ルーチンを実行するために使用することができます。 'XML.onData'メソッドは、未定義値'undefined'か、サーバーからダウンロードされたXMLテキストを内容とするストリングを返します。戻り値が'undefined'であれば、サーバーからのXMLのダウンロード中にエラーが発生しています。

    >>全文へ

  • Arguments.length

    Argumentsオブジェクトの'length'プロパティは、配列要素数を返します。これは、関数を呼び出す時に渡された引数の個数になります。'length'プロパティは、関数に渡された引数の個数が正しいかどうかをチェックしたり、任意の数の引数すべてを処理したいときなどに用いることができます。

    >>全文へ

  • Arguments.callee

    Argumentsオブジェクトの'collee'プロパティは、現在実行している関数を参照します。'callee'プロパティを使うと、実行中の関数内から、関数名を指定することなく、その関数自身を再度呼び出すことができます。関数中で自分自身を再度実行することを、「再帰」呼び出しといいます。

    >>全文へ

  • Arguments (オブジェクト)

    関数を実行すると、Argumentsオブジェクトが、その関数のローカル変数'arguments'に格納されます。 ActionScriptでは、関数に定義された引数の個数にかかわらず、任意の数の引数を渡すことができます。'arguments'には、実行された関数に渡されたすべての引数が格納されます。引数値は、配列アクセス[]で参照できます。

    >>全文へ

  • Object.__proto__

    プロパティ; myObjectを作成したコンストラクタ関数のprototypeプロパティを参照します。__proto__プロパティは、すべてのオブジェクトに対して、それらが作成されるとき自動的に設定されます。ActionScriptのインタープリタは、__proto__プロパティを使ってオブジェクトのコンストラクタ関数のprototypeプロパティにアクセスし、オブジェクトがクラスから継承したプロパティやメソッドを探し出します。

    >>全文へ

  • fscommandのsaveコマンド

    プロジェクタで'fscommand'アクションのコマンドに"save"を指定すると、Windowsではファイルを保存することができます。これは、ドキュメント化された機能ではなく(undocumented)、またMacintoshでは動作しません。

    >>全文へ

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