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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   とにかくFLASH【FLASHに関して全般】
     SWF間の変数のやりとりってできますか?
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
Pierce
Åê¹ÆNo.22200
投稿日時: 2005-12-15 18:31
新米
居住地:
投稿: 6
使用環境:
Windows XP Professional
Flash MX Version 6.0
SWF間の変数のやりとりってできますか?
はじめまして。
現在、Flash MXにてゲームを作っているのですが、swfを別々に用意し、それぞれの間で変数のやりかたはないものか探していたのですが、可能なのでしょうか?

例えば、a.swf内でb.swfをloadMovieで呼び出し、b.swf内の変数の値をa.swfに渡す。というカンジです。
ただ、CGIなどをはさまず、直接やりとりしたいのです。

どなたか何か良い方法があれば教えていただけると幸いです。
ひろゆき
Åê¹ÆNo.22201
投稿日時: 2005-12-15 18:36
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: SWF間の変数のやりとりってできますか?
アカウント編集」で、使用環境は書いておきましょう
プロフィール・使用環境記入のお願い

a.swf
	|_ b_mc <-- b.swf
という構造で、
b_mc.loadMovie("b.swf");
で、読み込みをしているということですね?

だとすれば、
b.swf 上の変数 p は、a.swf から見ると、b_mc.p です。
a.swf 上の変数 q は、b.swf から見ると、_root.q または、_parent.q です。

詳しくは、
Flash ActionScript Helper: ターゲットパス
をどうぞ。


----------------
質問する際は、回答者に具体的な情報を与えてください。

Pierce
Åê¹ÆNo.22202
投稿日時: 2005-12-15 18:44
新米
居住地:
投稿: 6
使用環境:
Windows XP Professional
Flash MX Version 6.0
Re: SWF間の変数のやりとりってできますか?
大変、丁寧な説明ありがとうございます。
説明の中で1箇所わからないところがあったのですが、b_mcとは何かのインスタンス名なのでしょうか?
質問ばかり何度も申し訳ありません。
ひろゆき
Åê¹ÆNo.22203
投稿日時: 2005-12-15 18:52
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: SWF間の変数のやりとりってできますか?
引用:
a.swf内でb.swfをloadMovieで呼び出し

とありましたが、loadMovie はお使いになったことがおありですか?

もし、おありなのであれば、そのときは、どのようなスクリプトを書かれましたか?


loadMovie とひとことで言っても、
loadMovie("b.swf", "MovieClip");
MovieClip.loadMovie("b.swf");
loadMovieNum("b.swf", 1);
などがありますね。

b.swf をどこに読み込むのかを明示されておられませんでしたので、
一般的だと思われる2つめのスクリプトで、
b_mc というムービークリップ・インスタンスに読み込むと仮定しました

FN0307007 - MovieClip.loadMovieで外部ファイルを読込む


----------------
質問する際は、回答者に具体的な情報を与えてください。

Pierce
Åê¹ÆNo.22207
投稿日時: 2005-12-15 21:37
新米
居住地:
投稿: 6
使用環境:
Windows XP Professional
Flash MX Version 6.0
Re: SWF間の変数のやりとりってできますか?
失礼いたしました。
a.swfのフレームアクションで_root.loadMovie("b.swf")と指定しています。
野中文雄
Åê¹ÆNo.22211
投稿日時: 2005-12-15 22:24
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: SWF間の変数のやりとりってできますか?
アドバイスや紹介されたドキュメントなどには、一応は目をとおして、そのうえで目的にそぐわないとか、意味がわからない部分があればその旨をお答えにならないと、なかなか話が先に進みませんよ。
引用:
Pierceさんは書きました:
a.swfのフレームアクションで_root.loadMovie("b.swf")と指定しています。

引用:
ひろゆきさんは書きました:
アカウント編集」で、使用環境は書いておきましょう
プロフィール・使用環境記入のお願い

情報としてはひろゆきさんがご紹介されたふたつのドキュメントに加えて、「loadMovie使用時のパス指定」をご覧になれば、必要なポイントはほぼカバーされていると思います。さらに、もし変数について理解が不十分でしたら、併せて「変数」をお読みください。
引用:
詳しくは、
Flash ActionScript Helper: ターゲットパス
をどうぞ。

引用:
ひろゆきさんは書きました:
FN0307007 - MovieClip.loadMovieで外部ファイルを読込む


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

Pierce
Åê¹ÆNo.22253
投稿日時: 2005-12-16 21:12
新米
居住地:
投稿: 6
使用環境:
Windows XP Professional
Flash MX Version 6.0
Re: SWF間の変数のやりとりってできますか?
大変失礼いたしました。

