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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     外部SWFに変数を渡す
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
morry
Åê¹ÆNo.13811
投稿日時: 2005-1-7 10:25
新米
居住地: 大阪
投稿: 19
使用環境:
win2000
Flash MX2004
外部SWFに変数を渡す
いつもお世話になっております。
ちょっとわからないことがあって投稿させて頂きました。
htmlファイルにswfファイルを表示しそのswfファイル
にFlashVarsから変数をセットしています。
さらにhtmlに表示しているswfファイルに外部swfファイルを
読み込んでいるのですが、swfから読み込んだ外部swfに変数を
渡すことはできるのですか?
お力添えどうぞよろしくお願いします。
kisii
Åê¹ÆNo.13812
投稿日時: 2005-1-7 10:40
常連
居住地:
投稿: 122
使用環境:
WinXP
FlashMX2004Pro
Re: 外部SWFに変数を渡す
morryさんが、外部swfをどうやって取り込んでいるのか分からないのですが、元となるswfにloadMovieを使ってロードしているのでしょうか。
見当違いな回答でしたら申し訳ございませんが、
こういう感じでしたら、_rootにFlashVarsから渡される変数が存在しているので、
取り込んだswfは_rootを参照すれば変数が見えると思います
morry
Åê¹ÆNo.13814
投稿日時: 2005-1-7 11:04
新米
居住地: 大阪
投稿: 19
使用環境:
win2000
Flash MX2004
Re: 外部SWFに変数を渡す
kisiiさん返信ありがとうございます。
引用:

kisiiさんは書きました:
morryさんが、外部swfをどうやって取り込んでいるのか分からないのですが、元となるswfにloadMovieを使ってロードしているのでしょうか。
見当違いな回答でしたら申し訳ございませんが、
こういう感じでしたら、_rootにFlashVarsから渡される変数が存在しているので、
取り込んだswfは_rootを参照すれば変数が見えると思います

loadMovieを使ってるんですが、うまくいきません。
FlashVarsからはfilenameという変数を受け取っています。
filenameにはxmlファイルのurlをセットしています。
読み込まれる外部swfのコードは以下のようになっています。

