メイン 迷える子羊の部屋【初心者専用】 外部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さん返信ありがとうございます。
引用:
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というムービークリップを作成し、
と記述。 読み込まれる側のflaファイル: tst_txtというダイナミックテキストを作成し、
と記述。 読み込み元のhtmlファイル:
を追加。 以上により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さん有難うございます。引用:
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さんどうも有り難うございます。
そうですね。こまめにパス確認していかないとだめですね。 引用:
大変参考になりました。 私もがんばって勉強します。 どうも有り難うございました。 |
永井勝則 | Åê¹Æ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というのがあります。
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |