0

私はタイムライン コードでゲームを書いています。ゲーム内の異なるフレーム (部屋) 間で情報を共有できるようにしたい。もちろん、タイムライン コードは、それが記述されているフレームに限定されます。

かなりの量の読み物 (「Foundation Game Design with Flash」および多数の記事、チュートリアル、フォーラムなど) を行った後、ドキュメント クラスを使用することにしました。これもうまくいきませんでした。フレーム1でのみ機能し、残りのフレームでは機能しないようです(私は4つ持っています)。

フレーム 1 で起こったことにフレーム 4 を応答させるにはどうすればよいですか? たとえば、プレーヤーがフレーム 1 で何かを達成した場合、フレーム 4 のムービー クリップが表示されるようにします。

4

3 に答える 3

2

タイムラインにコードを書いている場合、タイムラインに 2 つのレイヤーを作成することをお勧めします。1 つは「フレーム アクション」用です。このレイヤーには、単一のフレームに固有のコードを挿入します (ムービークリップが停止したときに機能します)。その特定のフレームで)..また、global-actions と呼ばれるレイヤーをもう 1 つ作成します (タイムライン全体に対して)。最初のフレームのみがキー フレームになり、タイムラインの最後まで空のフレームが存在する必要があります。このレイヤー アクションでは、同じタイムライン内の任意のキーフレームからアクセスするコードを記述します。

タイムライン全体に対して記述されたアクション (グローバル アクション) で変数を定義すると、すべてのフレームで使用できるようになります。

何らかのアクションに基づいて別のフレームに移動したい場合は、グローバル アクションを含むレイヤーにいくつかの関数を記述し、フレーム アクションを介してその特定の関数を呼び出すだけです。別のフレームに移動するには、フラッシュの「gotoAndStop(frameNumber)」関数を使用します。

動作しますが、この方法での使用はお勧めしません。

HTH。

于 2013-04-29T09:23:32.170 に答える
1

静的変数を使用できます。これらは、クラスのインスタンスではなく、クラスにリンクされている変数です。

ドキュメント クラスの名前が Document.as で、変数 playerLives をプログラムのどの部分からでも見えるようにしたいとします。

Document.as 内で宣言します。

public static var playerLives:int = 3;

次に、コード内の他の場所からこれを直接参照できます。

Document.playerLives

(変数はクラスのインスタンスではなく、クラス自体のメンバーであることに注意してください)。

ドキュメントをきれいに保ちたい場合は、専用の Statics クラスを使用してこれらの変数を保持するか、関連するクラスにそれらを添付することができます (例: Player.lives)

私は何年もタイムライン/フレームを使用していませんが、これが私が使用していた方法だと思います!

NB Statics はあなたの目的には問題ありませんが、いくつかの点で、_globalAS2 の変数と同等です (少なくとも、同じ方法で使用できます)。多くの人は、それらの使用または過剰使用を承認しません。プログラムのどこからでも自由にアクセスできるため (したがって、カプセル化のオブジェクト指向の概念には忌み嫌われます)、個人的には、小さなケースでは気にしないようにしています。設計パターンのルールについて知っておくべき最も重要なことは、壊れる!

また、インスタンスメンバーよりもアクセスがわずかに遅くなりますが、常にアクセス/変更しない限り、これに気付くことはありません (フレームごとに参照/変更する必要があるプレーヤーの速度などを静的にすることは良くありません)。考え)。

お役に立てれば。

于 2013-04-29T09:07:05.670 に答える