今さらながらFlash8を買ってしまったので、Flash8ユーザーのみが無料入手できるFlash Professional 9 ActionScript 3.0 Previewダウンロードしてみた。どういうものかというと、flash8をベースにactionscript部分のみが次期バージョン(3.0)に対応しているといった具合(ただし、インターフェイスは英語になっている)。
使い方はパブリッシュの設定でactionscriptバージョン項目を3.0に指定するだけでOK。他はflash8と変わりなし。リリースされたのが結構前ということもあってか、as3.0のコードヒントが中途半端ですね。特にasファイルのエディタ関してはコードヒントは無いに等しいのでメイン側のエディタで記述してからasファイルにコピペしたほうがよさげ。
とりあえず、as3.0でオブジェクト指向プログラミングをする場合の最も簡単な例をあげます。この例ではメインのタイムラインには何も記述せずasファイルだけでプログラムを動作させています。
package {
import flash.display.*;
import flash.text.TextField;
public class HelloWorld extends Sprite
{
public function HelloWorld()
{
var txt:TextField =new TextField();
txt.text ="123";
addChild(txt);
}
}
}
まずpackage。これはas3.0でclassファイルの記述する場合必須となります。classファイルはpackage(ディレクトリのようなもの)で管理されます。
次にimport。これは他のクラスを読み込む際に利用します。ちなみにflash.displayパッケージにはSprite、MovieClip等表示に関するクラスが含まれています。サンプルでは*(ワイルドカード)を使用しているのでflash.displayパッケージ内すべてのクラスを読み込んでいます。
今回はメインタイムラインに一切手を加えずflashを動作させるということなので、swfの実行時に自動的にclass実行させる必要があります。これはas3.0からの機能です。ステージのプロパティでDocument classという項目に実行させたいクラス名(例:HelloWorld)を入力します。これでルートにHelloWorldクラスが関連付けられます。
それに加え、classファイルのpublic class HelloWorld extends Sprite{}の部分ですね。publicとextends Spriteが肝となります。publicはルートからのアクセスを許可し、Spriteクラスは画面表示の基盤となります。どちらかが欠けていても動作しません。(ただし必ずしもSpriteである必要は無くSpriteクラスを継承しているクラス(MovieClipクラス等)であれば実行可能)これでswf実行時にHelloWorldクラスコンストラクタが実行されます。
TextFieldクラスはas2.0と同じなので省略します。
最後にaddChildメソッド。addChildメソッドを使用しSpriteクラスやMovieClipクラス等(コンテナ)にtxtを吊るすことで表示させます。
とこんな感じでだいぶ殴り書きっぽくなりましたが、一応自分用ンのメモと言うことで。。。



コメント(0)
twitterでつぶやく
コメントが存在しません。