メイン コーダーズルーム【スクリプト系】 パスを通すときのルール[MX] | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
tomochan | Åê¹ÆNo.2116 投稿日時: 2003-12-13 0:54 |
半人前 居住地: サッポロ 投稿: 37
使用環境:
XP FLASH PRO CS5 |
パスを通すときのルール[MX] パスの記述に変数を複数使う方法がわかりません
functionで渡された引数Nameとfor文で使われるiを以下のように 組み合わせてプロパティを取得しようとしました。
ものの見事にundefinedでした。 ほかにも this[name]["hit"+i]._xもundefinedでした。 this[]を使って間にドットを挟む場合どうしたらいいのでしょうか? ここらへんのルールを教えていただけるとうれしいです。 バージョンはMXで 環境はWINXPです |
近藤泰一 | Åê¹ÆNo.2117 投稿日時: 2003-12-13 1:08 |
常連 居住地: 神奈川県 投稿: 112
使用環境:
Pro Pro |
Re: パスを通すときのルール[MX] どこへパスを通したいのでしょうか。
this[Name+"hit"+i]._x は、「Name」が例えば"test"で、iが1のときは、 this.testhit1._x になりますが、当然そう言うMCがなければundefinedになります。 指定しているMCを配置していないということではないでしょうか。 パスを通したいMCがどこにある何という名前なのか、 Flashの構造が分からないと何とも言えないと思います。
|
ゲスト | Åê¹ÆNo.2119 投稿日時: 2003-12-13 1:45 |
Re: パスを通すときのルール[MX] 例えば、"_root.test"ムービークリップの中の
[Name+"hit"+i]ムービークリップの"_x"にアクセスするのならば、
のように記述します。 Macromediaサポートのページには this[]を使うように書かれてますので、 私もかなり混乱しましたが、 そのままthisを使用するのではなく、 該当のパスを使用してみてください。 これで万事解決!なはず… |
|
森 巧尚 | Åê¹ÆNo.2120 投稿日時: 2003-12-13 2:10 |
モデレータ 居住地: 宝塚 投稿: 650
使用環境:
.5/CS4/Safari3 XP+2000//IE6 |
Re: パスを通すときのルール[MX] まずは、
などとして、作ったインスタンス名が正しいかを確認されてはどうでしょうか。 「this[インスタンス名]」というのは、「このムービークリップの階層にある[インスタンス名]という名前のムービークリップ」のことを指します。 だから、まずインスタンス名が間違っていたらundefinedになりますし、 インスタンス名が正しくても、その階層にそのインスタンス名を持つムービークリップがなければundefinedになります。 functionで指定するthisはその関数が定義されたムービークリップを指していますので、他の階層から呼び出していたりすると、thisの位置が思っているのと違う場所を指していることもあります。
|
tomochan | Åê¹ÆNo.2123 投稿日時: 2003-12-13 3:10 |
半人前 居住地: サッポロ 投稿: 37
使用環境:
XP FLASH PRO CS5 |
Re: パスを通すときのルール[MX] すいません舌足らず & 間違いでした。
a = this[Name+".hit"+i]._x でした。 要するに Name = C_1 i = 1 だったとして。 this.C_1.hit1._x を取得したいわけです。 これをニュアンス的書きますと this.Name."hit"+i._x と書いて取得したいのです。 これが引数Nameのみの場合 this[Name]._x と書けばいいのはわかるのですが 間にドットをはさむ場合に this[Name+".hit"+i]._x と書いた場合 文章的には C_1.hit1._x になってるはずなのですが 値を取得できません この場合はどうしたらよいのでしょうか? |
KURAGE | Åê¹ÆNo.2124 投稿日時: 2003-12-13 3:40 |
常連 居住地: 東京都 投稿: 199
|
Re: パスを通すときのルール[MX] this.Name."hit"+i._x を[]表記で表すと
this[Name]["hit"+i]._x となります。 従ってthis[Name]["hit"+i]._xの表記でundefinedが返ってくるのであれば、 インスタンス指定が間違ってるorインスタンスが存在しない等の理由が考えられますので trace(Name+"hit"+i); trace(this[Name]); trace(this[Name]["hit"+i]); trace(this[Name]["hit"+i]._x); のようなスクリプトで 「インスタンスが存在するか」「インスタンス指定は間違っていないか」チェックしてみてはいかがでしょうか |
tomochan | Åê¹ÆNo.2125 投稿日時: 2003-12-13 4:23 |
半人前 居住地: サッポロ 投稿: 37
使用環境:
XP FLASH PRO CS5 |
Re: パスを通すときのルール[MX] ありがとうございます これで解決しました!
基本的にドットで区切る部分を[]で囲むと考えていいのですね? いろいろと応用が利きそうなので試してみようと思います。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |