取り急ぎのメモ。
Flash Lite1.1における階層のパスの取り方がかなり違う。
PC用のASだと、たとえば、MovieClip A_mcから、同じタイムライン上にある、
B_mcを参照したいとすると、
_parent.B_mc
で、事足りる。
しかし、Flash Liteだと、.(ドットシンタックス)が使えない。
代わりに、/(スラッシュ)を使用する。
ディレクトリのパスの参照と似ている。
これで上記のパスを書き直すと、
../B_mc
と、なる。
../が_parentの代わり。
ちなみに、_rootは、頭に/のみで書く。
間を繋ぐ.(ドット)は、/で書く。
さらに、上記の用に、../B_mcと書くと、B_mcはムービークリップに限定される。
変数を参照した場合はどうすればいいかというと、
../:bNum
のように、/のあとに、:(コロン)をつける。これで、一階層上のbNumという変数にアクセスした事になる。
ケータイFlash ラボ!! -
http://mobilef.jugem.jp/?cid=4あと、違ったのが、onEnterFrameがない。
これは、タイムラインを二つ使って、入ったりきたりさせることで解決。
教えて!goo -
Flash Lite1.1ではonClipEvent(enterFrame)が使えません。ではどうすれば?それと、functionがない。
これは、再生されないタイムラインのヘッド上に、参照したいスクリプトを書き、
そのヘッドにフレーム名、たとえば、testとつける。
そして、そのスクリプトを呼び出すには、call()を使う。
call("test");
のようにしてやれば、testと、ラベルのつけられたフレームのスクリプトを、
そのフレームにいかずに実行してくれます。
あと、もう一つ。
onEnterFrame()がない、ということなので、
たぶん、onClipEvent()もない。
(たぶん、on()しかない)
なので、onClipEvent(load)として、ロードした時になにかの処理をさせてやれない。
そうするにはタイムラインから書くしかない。
そこで登場するのが、tellTarget()。
これを使うと、指定されたムービークリップにスクリプトがかかれたことと同じになる。
たとえば、test_mcというムービークリップがあったとして、
そいつにスクリプトを適用させるには、
tellTarget(test_mc){ 実行させたい処理 }
と、書いてやるとよい。
※処理の中かからメインのタイムラインを参照したい時は、一階層上なので、../としないといけない。
これで、実行させたいムービークリップがあるタイムライン上に、
処理を書いてやれば、onClipEvent(load)と同じ効果が得られる(はず)。
参考:Adobe デベロッパーセンター -
iモード用 Flash 開発講座==追記==(疑問)
gotoAndStop、gotoAndPlayなどは、ムービークリップ内に書いていても、
tellTarget内に書いていても、メインのタイムラインが参照される?
(分けたい時はシーンで分ける?)
gotoAndStop("label");のように、ラベル名で指定すると、
ルートのタイムライン上のものはきちんと動作するけど、
ムービークリップ内など、ルートのタイムライン上以外のものは動かない。
Flash Lite1.1では、直接フレーム数で指定する方が無難。
(マニュアルにもラベル指定は書かれていない。
Flash Lite2以降の説明には書かれている。)
Labels: FlashLite