« ボタンを押してメールソフトを起動する | メイン | お勧め入門書 »

2006年06月07日

SWFを他のムービーに読み込んだら動かない

Flashでswfを読み込むときは、ターゲットパスが大切になります。
(他の場合でも、ですが。)

ターゲットパスがよくわからないという人向けに、物で例えてみます。

机の上に手帳がのっています。
最初はそのページをめくるという命令があったら、

<「机」の上の「手帳」のページをめくる。>

となってたとします。
この「机」の上と「手帳」の間に「ノート」を差し込んだら、上の指定方法では上手くいきません。
(人間ならなんとかしますけど。)

この場合、

<「机」の上の「ノート」の上の「手帳」のページをめくる。>

となります。
別の指定方法では、その命令が手帳に書いてあった場合には、

<この「手帳」のページをめくる。>

などと書くことも出来ます。

たとえ話はここまで。

ここで、「ページをめくったら命令が見えなくなっちゃうじゃないか!」とか言わないように。
たとえ話なので、理解できればOKです。

理解できなければ・・・
OSのディレクトリの指定の様な物・・・で、わかるかな?

さて、本題。

・スクロールするswf ムービーA とする。
・読み込む土台のswf ムービーB とする。
・ムービーAをムービーBのムービークリップmc1に読み込む。

ムービーAは_root(一番上)の階層にテキストエリアのmain_textとボタンを配置し、命令はこんな感じになっています。

on (rollOver) {
_root.main_text.scroll -=1;
}

ここでは_rootからの指定にですね。
絶対指定という指定方法で、わかりやすいのですが、別のムービーに読み込むと事情が変わります。
この辺はもう何年も何百回も繰り返しているFAQ中のFAQであり、同時に初心者がつまずくポイントでもあります。

さて、

_root.main_text.scroll -=1;

これをムービーBのmc1に読み込むと次のように指定するのが、正しくなります。

_root.mc1.main_text.scroll

テキストエリアもボタンもmc1に読み込まれているわけで、単純に

main_text.scroll -=1;

と書けばOKです。

また、もし、ボタンをムービークリップでかこんでいるなら

_parent.main_text.scroll -=1;

と書きます。

_parent は1こ上の階層という意味で、相対指定といいます。
読み込むswfの方には_rootから始まる指定(絶対指定)は使わない方がよいということになります。

投稿者 usuaji : 2006年06月07日 21:14

トラックバック

このエントリーのトラックバックURL:
http://usuaji.sakura.ne.jp/mt/mt-tb.cgi/1100

規約に同意して登録 解除  

■HSPセンターもよろしく

コメント

コメントしてください




保存しますか?