System.useCodepage = true;
myXML = new XML();
myXML.ignoreWhite = true;
myXML.load(_root.filename);
myXML.onLoad = function(loaded) {
   if (loaded) {
     …………
    }

上のコードでは間違っているのでしょうか?
kisii
Åê¹ÆNo.13815
投稿日時: 2005-1-7 11:27
常連
居住地:
投稿: 122
使用環境:
WinXP
FlashMX2004Pro
Re: 外部SWFに変数を渡す
FlashVarsからの変数が見えるかどうか、単純なスクリプトを作成し、実験してみました。

読み込む元のflaファイル:
yomi_mcというムービークリップを作成し、
this.yomi_mc.loadMovie("yomi.swf");

と記述。

読み込まれる側のflaファイル:
tst_txtというダイナミックテキストを作成し、
this.tst_txt.text = _root.tester;

と記述。

読み込み元のhtmlファイル:
<param name="FlashVars" value="tester=テスト">

を追加。

以上によりtst_txtに「テスト」と表示されました。
よって、_rootの参照はうまくいくはずだと思うので、

1.大元のswfがFlashVarsを受け取っているか
2.読み込まれる側が上手く読み込まれているか
3.変数によらず、読み込まれる側がXMLファイルをちゃんと読んでいるか

等、別の問題が発生しているのではと考えます。
今回、ご提示いただいたXMLコードの妥当性チェックはしていませんので、それの可能性もあります。
その場合は、このスレと話題がずれるので、別に投稿したほうがいいと思います。
morry
Åê¹ÆNo.13818
投稿日時: 2005-1-7 11:59
新米
居住地: 大阪
投稿: 19
使用環境:
win2000
Flash MX2004
Re: 外部SWFに変数を渡す
kisiiさん有難うございます。引用:

kisiiさんは書きました:

1.大元のswfがFlashVarsを受け取っているか
2.読み込まれる側が上手く読み込まれているか
3.変数によらず、読み込まれる側がXMLファイルをちゃんと読んでいるか

等、別の問題が発生しているのではと考えます。
今回、ご提示いただいたXMLコードの妥当性チェックはしていませんので、それの可能性もあります。
その場合は、このスレと話題がずれるので、別に投稿したほうがいいと思います。

1.大元のswfはFlashVarsを受け取って内容を表示するように
しているので問題ないと思います。
2.読み込まれる側も一応表示されます。FlashVarsから受け取った変数からXMLのデータを抜き取りそのなかのムービークリップに抜き取ったデータを表示したいのですがそれができません。
3.myXML.load("data.xml")と記述し大元のswfに読み込まず単独
でファイルを開くとちゃんと表示されます。これを大元のswfに外部ファイルとして表示しようとするとmyXML.load("data.xml")や
myXML.load(_root.filename)と記述してもxmlの内容は表示されません。外部ファイルとしたときはmyXML.load()でちゃんと読み込めてないようです。

もうちょっと色々試してみます。
kisiiさんご親切にどうも有り難うございました。
morry
Åê¹ÆNo.13819
投稿日時: 2005-1-7 13:11
新米
居住地: 大阪
投稿: 19
使用環境:
win2000
Flash MX2004
Re: 外部SWFに変数を渡す
morryです。
this.tes_txt = _root.filename;
としたところ変数は受け取っていました。
外部swfファイルとして読み込んだ場合にxmlのデータを取り出して
表示するコードを実行していないようです。
xmlから取り出すデータは数字で例えば1を抜き出した場合
リンケージ名が1のムービークリップをattachMovie()で表示する
ようにしています。

System.useCodepage = true;
myXML = new XML();
myXML.ignoreWhite = true;
myXML.load(_root.filename);
myXML.onLoad = function(loaded) {
if (loaded) {
rootNode = myXML.firstChild;
markNo = rootnode.firstChild.nodeValue;
_root.markarea.attachMovie(markNo, "newMC", 1);
}
}

といった感じです。
どうぞご教授お願いします。
morry
Åê¹ÆNo.13820
投稿日時: 2005-1-7 14:09
新米
居住地: 大阪
投稿: 19
使用環境:
win2000
Flash MX2004
Re: 外部SWFに変数を渡す
morryです。
_root.markarea.attachMovie(markNo, "newMC", 1);
の_rootを取ればできました。
初歩的なミスで投稿してすみません。
kisiiさんどうもお手数おかけしました。
どうも有り難うございました。
kisii
Åê¹ÆNo.13821
投稿日時: 2005-1-7 15:26
常連
居住地:
投稿: 122
使用環境:
WinXP
FlashMX2004Pro
Re: 外部SWFに変数を渡す
無事うまくいって良かったです
私もよく間違えていたのですが、loadMovieで読み込まれると、読み込んだ側の_rootが、読み込まれた側の_rootになります。
なので、別々にswfを作って結合した結果、パスがおかしくなることが良くありました。
traceをかけながら、パス確認をこまめにしていくとミスが減ると思います。
あと、個人的なやり方ですが、

・_rootは基本的に変数の格納庫にしておいて、読み込んだswf間でのデータのやり取りに使う
・ムービーを読み込んだら、そのムービーへのパスを_rootに格納し、そこを参照する

のようなやり方を徹底しておきました。
これだと、パスの変更があっても楽に変更できます
色々なやり方があると思うので、そのFlashにあったやり方を発見していこうと私も頑張ります。
morry
Åê¹ÆNo.13826
投稿日時: 2005-1-7 17:08
新米
居住地: 大阪
投稿: 19
使用環境:
win2000
Flash MX2004
Re: 外部SWFに変数を渡す
kisiiさんどうも有り難うございます。
そうですね。こまめにパス確認していかないとだめですね。

引用:

・_rootは基本的に変数の格納庫にしておいて、読み込んだswf間でのデータのやり取りに使う
・ムービーを読み込んだら、そのムービーへのパスを_rootに格納し、そこを参照する

のようなやり方を徹底しておきました。
これだと、パスの変更があっても楽に変更できます
色々なやり方があると思うので、そのFlashにあったやり方を発見していこうと私も頑張ります。

大変参考になりました。
私もがんばって勉強します。
どうも有り難うございました。
永井勝則
Åê¹ÆNo.13828
投稿日時: 2005-1-7 18:48
職人
居住地: 白馬村
投稿: 796
使用環境:
Windows 7 :Flash CS4:
10.6.8 :Flash CS5.5
Re: 外部SWFに変数を渡す
Flash MX 2004からMovieClip._lockrootというのがあります。


----------------
永井勝則:
himco.jp :

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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