ステージに指定した名前のMCは存在するか?
AS2.0が大分自分のものとなってきました。
面白くなってきました。
Flash付属のヘルプで、自分で分からないことを調べられるようになったことが、
成長したなぁと思える一因でもあります。
で、今日は探していた処理の方法が分かりました。
したかったことは、
「ステージに指定した名前のムービークリップが存在するか?」
の判定だったのですが、
適当にeval()とかで検索した結果、
targetpath(movieClipObject:MovieClip) : String
パラメータ
movieClipObject 検索するターゲットパスのムービークリップへの参照 (_root や _parent など)。
戻り値
指定したムービークリップのターゲットパスを含むストリング。
なんてものがあることを知りました。
って、ヘルプの記述ミスか?
"p"が大文字じゃないのですが。
ムービークリップのパスを文字列で返すなら、
もし対象のムービークリップが存在しないなら?
と思い、
trace(targetPath(<存在しないムービークリップ>));
でチェック。
案の定"undefined"を返したようです。
それじゃあ、
for (var i:Number = 0; ; i++) { // 無限ループ if (targetPath(_root.["test" + i]) == undefined) { _root.attachMovie("mc_test", "test" + i, 10 + i); break; } }
とでもすれば、
「ステージにその名前のムービークリップが存在しないなら
その名前のムービークリップを生成」
なんてことができそうです。
テストしたとき、"break;"を忘れて無限ループ地獄に...。
Flashは応答なしで、強制終了。
気をつけましょう。
というレポートでした。