▼ActionScript 2.0メモ▼
ActionScript 2.0
ActionScript 2とは、Flash 7、Flash Lite2以降で実行可能なオブジェクト指向のスクリプト言語。オープンソースの開発ツール(MTASC、swfmill、SE|PY ASEditor)を利用することにより、Flashオーサリングツールなしに無償でSWFを生成することが可能。しかも、プログラムをコンパイラで直接SWFを出力できるため、Javaプログラミング感覚で本格的なアプリケーションを作成可能。
Flash Lite 2とは携帯端末向けのFlash仕様。ActionScript 2をサポート。 Flash Player 7のサブセットだが、携帯端末向けの拡張機能もある。 ActionScriptの最新版はActionScript 3であるため、ActionScript 2の主な用途はFlash Lite 2対応携帯端末向けとなる。
Flashオーサリングツール Flash Lite Flex ActonScript AIR Flash Player 4 Flash 4 Flash Lite 1.1 - ActionScript 1 - Flash Player 5 Flash 5 - - ActionScript 1 - Flash Player 6 Flash MX - - ActionScript 1 - Flash Player 7 Flash MX 2004 Flash Lite 2 - ActionScript 2 - Flash Player 8 Flash 8 - Flex 1 ActionScript 2 - Flash Player 9 Flash 9 - Flex 2 ActionScript 3 AIR 1
関連リンク
携帯端末の対応機種
キャリア 機種 ファイルサイズ 備考 ドコモ hTc Z - Flash Player 7 for Pocket PC ソフトバンク
810SH、811SH、910SH、810T、811T、910T… 150KB - X01HT - Flash Player 7 for Pocket PC au W45T,W43CA,W43H,W43S,W43K,W42SA…
詳しくは機種別情報一覧参照。
100KB - WILLCOM W-ZERO3、W-ZERO3[es]
- Flash Player 7 for Pocket PC Nokia N70、N73、N75、N81、N90、N91、N95… 約1MB - HP iPac - Flash Player 7 for Pocket PC 東芝 GENIO - Flash Player 7 for Pocket PC iriver(アイリバー) e10 約1MB - 任天堂 Wii - Opera for Devices
ドキュメント
- Flashリソース
- Flash Lite 2コンテンツ開発キット(CDK)
- 日本語APIリファレンス&Tips等
機種依存情報
au
画面サイズ 機種別情報一覧参照 キー 上下、決定、数字キー
左右キーが利用可能なモードがあるかは不明。
複数ボタンの同時押しは不可。サウンド SMAF(*.mmf)
いつでも再生可能。
(1.1ではキー押下イベント発生時のみだった)通信 通信は(loadMovie()とloadVariables())は、
インタラクティブ再生(ネット上かつSWF直接指定)かつ
キー押下イベント発生時のみ使用可能。ファイルサイズ 100KB 備考 SharedObjectはデータフォルダに保存
ダウンロードしたSWFの方が高速iriver
画面サイズ 128x128 キー 上下左右、ボリュームキー
決定キーが物理的にない。サウンド MP3 通信 物理的にない ファイルサイズ 約1MB 備考 -
オープンソースによる開発環境の構築
オープンソースによるFlashアプリケーションの開発に使用するツールは次の4つ。
MTASC
コマンドラインで実行できるActionScript 2コンパイラ。ActionScriptをテキストエディタで記述し、MTASCでコンパイルすることで、Flashアプリケーション(SWF)を作成可能。
- MTASCのサイトからMTASCのパッケージをダウンロード(Windows版はmtasc-1.12.zip)。
- 解凍すると「mtasc-1.12」フォルダが出現するので、好きな場所(できれば日本語が含まれないパス)へ配置。
- 「コントロールパネル⇒システム⇒詳細設定⇒環境変数」のシステム環境変数の「Path」に「mtasc-1.12」フォルダへのパス(C:\mtasc-1.12)を追加。複数ある時は";"区切り。
swfmill
XMLをベースとした記述言語からSWFを生成するツール。MTASCだけでは、リソースファイルをSWFに埋め込むこと(リンケージ)ができないため、swfmillを組み合わせて使用する。
埋め込み可能なリソースのファイル形式は次の通り。
- swfmillのサイトからswfmillのパッケージをダウンロード(Windows版はswfmill-0.2.11-win32.zip)。
- 解凍すると「swfmill-0.2.11-win32」フォルダが出現するので、好きな場所(できれば日本語が含まれないパス)へ配置。
- 「コントロールパネル⇒システム⇒詳細設定⇒環境変数」のシステム環境変数の「Path」に「swfmill-0.2.11-win32」フォルダへのパス(C:\swfmill-0.2.11-win32)を追加。複数ある時は";"区切り。
サウンドは2.11.16以降(現在はプレリリース)でサポートしている。
- SWF
- SWC
- トゥルータイプフォント
- JPEG
- PNG
SE|PY ASEditor
ActionScript 2に特化した色分けや、入力保管など便利機能を持つテキストエディタ。使い慣れたテキストエディタがある人は別のものを使ってもOK。Adobe Flash Player 9 - Debugger Version
- sourceforgeのサイトからSEPY 1.5.2RC23をダウンロード。
- インストーラの指示に従ってインストール。
デバッグ機能を持ったFlash Player。 IE用、NetScape(FireFox)用、スタンドアロンの3つがある。このPlayerで再生することにより、プログラム内でtrace()メソッドを使うことで、テキストファイル(C:\Documents and Settings\<ユーザー名>\flashlog.txt)に文字列を出力させことができる。
- AdobeのサイトからAdobe Flash Player 9をダウンロード。
この出力を行うには、「C:\Documents and Settings\<ユーザー名>\」フォルダに「mm.cfg」という名前のテキストファイルを生成し、次のように記述する必要がある。
trace(str:String)
TraceOutputFileEnable=1
ErrorReportingEnable=1
FlashTracer
Flashのtrace結果をFireFoxで見れるプラグイン。くわしくはPHPSPOT開発日記さんの記事が参考になる。
HelloWorldの作成
「Hello World!」という文字列を表示するFlashを作成する。
ソースコード
テキストエディタでHelloWorld.asを作成。
//HelloWorld class HelloWorld { //コンストラクタ function HelloWorld(mc:MovieClip) { //テキストを表示 mc.createTextField("tf",mc.getNextHighestDepth(),0,0,100,20); mc.tf.text="Hello World!"; } //メイン static function main() { var app:HelloWorld=new HelloWorld(_root); } }
コンパイル
コマンドプロプトを開き、HelloWorld.asのあるフォルダへ移動し、次のコマンドを入力。
書式
幅と高さの単位はドット、フレームレートの単位はFPS。
mtasc -swf swfファイル名 -main asファイル名 -version バージョン -header 幅:高さ:フレームレート
例
成功すれば、HelloWorld.swfが出力される。
mtasc -swf HelloWorld.swf -main HelloWorld.as -version 7 -header 240:240:30
表示用HTML
パソコンのHTML上にFlashを表示する時のタグ使用例は次の通り。携帯端末ではSWFに直接アクセスすれば良い。
<TR>
<TD><OBJECT classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="240" height="240" id="test" align="middle">
<PARAM name="allowScriptAccess" value="sameDomain">
<PARAM name="movie" value="HelloWorld.swf">
<PARAM name="quality" value="high">
<PARAM name="bgcolor" value="#ffffff">
<EMBED src="HelloWorld.swf" quality="high" bgcolor="#ffffff" width="240" height="240" name="test" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"> </OBJECT></TD>
</TR>
MTASCのオプション
-pack <path> 以下のパッケージを全てコンパイル -cp <paths> クラスパスの指定 -v 冗長モード -strict strictモード -infer local variable inference -msvc MSVC形式のエラーメッセージを使う -mx mxパッケージを使う -swf <file> アップデートするswfファイルの指定 -out <file> 出力するswfファイルの指定 -keep 入力するSWFからclassファイルを削除しない -frame <frame> ターゲットのフレームにexport(swf内に存在してること) -main main entry pointの指定 -header <header> ヘッダーフォーマットの指定 '幅:高さ:フレームレート' -group classの集まりを一個のクリップにする -exclude <file> コンパイルしないクラスのリストの指定 -version SWFのバージョン(6,7,8,...)の指定 -trace <function> traceする関数の指定 -help ヘルプ
リソースの埋め込み
リソースとしてSWFに埋め込んだ画像を表示するFlashを作成する。
画像ファイル
sorami.png
144x144
ソースコード
テキストエディタでImageEx.asとapplication.xmlを作成。
//アプリケーション class ImageEx extends MovieClip { //ロード時に呼ばれる function onLoad () { //画像ファイルを読み込む attachMovie("Sorami","sorami",1000); } }
画面サイズとフレームレートはXMLで指定したものが使われ、MTASCで指定したものは無視される。
<?xml version="1.0" encoding="iso-8859-1"?> <!-- バージョン=7,画面サイズ=240x240,フレームレート=30フレーム/秒 --> <movie version="7" width="240" height="240" framerate="30"> <!-- 背景色=白 --> <background color="#ffffff"/> <!-- class.swfを含める --> <clip import="classes.swf" /> <frame> <library> <!-- クラス --> <clip id="Application" class="ImageEx" /> <!-- リソース --> <clip id="Sorami" import="sorami.png" /> </library> <!-- アプリケーションをXY座標(0,0)、深度1000に配置 --> <place id="Application" name="app" x="0" y="0" depth="1000" /> </frame> </movie>
コンパイル
コマンドプロプトを開き、ImageEx.asのあるフォルダへ移動し、次のコマンドを入力。
例
成功すれば、classes.swfが出力される。
mtasc -version 7 -swf classes.swf -header 240:240:30 ImageEx
次に、以下のコマンドを入力。swfmillの詳細な使用方法はこのページが参考になる。
書式
例
swfmill simple xmlファイル名 出力swfファイル名
swfmill simple application.xml ImageEx.swf
成功すれば、ImageEx.swfが出力される。
ImageEx.swfにはclass.swfとsorami.pngの両方が含まれており、ImageEx.swf単体で実行できる。
その他の開発環境によるFlashアプリケーションの開発
ActionScript 2 クラス一覧
基本
arguments 引数 Array 配列 Boolean ブーリアン Date 日時情報 Error エラー情報 Function 関数 Math 数値計算 Number 数値 Object オブジェクト String 文字列
表示
BitmapData(flash.display.BitmapData) ビットマップデータ MovieClip ムービークリップ MovieClipLoader 複数の外部ファイルの読み込み LoadVars 外部ファイルの読み込み Stage ステージ
フィルタ
BevelFilter(flash.filters.BevelFilter) ベベルフィルタ BitmapFilter(flash.filters.BitmapFilter) フィルタの親クラス BlurFilter(flash.filters.BlurFilter) ぼかしフィルタ ColorMatrixFilter(flash.filters.ColorMatrixFilter) カラーマトリックスフィルタ ConvolutionFilter(flash.filters.ConvolutionFilter) マトリックス畳み込みフィルタ DisplacementMapFilter(flash.filters.DisplacementMapFilter) ディスプレイスメントマップフィルタ DropShadowFilter(flash.filters.DropShadowFilter) ドロップシャドウフィルタ GlowFilter(flash.filters.GlowFilter) グローフィルタ GradientBevelFilter(flash.filters.GradientBevelFilter) グラデーションベベルフィルタ GradientGlowFilter(flash.filters.GradientGlowFilter) グラデーショングローフィルタ
図形
ColorTransform(flash.geom.ColorTransform) 色調整 Matrix(flash.geom.Matrix) 変換行列 Point(flash.geom.Point) 2次元座標 Rectangle(flash.geom.Rectangle) 矩形 Transform(flash.geom.Transform) 色変換・座標変換
メディア
Camera Webカメラによる映像入力 Microphone マイクによる音声入力 Sound サウンド再生 Video ストリーミング動画再生
通信
FileReference(flash.net.FileReference) ファイルのアップロード FileReferenceList(flash.net.FileReferenceList) 複数のファイルのアップロード LocalConnection 同一マシンのSWF間でデータ送受信 NetConnection ストリーミングFLVファイルの接続 NetStream ストリーミングFLVファイルのストリーム SharedObject データ読み込みと格納 XMLSocket XMLソケット通信
システム
System システム情報 capabilities(System.capabilties) マシンスペック情報 IME(System.IME) IME制御 security(System.security) セキュリティ情報
テキストフィールド
StyleSheet(TextField.StyleSheet) スタイルシート TextField テキストフィールド TextFormat テキストフォーマット TextRenderer(flash.text.TextRenderer) テキストレンダラー TextSnapshot ムービークリップ内の静止テキストを操作
ユーザーインタフェース
Button ボタン ContextMenu コンテキストメニュー ContextMenuItem コンテキストメニューアイテム ExtendKey 拡張キー定数(Liteのみ) Key キー入力 Mouse マウス入力 Selection フォーカス選択
XML
XML XML XMLNode XMLノード XMLUI XMLUI
その他
Accessibility 画面内容の音声出力 AsBroadCast イベント通知とリスナー管理 CustomActions カスタムアクション ExternalInterface(flash.external.ExternalInterface) 外部インタフェース Local(mx.lang.Local) ロケール PrintJob 印刷
JavaとActionScript 2の比較
JavaとActionScript 2の比較
Java ActionScript2.0 エンジン Java仮想マシン Flash Player コンパイラ javac MTASC ソースコード javaファイル asファイル コンパイル済ファイル classファイル swfファイル
アクセス指定子
Java private 指定子なし protected public 同じクラス ○ ○ ○ ○ 同じパッケージ内のサブクラス × ○ ○ ○ 同じパッケージ内の非サブクラス × ○ × ○ 他のパッケージ内のサブクラス × × ○ ○ 他のパッケージ内の非サブクラス × × × ○ ActionScript2.0 private 指定子なし protected public 同じクラス ○ ○ × ○ 同じパッケージ内のサブクラス ○ ○ × ○ 同じパッケージ内の非サブクラス ○ × ○ 他のパッケージ内のサブクラス ○ ○ × ○ 他のパッケージ内の非サブクラス ○ × ○
ActionScript 2の文法の特徴ActionScript 2の描画処理の特徴
- 1ファイルに定義できるのは1クラスのみで、1ファイル32,767byte以下にする必要がある
- 1フレームの処理が15秒を超えるとアラートを出す
- オーバーロードはできない
- オーバーライドの阻止はできない
- 抽象クラスの定義はできない
- ガーベージコレクションもあるが、delete演算子もある
- 画像データをベクタデータとして持つ
- 「画像データがメモリに存在すること」=「描画すること」である
- ムービークリップの表示をOFFにするか、画面外に移動させないと、自動的に描画される
- リフレッシュ(前フレームの画像を消してから次フレームを描く)処理は自動で行う
- Flash7ではイメージを確保したメモリに直接触ることはできない
サンプルプログラム
描画とイベント
●文字列の表示 - TextField,Font ●図形の表示 - Graphics,Shape ●ビットマップの使用 - BitmapData ●定期イベントの処理 - setInterval ●日付の表示 - Date ●マウスイベントの処理 - Mouse ●キーイベントの処理 - Key
データ保存と通信
●ローカル領域へのデータ保存 - SharedObject ●ネットから画像を読み込む - Loader ●ネットから複数の画像を読み込む - MovieClipLoader ●ネットからテキストを読み込む - LoadVars ●flvの再生 - Video ●XMLの解析 - XML ●IMEの制御 - IME
ゲーム
●パズルゲーム - マウス操作 ●障害物避けゲーム - キー操作 ●格闘ゲーム - Flash Lite 2対応
−戻る−