自分がわからないのは、
引用:
a.swf
|_ b_mc <-- b.swf

と書かれたところで、b_mcというものが何なのかがさっぱりわかりませんでした。
Flashにおける変数について理解が足りず、「変数=数値や文字を格納するもの」という固定観念で見ていたため、リファレンスデータ型というものを理解していませんでした。

基本的な部分からFlashについて勉強してなおしてきます。
お騒がせして大変申し訳ありませんでした。
ひろゆき
Åê¹ÆNo.22256
投稿日時: 2005-12-16 21:25
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: SWF間の変数のやりとりってできますか?
引用:
a.swfのフレームアクションで_root.loadMovie("b.swf")と指定しています。

これだと、_root と b.swf が置き換わってしまうので、
変数のやりとりはできなくなると思います。

なので、

_root のフレームアクションに
this.createEmptyMovieClip("b_mc", 1);
b_mc.loadMovie("b.swf");
とするか、

b_mc というムービークリップを _root に配置した上で、
b_mc.loadMovie("b.swf");
とすれば、

変数のやりとりはできるでしょう。


引用:
「変数=数値や文字を格納するもの」という固定観念で見ていたため、リファレンスデータ型というものを理解していませんでした。

というより、ムービークリップとターゲットパスの学習をされた方がよろしいかと。


----------------
質問する際は、回答者に具体的な情報を与えてください。

野中文雄
Åê¹ÆNo.22261
投稿日時: 2005-12-16 22:07
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: SWF間の変数のやりとりってできますか?
「b_mc」というのは、a.swfを書出したドキュメントファイルa.flaのメインタイムライン(_root)上に配置したムービークリップシンボルのインスタンスで、"b_mc"とインスタンス名をつけたものです。

Flashコンテンツは、メインタイムライン(_root)を起点とするタイムライン(MovieClip)の階層構造で作成されます。したがって、多くのスクリプトでは、その制御対象となるタイムライン(MovieClip)をターゲットとして指定する必要があります。これが、「ターゲットパス」という概念です。
引用:
Pierceさんは書きました:
自分がわからないのは、
引用:
a.swf
|_ b_mc <-- b.swf

と書かれたところで、b_mcというものが何なのかがさっぱりわかりませんでした。

今回のご質問の場合には、「リファレンスデータ型」というのは関わってこないように思われます。それとも、渡したい変数値が「リファレンスデータ型」なのですか?
引用:
Flashにおける変数について理解が足りず、「変数=数値や文字を格納するもの」という固定観念で見ていたため、リファレンスデータ型というものを理解していませんでした。

Pierceさんは、以下のフレームアクションを記述されました。
_root.loadMovie("b.swf")
これはメインタイムライン(_root)をターゲットとして、外部SWFファイル"b.swf"をロードするということです。それに対してひろゆきさんは、メインタイムラインでなく、_rootに配置したMovieClip、仮に名前をb_mcとして、そのインスタンスをターゲットにした方がよいのではないかというアドバイスをされているわけです。
引用:
ひろゆきさんは書きました:
b_mc というムービークリップを _root に配置した上で、
b_mc.loadMovie("b.swf");
とすれば、

このあたりの意味合いがまだよくおわかりにならないということでしたら、まず「ターゲットパス」から基本的な概念について勉強された方がよいと思います。ターゲットパスを理解せずにスクリプトを書くのは、東西南北がわからずに地図を読むのに等しい。それほど大切な事項です。
引用:
基本的な部分からFlashについて勉強してなおしてきます。


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

Pierce
Åê¹ÆNo.22305
投稿日時: 2005-12-18 12:19
新米
居住地:
投稿: 6
使用環境:
Windows XP Professional
Flash MX Version 6.0
Re: SWF間の変数のやりとりってできますか?
大変丁寧に説明していただき、ありがとうございます。

今まで、ムービークリップはライブラリの中にあるべき物(?)だと思っており、ムービークリップという変数があることは全然知りませんでした。
b_mc.loadMovie("b.swf")と書くにあたり、何かムービークリップを作り、b_mcとインスタンス名をつけなければならないと考えていたため、勘違いをしていたようです。

ひろゆきさんと野中文雄さんの丁寧な説明とご紹介いただいたサイトのおかげで読み込むことができました。
今現在は、読み込んだswfのActionScriptで_rootを多用しており、そのあたりの調整をしています。

ひろゆきさんと野中文雄さん、このような質問に付き合っていただき大変ありがとうございます。
(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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