Java言語からActionScriptへの変換基礎

Flashアプリのソースの記述言語はActionScriptです。iアプリからFlashアプリへ移植する場合、Java言語からActionScriptへ変換して記述する必要があります。

変数の宣言

ActionScriptでは、変数は全て var として定義します。例えば次のようになります。

Java ActionScript
int a;
boolean b;
Random c;
var a:Number;
var b:Boolean;
var c:_Random;

なお、ActionScriptでの変数定義の記述において、コロン(":")以降の型名は省略できます。例えば上記の記述は、次のようにしても問題ありません。

var a;
var b;
var c;

配列の宣言

ActionScriptでは、配列の定義も変数と同様に var として定義します。例えば次のようになります。

Java ActionScript
int[] a;
a = new int[10];
var a:Array;
a = new Array( 10 );

Java ActionScript
int[][] a;
a = new int[2][10];
var a:Array;
a = new Array( 2 );
a[0] = new Array( 10 );
a[1] = new Array( 10 );

また、ActionScriptでは、配列の初期化の記述には"["と"]"を使用します。例えば次のようになります。

Java ActionScript
int[] a = { 12, 34, 56 };
int[][] b = {
    { 1, 2, 3 },
    { 4, 5, 6 }
};
var a:Array = [12, 34, 56];
var b = [
    [1, 2, 3],
    [4, 5, 6]
];

関数の宣言

ActionScriptでは、関数の宣言には function を使用します。例えば次のようになります。

Java ActionScript
void abc( int a, boolean b ){ … }
int def(){ … }
function abc( a:Number, b:Boolean ):Void { … }
function def():Number { … }

数値を表す型について

ActionScriptでは、数値を表す型は Number 型(実数)になります。Javaでの int 型は Number 形に置き換えられることになりますが、ここでの注意点は、整数での除算や剰余の箇所を全て変更する必要があることです。

もっとも容易な対応は、「_Global.h」に定義されているマクロを使用することです。

「_Global.h」に定義されているマクロ:
#define _DIV( a, b ) _Math.div( a, b )
#define _MOD( a, b ) _Math.mod( a, b )

このマクロを使用し、次のように書き換えます。

Java ActionScript
b = a / 100;
c = rand.nextInt() % 10;
b = _DIV( a, 100 );
c = _MOD( rand.nextInt(), 10 );

文字列から数値への変換について

文字列から数値へ変換するには、Javaでは Integer クラスの parseInt() メソッドを使用しますが、ActionScriptでは、Number(str) のように記述することで行うことができます。

文字コードについて

最後に、ソース記述に使用する文字コードは、UTF-8であることに注意してください。

なお、ソース以外にも、ツール「swfmill」に渡すXMLファイルや、ツール「string2xml」に渡す文字列リソース定義ファイルも同様にUTF-8で記述してください。