3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Flash Lite 1.1で気をつける事

Posted at

モバイル向けのプラットフォームであるFlash Lite。その中でも初期のバージョンで、わりと古めの機種にも対応しているFlash Lite 1.1での制作で気をつけることのメモ。

以前待ち受け画面を作った時に試したバージョンなんだけど、いろいろ忘れている事が多かったので最初は身体が慣れるのに苦労した。

基本的にはActionScript1.0、Flash Player4と同等で、それプラス携帯電話固有の情報をfscommandで扱えたりする。
以下に列挙。

##Functionの概念がない
代替として、フレームスクリプトを書いてラベルを貼り

call("FrameLabel");

でスクリプトを呼び出す。引数は渡せない。

##Arrayの概念がない
代替として、文字列とeval()を使って

a0 = "ichi";
a1 = "ni";
a2 = "san";
for(i=0; i<3; i++){
	trace( eval("a" add i) );
}
// 出力 ichi, ni, san

保持・呼び出しする。

MovieClipの生成。

for(i=0; i<9; i++){
	newName = "mc" add i*9;
	duplicateMovieClip( "tempMC", newName, i);
	eval(newname)._x = i*10;
}

##thisとかreturnとかvarとかない
_root_parentはある。それぞれ/:../:でも代替できる。

##tellTarget(){}内での_parentの扱い

a = 0;
tellTarget("mc"){
	_x  = _parent.a;
}

みたいな場合、mcから見た階層になるので同タイムラインに記述しても_parentが必要になる。

##変数名の大文字と小文字は区別しない

a = 0;
A = 1;
trace(a);

AS2、AS3なら当然のように0が出力されるけど、AS1だと、aとAを同じ変数とみなすので値が上書きされて1が出力されます。普段あまり意識しないで使ってると意外とハマる。

##文字列の連結は*+じゃなくてadd*
比較は==じゃなくてeq!=じゃなくてne

##Numberのキャストは*int()*で

a = "02";
trace( Number(a))
// 出力 = 02

trace( int(a))
// 出力 = 2

##*(a | 0)*は使えない
Math.floor()を代わりに使う。

##*substring( str, 0, i)substring( str, 1, i)*の返る値が同じ
これしばらく悩み続けました。

str = "abcdefg";
trace( substring( str, 0, 3) );
// 出力 = abc

trace( substring( str, 1, 3) );
// 出力 = abc

trace( substring( str, 2, 3) );
// 出力 = bcd

どう考えてもおかしいんですがそういうことみたい

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?