flash 8 basic 試用版で勉強中です。
メインのタイムラインの1シーン1フレーム1行目に
var a:Number = 0;
があるとします。
1フレームのこれ以降の行や2フレーム以降で a に値を代入します。a をC言語などで言えばグローバル変数のように使用しているイメージです。
2フレーム以降でさまざまな条件を満たしたら(例えばゲームオーバーになったとか)、最初の画面、つまり1フレーム目に gotoAndStop() などで戻るようにしています。この時、1フレーム目に戻っても、a に保持している値は1フレームに戻る前の値を持っていたいのですが、これが出来ません。上に書いた 1行目の行が処理されてa に 0 が入ってしまいます。
これを回避するために、変数定義と初期化の行だけ1フレーム目に書いて、実際に絵などが書いてあり、処理の行が書いてある部分を2フレーム目以降にしています。そして、最初に戻る処理をしたい時、実際には2フレームに戻るという処理にしているのですが、なんかイケてない気がします。
これと同等の内容を通常はどうやってやるのでしょうか。#initclip というのが使えそうかな、と思ったのですが、これは Movieclip にしか使えないとヘルプに書いてあります。メインのタイムラインも Movieclip の親玉みたいなものかなと思ってやってみたのですが駄目でした。
やっぱり1フレーム目に戻る処理をした時点で1フレーム目に書いてあることは全て実行されるのでしょうか。(当たり前といえば当たり前な気もするけど)
flash ならではのやり方があるのか、私が簡単なことに気付いていないだけでしょうか。
ゼビウスなどで言えば1フレーム目はタイトルとメニューの画面で、a はハイスコアを持っているのと同等な感じです。まだ1回もゲームをやっていない時は 0 でよいが、1回終わって戻ってきた時はハイスコアなどの値を持っていたいのです。お願いします。
No.1ベストアンサー
- 回答日時:
私は,こんな↓感じにしています。
--------------------------
var a:Number;
trace(a); //←本当は不要
if (a == undefined) {
a = 0;
}
trace(a); //←本当は不要
--------------------------
trace(a); //←本当は不要
この行は本当に不要で,
この回答のためにだけ書いた,ムービープレビュー用のアクションです。
Flash MX(Flash Player 6 )までの場合,
未定義の変数の値は, 0 もしくは ""(空文字列) に勝手になっていたので,
ご質問の件は全然苦労しませんでした。
しかし,
Flash MX 2004(Flash Player 7)以降は,
未定義の変数の値は undefined になるので,
質問者さまと同じように,
フレーム1 を何度も通過しないように,
フレーム2 以上でフレーム移動させるか,上のような式を使っています。
正式にはどうすべきかはよくわかりません。
この回答は単なる参考程度にしてください。
回答ありがとうございます。if ( a == undefined ) なんて出来たのですね。これには気付いていませんでした。この書き方なら許容範囲内です。今の時点ではこの方法でやるしか仕方がないのかもしれません。またはやはり1フレーム目にはプログラムだけ書いて実質的には2フレームから内容を書く方式ですね。もともとflashはアニメーション作成ソフトであることを考えると、絵のないフレームを作成したり、プログラム上で必要な goto のラベル名をつけるためだけにフレームを作成するのはどうも違和感があったのですが、仕方がないのかもしれません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 【C++】IDirect3DSurfaceのディープコピーは可能ですか? 1 2022/07/06 02:47
- メガネ・コンタクト・視力矯正 失敗した高額メガネ 6 2022/12/03 23:11
- その他(ファッション) スポーツメガネでフレームの色は白などはあり? 2 2022/11/30 07:26
- メガネ・コンタクト・視力矯正 眼鏡が小さくて横や後ろが見づらい 6 2023/07/04 08:49
- サングラス・カラコン 4000円以内のメガネフレーム 9 2022/12/01 10:30
- 画像編集・動画編集・音楽編集 動画をディスク作成すると画像が乱れる。 4 2022/06/24 07:49
- メガネ・コンタクト・視力矯正 家用メガネの買い替えをしたく商業施設の眼鏡屋さんを3店舗回ったのですが目当てのものがなく困っています 4 2023/07/13 16:46
- 家具・インテリア ダブルのベッドにクイーンのマットレス 5 2023/02/11 08:35
- カスタマイズ(バイク) カスタマイズ 1 2022/11/12 01:09
- Visual Basic(VBA) フレーム内のオプションボタンの選択結果をセルに書き出したい。 図のような預金種目というフレームにオプ 2 2022/07/29 11:12
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
キーフレームとはなんですか?
-
手書き風FLASH(?)の作り方
-
MacBook Airで作成するトレス動...
-
#1009: null のオブジェクト参...
-
連番画像を読み込み、フレーム...
-
フレーム内に移動したい
-
めくれるカードの作成方法
-
トグルボタンの排他制御でご教...
-
Access2010でサブフォームのフ...
-
タイムラインを定期的にスター...
-
メガネのフレームの買い取りに...
-
imovie9の書き出し時間が長過ぎ...
-
先日赤札堂で眼鏡を購入し、今...
-
5フレーム目で3秒止めて7フレー...
-
iPhoneやiPadなどの黒いフレー...
-
Dreamweaver 3JでのHP作成!!!!!
-
眼鏡レンズを持参すればフレー...
-
ブラウザが揺れる(震動)させ...
-
[iframe]に関する質問です
-
Final Cut ProのDVD映像(チャ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フレーム内に移動したい
-
Access2010でサブフォームのフ...
-
#1009: null のオブジェクト参...
-
車の運転時のメガネ 縁なし(...
-
VBで動的に作成したパネルの上...
-
キーフレームとはなんですか?
-
【C++】IDirect3DSurfaceのディ...
-
VBAでIE操作時のLocationURLとURL
-
フレーム内のオプションボタン...
-
iframeはSEO的に不利になる?
-
2倍速を等速動画に(車載動画)
-
トグルボタンの排他制御でご教...
-
チェックボックスを横並びに表...
-
フレーム間の処理2
-
MacBook Airで作成するトレス動...
-
ソーラーパネルのアルミフレー...
-
ドロップフレームの計算をエク...
-
Directshowを使って動画を画像...
-
フレーム内でのリダイレクトに...
-
英語で「フレームの右上」
おすすめ情報