トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     loadMovieでの変数渡しについて
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ishikawa7
Åê¹ÆNo.2462
投稿日時: 2003-12-24 13:00
新米
居住地:
投稿: 4
使用環境:
Windows2000 SP4
FlashMX 2004 Pro
loadMovieでの変数渡しについて
初めて投稿いたします石川奈々恵と申します。
宜しくお願い致します。

現在、呼び元swf(main.swf)から変数の値渡しで呼び先のswf(sub.swf)を表示するという処理を行なおうとしております。

main.swfには、disp_mcというムービークリップが貼ってあり、
そこにsub.swfを表示しようとしています。
loadMovie("sub.swf?id=1", _root.disp_mc);

ここで問題が発生しているのですが、loadMovie()で、
loadMovie("sub.swf?id=1", _root);
のようにメインのルートにムービーをロードした場合は、
sub.swfに値が渡るのですが、
_rootに貼ってあるムービークリップにsub.swfをロードした場合
値が渡りません。
メインから、渡った変数によってsub.swfに表示する内容を変えて、指定した位置に表示したいので、先に書いた
loadMovie("sub.swf?id=1", _root.disp_mc);
のような使い方をしたいのですが、これは不可能なのでしょうか?
それとも、何かとても根本的なところで、loadMovieの使い方が、
間違っているのでしょうか?

過去ログも捜したのですが、それらしい話題が見つかりませんでした。

どなたかご教授いただければ幸いです。
宜しくお願い致します。

環境:
Windows2000 SP4
FlashMX 2004 Pro
c-geru
Åê¹ÆNo.2464
投稿日時: 2003-12-24 13:31
職人
居住地: 文京区本郷
投稿: 209
使用環境:
10.6.8+ CS5.5
Win7+ CS4
Re: loadMovieでの変数渡しについて
小川です。石川さん、こんにちは。

引用:
ここで問題が発生しているのですが、loadMovie()で、loadMovie("sub.swf?id=1", _root);のようにメインのルートにムービーをロードした場合は、sub.swfに値が渡るのですが、_rootに貼ってあるムービークリップにsub.swfをロードした場合値が渡りません。

ムービークリップにloadMovieする場合は、スクリプトで設定された変数等はクリアされてしまうので、「?id=1」はloadMovie自体にクリアされてしまうのではないでしょうか?

方法としては・・・

・変数「id」を呼び出し元の_rootに作っておいて、sub.swfからは「_root.id1」で参照する。
・sub.swfのロード完了を確認してから、変数「id」を渡す。

といった感じでしょうか。

ロード完了については、以下のスレッドが参考になるかもしれません。
323.loadMovieで読み込まれたswfの変数を参照

どうでしょうか。
野中文雄
Åê¹ÆNo.2465
投稿日時: 2003-12-24 14:00
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: loadMovieでの変数渡しについて
値が渡らないことは、どのように確認されていますか?

sub.swf内で_root.idを参照していると、外部読込みされた場合には、ロード元のタイムラインが_rootになります。また、渡された変数値によりフレーム移動するという場合ですと、ロードの完了を待たなければ移動できません。結果として、処理は無視されることになります。

試してみたかぎりでは、問題なく変数が渡っています。
引用:
石川奈々恵さんは書きました:
main.swfには、disp_mcというムービークリップが貼ってあり、
そこにsub.swfを表示しようとしています。
loadMovie("sub.swf?id=1", _root.disp_mc);

ここで問題が発生しているのですが、loadMovie()で、
loadMovie("sub.swf?id=1", _root);
のようにメインのルートにムービーをロードした場合は、
sub.swfに値が渡るのですが、
_rootに貼ってあるムービークリップにsub.swfをロードした場合
値が渡りません。

ただ、MovieClipをターゲットとしてロードする場合には、読込み待ちさえすれば自由に変数が設定できるので、クエリーストリングを使用することはあまり一般的ではないと思います。
引用:
loadMovie("sub.swf?id=1", _root.disp_mc);
のような使い方をしたいのですが、これは不可能なのでしょうか?
それとも、何かとても根本的なところで、loadMovieの使い方が、
間違っているのでしょうか?
...
環境:
Windows2000 SP4
FlashMX 2004 Pro


----------------
 

ishikawa7
Åê¹ÆNo.2466
投稿日時: 2003-12-24 14:30
新米
居住地:
投稿: 4
使用環境:
Windows2000 SP4
FlashMX 2004 Pro
Re: loadMovieでの変数渡しについて
石川です。
小川様、野中様、ご返信ありがとうございます。

お二方のご指摘で、原因がわかりました。
sub.swf側の処理で、_root.idという参照をしていました。
したがって、main.swfの_rootにsub.swfをロードした際は、
たまたま変数の階層が合っていただけという事でした。
実際にloadMovieで呼んだ時には、メインのルートにある変数だと
認識されてしまっていたのですね。

引用:

Fumioさんは書きました:
値が渡らないことは、どのように確認されていますか?

sub.swf内で_root.idを参照していると、外部読込みされた場合には、ロード元のタイムラインが_rootになります。また、渡された変数値によりフレーム移動するという場合ですと、ロードの完了を待たなければ移動できません。結果として、処理は無視されることになります。


値が渡らない事の確認方法としては、sub.swf内で、適当なテキストボックスに、
txtbox.text = _root.id;
という形で、値を表示させて確認していました。
それで、mainの_rootにロードした際は、きちんと値テキストボックス内に
表示されていたので、なんでだろう?という事になったのでした。

とりあえずmain内に_root.idを作り、
sub側から、_root.idを参照する事で解決しました。

ムービーの完了待ちについてなども大変勉強になりました。
ありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops