問答収集 カテゴリ:Flashプログラミング
現在のスレッド一覧 / 新規に質問を投稿
レス数:4 / 状態:解決済み / No:121 / ATOM
1 日付:2013/11/15(金)03:04:23 ID:uqGvQ4UrzKin
1 名前:みすぺよ  日付:2013/11/13(水)09:48:11 ID:M3aTGAZSDaTq

私は、現在 AS3でゲームを作っています。
基本的なゲームシステムは完成しましたが、
最後に本編で習得したスコアを
違うフレームで表示させる方法がわかりません。

基本的な流れは、

本編 → ゲームオーバー → スコア表示

と言う感じでフレームを分けてあります。

本編のフレームでは、scoreと言う変数を宣言しています。
var score = 0;

しかし、変数は本編でしか宣言されていないので
結果画面へ持ってくる事ができません。

これでは、score の変数を使って最後のスコア画面でランクの表示等ができません。
どうすれば良いでしょうか?
2 日付:2013/11/15(金)03:44:06 ID:uqGvQ4UrzKin
Adobe Flash を使って、タイムラインに変数を宣言した場合、変数として機能せず、記述した表示オブジェクトのプロパティに変換されます。
「本編のタイムライン」に変数を宣言したのであれば、「本編の表示オブジェクト」のプロパティとなります。

ゲームオーバーに遷移する事で、「本編の表示オブジェクト」がステージから消えるのであれば、スコア情報も同時に失われます。

どのシーンからでもアクセス可能なグローバルな変数を用意したい場合、「最上位のタイムライン」に変数を宣言します。
「最上位のタイムライン」に変数を宣言すると、ドキュメントクラス(メインタイムライン)のプロパティとなります。
(ドキュメントクラス用のファイルを用意して、直接記述する事もできます)

var score = 0;


「ドキュメントの表示オブジェクト(最上位のタイムライン)」は、ステージの表示リストの 0 番目に格納されています。

var document_obj:Object = stage.getChildAt(0);
trace(document_obj.score);
3 名前:みすぺよ  日付:2013/11/15(金)09:49:37 ID:M3aTGAZSDaTq
別のフレームでもスコアの表示ができました。
ありがとうございました。
4 名前:状態変更 日付:2013/11/15(金)09:49:50 ID:M3aTGAZSDaTq
この質問の状態を『解決』に変更しました。
このスレッドについて
質問の状態 :
解決済み
投稿開始日 :
2013/11/15(金)03:04:23
投稿終了日 :
2013/11/22(金)09:50:23
投稿者 :
レス総数 :
4
スレッド番号 :
121
MondoCollectionSystem ver.0x00020000 by Hakuhin