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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アメブロで音声ファイルを貼る方法
-
FLASHでゲームを作っていた人は...
-
VBAのコンボボックスの年月表示...
-
uwscでExcelに自動記入
-
Python でシャットダウンのコマ...
-
この曲はなんでしょう?
-
laptop go2からの買い替え、lap...
-
スクリップト
-
私のコンピューター上のファイ...
-
arduino プログラムについて
-
chrome flash
-
FLASHの再生はできないのでしょ...
-
フラッシュゲームアーカイブ2
-
ウェブサイトで Flash が事実上...
-
Flashコンテンツを使ったWebサイト
-
Flash Playerのサポートが終了
-
Form内のselectを連動させるに...
-
Flashをブロックしないで
-
ダウンロードしたデジブックはa...
-
ad or script について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フレーム内に移動したい
-
Access2010でサブフォームのフ...
-
フレーム内のオプションボタン...
-
車の運転時のメガネ 縁なし(...
-
ソーラーパネルのアルミフレー...
-
ドロップフレームの計算をエク...
-
ボタンクリックで本のページを...
-
動画の遅延再生プログラム
-
トグルボタンの排他制御でご教...
-
フレームでのResponse.Redirect
-
B2ポスターフレームの自作
-
2Dゲーム作成する際、アニメー...
-
cisco catalystのトラブルシュ...
-
リンク設定時の「ターゲット」...
-
エクセルVBA フレーム内のイベ...
-
Directshowを使って動画を画像...
-
#1009: null のオブジェクト参...
-
フレーム内でのリダイレクトに...
-
2倍速を等速動画に(車載動画)
-
ActionScript 3.0についての質...
おすすめ情報