ステージに指定した名前の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は応答なしで、強制終了。
気をつけましょう。


というレポートでした。