▼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

関連リンク
情報サイト ブログ 書籍
Flashゲーム講座&
アクションスクリプトサンプル集
akihiro kamijo FLASH ActionScript 2.0
入門完全ガイド+実践サンプル集
Flash Lite 2 Wiki  nod::ぶろぐ::RIA::Flash/Flex/AJAX Flash OOP
Flex User Group  FlexCoder ActionScript逆引きクイックリファレンス
FLASHGURU minfish.jp/blog -
U-ActionScript eggtoothcrocの日記 -
Flash ActionScript2.0入門ノート sshi.Continual -
- BABARAGEO - 
ActionScript 3についてはActionScript 3メモ


携帯端末の対応機種
キャリア 機種 ファイルサイズ 備考
ドコモ 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


ドキュメント

機種依存情報



au

画面サイズ 機種別情報一覧参照
キー

上下、決定、数字キー
左右キーが利用可能なモードがあるかは不明。
複数ボタンの同時押しは不可。

サウンド

SMAF(*.mmf)
いつでも再生可能。
(1.1ではキー押下イベント発生時のみだった)

通信

通信は(loadMovie()とloadVariables())は、
インタラクティブ再生(ネット上かつSWF直接指定)かつ
キー押下イベント発生時のみ使用可能。

ファイルサイズ 100KB
備考

SharedObjectはデータフォルダに保存
ダウンロードしたSWFの方が高速

iriver

画面サイズ 128x128
キー

上下左右、ボリュームキー
決定キーが物理的にない。

サウンド MP3
通信 物理的にない
ファイルサイズ 約1MB
備考 -


オープンソースによる開発環境の構築


オープンソースによるFlashアプリケーションの開発に使用するツールは次の4つ。

MTASC
コマンドラインで実行できるActionScript 2コンパイラ。ActionScriptをテキストエディタで記述し、MTASCでコンパイルすることで、Flashアプリケーション(SWF)を作成可能。
  1. MTASCのサイトからMTASCのパッケージをダウンロード(Windows版はmtasc-1.12.zip)。
  2. 解凍すると「mtasc-1.12」フォルダが出現するので、好きな場所(できれば日本語が含まれないパス)へ配置。
  3. 「コントロールパネル⇒システム⇒詳細設定⇒環境変数」のシステム環境変数の「Path」に「mtasc-1.12」フォルダへのパス(C:\mtasc-1.12)を追加。複数ある時は";"区切り。
MTASC


swfmill
XMLをベースとした記述言語からSWFを生成するツール。MTASCだけでは、リソースファイルをSWFに埋め込むこと(リンケージ)ができないため、swfmillを組み合わせて使用する。
  1. swfmillのサイトからswfmillのパッケージをダウンロード(Windows版はswfmill-0.2.11-win32.zip)。
  2. 解凍すると「swfmill-0.2.11-win32」フォルダが出現するので、好きな場所(できれば日本語が含まれないパス)へ配置。
  3. 「コントロールパネル⇒システム⇒詳細設定⇒環境変数」のシステム環境変数の「Path」に「swfmill-0.2.11-win32」フォルダへのパス(C:\swfmill-0.2.11-win32)を追加。複数ある時は";"区切り。
埋め込み可能なリソースのファイル形式は次の通り。 サウンドは2.11.16以降(現在はプレリリース)でサポートしている。

SE|PY ASEditor

ActionScript 2に特化した色分けや、入力保管など便利機能を持つテキストエディタ。使い慣れたテキストエディタがある人は別のものを使ってもOK。
  1. sourceforgeのサイトからSEPY 1.5.2RC23をダウンロード。
  2. インストーラの指示に従ってインストール。
Adobe Flash Player 9 - Debugger Version
デバッグ機能を持ったFlash Player。 IE用、NetScape(FireFox)用、スタンドアロンの3つがある。
  1. AdobeのサイトからAdobe Flash Player 9をダウンロード。
このPlayerで再生することにより、プログラム内でtrace()メソッドを使うことで、テキストファイル(C:\Documents and Settings\<ユーザー名>\flashlog.txt)に文字列を出力させことができる。
trace(str:String)
この出力を行うには、「C:\Documents and Settings\<ユーザー名>\」フォルダに「mm.cfg」という名前のテキストファイルを生成し、次のように記述する必要がある。
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のあるフォルダへ移動し、次のコマンドを入力。
書式
mtasc -swf swfファイル名 -main asファイル名 -version バージョン -header 幅:高さ:フレームレート
幅と高さの単位はドット、フレームレートの単位はFPS。


mtasc -swf HelloWorld.swf -main HelloWorld.as -version 7 -header 240:240:30
成功すれば、HelloWorld.swfが出力される。


表示用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 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>
画面サイズとフレームレートはXMLで指定したものが使われ、MTASCで指定したものは無視される。


コンパイル
コマンドプロプトを開き、ImageEx.asのあるフォルダへ移動し、次のコマンドを入力。

mtasc -version 7 -swf classes.swf -header 240:240:30 ImageEx
成功すれば、classes.swfが出力される。


次に、以下のコマンドを入力。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の描画処理の特徴

サンプルプログラム


描画とイベント
文字列の表示 - TextField,Font
図形の表示 - Graphics,Shape
ビットマップの使用 - BitmapData
定期イベントの処理 - setInterval
日付の表示 - Date
マウスイベントの処理 - Mouse
キーイベントの処理 - Key


データ保存と通信
ローカル領域へのデータ保存 - SharedObject
ネットから画像を読み込む - Loader
ネットから複数の画像を読み込む - MovieClipLoader
ネットからテキストを読み込む - LoadVars
flvの再生 - Video
XMLの解析 - XML
IMEの制御 - IME


ゲーム
パズルゲーム - マウス操作
障害物避けゲーム - キー操作
格闘ゲーム - Flash Lite 2対応

−戻る−