サイトトップ

Director Flash 書籍 業務内容 プロフィール

Macromedia Flash非公式テクニカルノート

コードヒントの活用

ID: FN0303002 Product: Flash

Platform: All
Version: MX and Above

Flash MXでは、「アクション」パネルの「エキスパートモード」でスクリプトを記述する際に、「コードヒント」が表示されるようになりました。スクリプトを入力しているときに、その記述で使用可能なメソッドやプロパティのリストがポップアップメニューで表示されます。そのリストから使用するメソッドやプロパティを選択すれば、スクリプトが速くしかも正確に記述できます。

1. コードヒントの表示
コードヒントを表示するには、「アクション」パネルの「エキスパートモード」で、オブジェクトあるいはインスタンスの名前をタイプして、ドット('.')を入力するだけです。たとえば、Mouseオブジェクトでは、以下のようにタイプすれば、ポップアップメニューが表示されます。

Mouse.


ポップアップメニューの表示

_root.gotoAndPlay(1)というステートメントを記述したい場合には、ドット('.')に続けてgをタイプすると、ポップアップメニューのgで始まる最初のメソッドがハイライトされます。さらに、goまで入力すれば、'gotoAndPlay'が選択されるので、そのまま[Enter]または[return]キーを押せば、_root.gotoAndPlay(までが入力されます。


ポップアップメニューで'gotoAndPlay'メソッドがハイライト

けれども、たとえばメインのタイムラインにmyMovieClipというインスタンス名のMovieClipを配置して、_root.myMovieClip.とドット('.')をタイプしても、コードヒントは表示されません。それは、myMovieClipがユーザーのつけたインスタンス名で、Flashにはそれがインスタンス名なのか変数名なのか、あるいはインスタンス名だとしてもMovieClipなのかButtonなのかが識別できないからです。

インスタンス名をmyMovieClip_mcとして、_root.myMovieClip_mc.とドット('.')までタイプすると、MovieClipのメソッド一覧のリストがポップアップメニューとして表示されるようになります。最後につけた"_mc"という記号が、この識別子はMovieClipインスタンスの名前であることをFlashに伝えるからです。


接尾辞"_mc"をインスタンス名につけるとコードヒントが表示

最後につけた記号のことを、「接尾辞」と呼びます。接尾辞を"_btn"にすると、ポップアップメニューにはButtonオブジェクトのメソッドとプロパティの一覧が表示されます。接尾辞をつけると、コードヒントが表示されるというメリットに加えて、その名前が何につけたものかがわかりやすくなるという福次効果があります。

接尾辞を活用して、タイプミスを防ぎ、しかも見やすいスクリプトを心掛けましょう。使用できる接尾辞の一覧は、最後にまとめて掲げておきます。

2 thisに対してコードヒントを表示する
使い回しの可能なスクリプトを使う中級以上のユーザーになると、キーワード'this'を使用する場面が増えてきます。そして、'this'はタイムライン(MovieClip)だけでなく、配列(Array)やObject、XMLなどさまざまなオブジェクトを示すターゲットとして使われます。けれど、'this'は予約語ですので、接尾辞をつける訳にはいきません。

このような場合には、コメントを使って'this'が参照するオブジェクトを宣言するという手法が使えます。 コメントとは、行頭に'//'(コメント区切り記号)をつけた記述のことです。ActionScriptは、コメント行はスクリプトとして無視します。ですから、エラーを発生することもありません。文字どおりコメントやメモを記述する場合のほか、ステートメントを一時的に無効にしたい場合にも活用できます。

コメント行はスクリプトとしては本来意味のない記述です。けれども、つぎのようなスタイルのコメント行を記述すると、以降のステートメントではその識別子(変数名やインスタンス名)は指定したオブジェクトを参照するものとして扱われます。

// オブジェクト名 識別子;

たとえば、以下のコメント行を記述すると、this.とドット('.')を入力したときに、MovieClipのメソッドおよびプロパティの一覧がポップアップメニューで表示されます。コメント行の最後に';'(セミコロン)が必要なことにご注意ください。

// MovieClip this;


'this'の後に'.'(ドット)を入力するコードヒントが表示

どのようなオブジェクトにこの宣言ができるかは、以下の表「参照するクラスおよび使用できる接尾辞の一覧」のとおりです。接尾辞やコメント行を使った参照オブジェクトの宣言については、Flash 8オンラインヘルプ[ActionScript 2.0の学習] > [ActionScript 2.0の記述と編集] > [[アクション]パネルとスクリプトウィンドウでのコーディングについて] > [Flashのコードヒントについて]以降に説明があります[*1]。

参照するクラスおよび使用できる接尾辞の一覧

クラス

接尾辞

対応バージョン

Array

_array

8/MX 2004/MX

Button

_btn

8/MX 2004/MX

Camera

_cam

8/MX 2004

Color

_color

8/MX 2004/MX

ContextMenu

_cm

8/MX 2004

ContextMenuItem

_cmi

8/MX 2004

Date

_date

8/MX 2004/MX

Error

_err

8/MX 2004

LoadVars

_lv

8/MX 2004

LocalConnection

_lc

8/MX 2004

Microphone

_mic

8/MX 2004

MovieClip

_mc

8/MX 2004/MX

MovieClipLoader

_mcl

8/MX 2004

PrintJob

_pj

8/MX 2004/MX

NetConnection

_nc

8/MX 2004

NetStream

_ns

8/MX 2004

SharedObject

_so

8/MX 2004

Sound

_sound

8/MX 2004/MX

String

_str

8/MX 2004/MX

TextField

_txt

8/MX 2004/MX

TextFormat

_fmt

8/MX 2004/MX

Video

_video

8/MX 2004

XML

_xml

8/MX 2004/MX

XMLNode

_xmlnode

8/MX 2004

XMLSocket

_xmlsocket

8/MX 2004/MX

FCheckBox

_ch

MX

FComboBox

_cb

MX

FListBox

_lb

MX

FPushButton

_pb

MX

FRadioButton

_rb

MX

FScrollBar

_sb

MX

FScrollPane

_sp

MX

[*1] Flash MXのオンラインヘルプに掲げてある接尾辞やオブジェクトの宣言の中には、Flashの機能を拡張する他のアプリケーション(たとえばFlash Communication Sever MX)をインストールしないと使用できないものもあります。

逆にFlash MXでは、オンラインヘルプには記載がないものの、実際に使用できる接尾辞・参照オブジェクト宣言もあります。そのような接尾辞としては、ビルトインのコンポーネントで使用されるメソッドが挙げられます.たとえば、接尾辞"_pb"はPushButtonコンポーネントのインスタンス名に使用して、FPushButton(コンポーネント)のメソッドをコードヒントとして表示することができます。


接尾辞"_pb"で表示されたコードヒント

3 ActionScript 2.0の型指定によってコードヒントを表示する
ActionScript 2.0の厳密な型指定を行うと、接尾辞を用いなくともコードヒントを表示するとができます。

とくにFlash MX 2004以降では、コンポーネントに対する接尾辞がなくなりました。したがって、コンポーネントインスタンスにコードヒントを表示するためには、ActionScript 2.0の型指定を行う必要があります。

なお、Flash MX 2004から実装されているコンポーネントアーキテクチャバージョン2のコンポーネントクラスは、パッケージに収められています。したがって、完全なクラスパスで型指定するか、予めコンポーネントのクラスをimport宣言しておきます。

Data typing
ComboBoxクラスをimportしたうえで変数に型指定を行う

_____

作成者: 野中文雄
更新日: 2006年5月18日 Flash MX 2004以降の補足とActionScript 2.0の型指定について追加
作成日: 2003年3月2日


Copyright © 2001-2006 Fumio Nonaka.  All rights reserved.