« ボタンを押してメールソフトを起動する | メイン | お勧め入門書 »
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センターもよろしく