• ベストアンサー

Action Scriptで変数を持ち越したい

 二つのシーンでAction Scriptを使用しています。 この時初めのシーンで作成された変数とそこに入っている値を次のシーンに持ち越したいのです。 例えばxに100が入っており、初めのシーンでENTERを押すごとに+5されていくとします。 (つまり、毎回値が決まってるわけではないと言うことです) そして次のシーンで、そのxの値を使用したいのです。 どなたか良い方法があれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
noname#35109
noname#35109
回答No.1

そのシーンと言うのは, 「挿入」→「シーン」 などで作る 「シーン 1」 とか 「シーン 2」 とか言う シーン ですよね。 そのシーンだと何も考えずに変数とその値は持ち越されますよ。 「シーン 1」 とか 「シーン 2」 とか言う シーン は, 作成上の便宜をはかるためのもので, 「シーン 1」 でも 「シーン 2」でも _root は _root です。 一度,複数シーンからなる SWF を, Flash の 「ファイル」→「読み込み」→「ステージに読み込み」で見てみられるとわかりますが, 「シーン 1」 も 「シーン 2」 も _root のつながったタイムライン上にあります。 だから,変数とその値も何も考えずにそもまま行き来できます。 ---------------------------- ムービープレビューで,trace で確認する場合ば、 Enterキーを押すとメニューの「再生」の方が優先されるので,ムービープレビューではうまく表示されませんから, 「0」キーを押すスクリプト例で書いてみます。 例えばですから,どんなのでも良いですが, 「シーン 1」 を次のように5フレーム作成します。             1     5  □レイヤー 筆・・|○     []| ←スクリプト専用レイヤー  □レイヤー 筆・・|●////[]|●| ←ボタン専用レイヤー まず,「シーン 1」 の フレーム1 のスクリプト。 -------------------- stop(); var x = 100; -------------------- 「シーン 1」 の フレーム1~4 のボタンシンボルのインスタンス のスクリプト。 ---------------------------- on (release, keyPress "0") { x += 5; trace(x); nextFrame(); } ---------------------------- 「シーン 1」 の フレーム5 のボタンシンボルのインスタンス のスクリプト。 ---------------------------- on (release, keyPress "0") { x += 5; trace(x); gotoAndStop("シーン 2", 1); } ---------------------------- ↑これで「シーン 2」に行きます。 「シーン 2」も「シーン 1」と同様のタイムラインにします。             1     5  □レイヤー 筆・・|○     []| ←スクリプト専用レイヤー  □レイヤー 筆・・|●////[]|●| ←ボタン専用レイヤー 「シーン 2」 の フレーム1~4 のボタンシンボルのインスタンス のスクリプト。 ---------------------------- on (release, keyPress "0") { x += 5; trace(x); nextFrame(); } ---------------------------- 「シーン 1」 の フレーム5 のボタンシンボルのインスタンス のスクリプト。 ---------------------------- on (release, keyPress "0") { x += 5; trace(x); gotoAndStop("シーン 1", 2); } ---------------------------- ↑これで「シーン 1」 の フレーム2 に行きます。 フレーム1 に戻すと,フレーム1 の  var x = 100; が効いて,また100に戻ってしまうので,フレーム2に戻すようにしてあります。 これで,「制御」→「ムービープレビュー」し, キー 0 を押してもらうと 延々と 100 に 5 が加算されるのがわかると思います。 作ったボタンをクリックしてもらっても同じです。 「シーン 1」と「シーン 2」の区別がつきにくければ,さらに下にレイヤーを追加して, シーンごとに違う何かを置いてもらうと,区別できると思います。 =================== ごちゃごちゃ長く書きましたが, 変数とその値は,シーンをまたいで持ち越されるのが普通です。

関連するQ&A