1

この質問がここにあるかどうかはわかりませんでしたが、試してみます。だから私は私のプロジェクトをディレクターから移動しようとしています| Shockwave Player(これを聞いたことがある場合)はさまざまな理由でFlash Playerに移行します。どのように始めればよいかを考えているときに、質問があり、本当に不思議に思いました。ポイントへ。

現在Directorでは、ユーザーインターフェイスの各ゲームウィンドウ(小さなアラートや多くの要素を含む大きなウィンドウなど)が必要に応じて描画されます-実際のウィンドウのグラフィックイメージは、構成(幅、高さ、すべての要素とそのプロパティなどのあらゆる種類のプロパティ)から多数のグラフィックス(たとえば、ウィンドウの背景は4つの角のような9つの小さな部分から作成されます)からまとめられていることを意味します。動的な幅と高さのためにコーナーの間に4つの中央のピース、ウィンドウを埋めるために1つの中央のピース)そしてステージに追加されます。このアプローチにより、配色を変更したり、要素の何かを改善したりする場合に、実際のウィンドウとその中のすべてを再描画することなく、各グラフィック要素を簡単に編集できます。また、要求された場合にのみウィンドウが描画されるため、リソースを節約できます。

ここで、すべてのウィンドウを作成してライブラリに配置し、要求されたときにステージに追加するのとは逆に、Flashでそのようなコードを記述する価値があるかどうかを理解する必要があります。どう思いますか?そのような実装を書く価値はありますか?

4

2 に答える 2

1

IMO、それは1)Flashの描画API /グラフィックスクラスにどれだけ慣れているか、および2)各ウィンドウ/ダイアログがどれだけ柔軟である必要があるかに依存します。

それらを静的オブジェクトとしてまとめる方が簡単であり、寸法やスタイルを大幅に変更する柔軟性が必ずしも必要でない場合(最初に変更してから変更が必要になった回数を数えることができますか?何年も前のDirectorで?)、特にFlashの描画APIにあまり慣れていない場合は、時間とエネルギーをかけて動的に再作成するよりも、これを行う方が明らかに簡単です。

とはいえ、Flashの描画APIを使用すると多くのことを動的に実行できるため、時間や関心があれば、描画APIに慣れたい場合は、「正しい」方法で掘り下げて実行することをお勧めします。

この種のことを行うための私の方法は、通常、次のようになります。

  • Sprite/MovieClipを拡張する別のクラスを作成します。'Dialog.as'のようなもの。
  • public init()、show()、hide()メソッド、およびprivate build()メソッドを作成します。
  • init()は、アプリの初期化時に1回だけ呼び出され、内部的に保持するためにいくつかのグローバルパラメーター(パディング、色など)を取ります。
  • show()は、テキスト(文字列)、またはSprite/MovieClipのいずれかの引数を取ります-このダイアログに表示したいものは何でも。呼び出されると(ウィンドウを生成する場合)、これに加えて、init()中に最初に渡されたinitパラメーターを使用して、それ自体を描画し、それ自体を再表示します(.alphaプロパティ間、または単に.visibleプロパティ)。
  • ダイアログを閉じるときは、必ずhide()メソッドを呼び出してください。このメソッドは、最初に自分自身を非表示にしてから、作成されたもの(リスナーの削除など)をクリーンアップして、次に呼び出されたときに自分自身を新しく描画できるようにします。 。

このオブジェクトにステージへの参照を渡すことも意味があります(元のinit()呼び出しで)。これにより、ステージ上でそれ自体を中央に配置してサイズを変更し、ディスプレイリストの一番上にChild自体を追加することもできます。それは常に何よりも優れているということです。

これがお役に立てば幸いです。

于 2011-06-29T23:43:33.930 に答える
0

2Dの場合、これを確認できます。

http://pushbuttonengine.com/

3Dの場合は、ここから開始できます。

http://alternativaplatform.com/en/alternativa3d/

Unity3Dも提案できますが、これはフラッシュの範囲外です

それが役に立てば幸い

于 2011-06-29T23:41:58.173 に答える