ユーザー定義関数(カスタム関数)に慣れてくると
ムービークリップやムービークリップのタイムラインに
スクリプトを記述しないで、一箇所にどーんとまとめたく
なるようになってきます。
例えば、ある関数に、ムービークリップ名(自分のパス名)を
引数で投げる場合に、targetPath()やthisなんかを使用すると
処理がしやすいのですが、targetPath()って安易に使わない方が
いいのではないかという結論に達しました。
具体的には解析できていませんが、targetPath()の場合は
値が「
文字列」になっているみたいで
処理をする際に、型を変換する作業を行わなければいけません。
その作業をしない場合は、正常にパスと認識されなくて
スクリプトが正常に動作しないことがあります。
しかし、hogehoge(this)みたいな形で、そのまま「this」を送ってあげると
パスと正常に認識されて、スクリプトもちゃんと動く…。
なんてことが少し前にありました。
パスをsplit()なんかで処理する場合はパスを一度文字列に変換する
作業が必要になる場合もあります。
チョットした落とし穴なので記録しておきます。
■ムービークリップを変数で指定する際のやりかた。
var inst = "mouth_mov";
var inst_set = _root.face_mov[inst];//上下書式の違いはあるが動作は同じ
var inst_set = _root["face_mov"][inst];//上下書式の違いはあるが動作は同
trace("T1 "+_root.face_mov[inst]._totalframes);
trace("T1n "+_root.face_mov[inst]._name);
trace(inst_set);
trace("T2 "+inst_set._totalframes);
trace("T2n "+inst_set._name);
※targetPath()を使用して上手くパスが飛ばせない。
targetPath()を使用しなくても「this」で指定することで
正常なパスが送信できる。(型が違う??)
targetPath(this)で送信するのと単にthisだけで
送信するのとでは結果が違う。
posted by ごんたろう(Gontaro-Soft) at 07:01
|
Comment(0)
|
開発関係(Flash含む)