0

「ウィンドウ」をコーディングするにはどうすればよいでしょうか。GUI の作成を開始しており、GUI のコーディング方法を学びたいと考えています。1 つはスキン可能で、実際にループして実行時にそれ自体を作成します。これは少しあいまいかもしれないことを理解していますので、詳細を追加します。

実際に自分自身を「作成」するもの。私が調べたほとんどの GUI チュートリアルは、画面に追加される「画像」に依存しています。ウィンドウでスキンを使用できるようにしたい。私の「肌」は単なる「境界線」の集まりです。次にwindow.create(50,50)、50,50 が私の高さ、幅である場所を挿入すると、スキンに従ってそのウィンドウが作成されます。

おそらく、言語が長方形を描くときと同じように、異なる一連のルールに従うだけであることを理解しています(多分?)。しかし、私のすべての Google-fu スキルについて、これを教えてくれるチュートリアルを見つけることができません。

助けてください。ご覧のとおり、使用した言語は含めませんでした。作成方法を知る必要があるだけだと思う​​からです。とにかく、私は Actionscript 3 を使用しています。チュートリアルで十分です。または、この機能を持つ単一のクラスでさえ、コードを勉強します。または、GUI とそのプログラミングに関する本全体を知っている場合:D

4

2 に答える 2

1

純粋な As3.0 の GUI コーディングはかなり面倒です。ググってみるが、うまく出てこない。とにかく、私の場合は、SWC を使用して生成し、クラス マッピングとカスタマイズを行います。しかし、最善の方法がわかりません。他の方法では、bit101ライブラリを使用します。これにより、高度に抽象化されたWindowChartsComponentsが簡単に必要になります。下の画像を参照してください。

ここに画像の説明を入力

于 2012-08-22T06:48:24.023 に答える
0

実行するのは非常に困難で複雑な場合もあれば、非常に簡単な場合もあります。それは、ソリューションの柔軟性に依存します。まず、プログラムの構造と問題へのアプローチを設計する必要があります。

APIの観点からどのように見えるべきかというイメージから行くのが好きです。次のような GUI 要素を作成すると思います。

var wholeGui:MyGUI = new MyGUI();
var window:IGuiElement = new GuiWindow(dataObject, skinObject);
wholeGui.addElement(window);

では、何が必要でしょうか?

1) すべての GUI 要素を管理するオブジェクト。なんで?ユーザーが小さなウィンドウで「X」をクリックした場合、GUI要素がそれ自体で破棄されるべきではないという理由だけです。WholeGui オブジェクトがそれらを管理し、それらを破棄するイベントを含むすべてのイベントをリッスンします。この対話が複雑になる場合は、wholeGui オブジェクトとウィンドウ オブジェクト間の対話用のカスタム イベントを作成することを検討してください。

2) GUI オブジェクトのインターフェース。ここで問題になるのは、AS3 には実際には Sprite 用のインターフェースがなく、拡張された Sprite のように操作したいということです。ここでの回避策は、このインターフェイスで次のような宣言を行うことです。

function asSprite():Sprite;

そして、GuiWindow での実装は次のようになります。

public function asSprite():Sprite {
    return this;
}

もちろん、GuiWindow クラスは Sprite を拡張する必要があります。次に、次のように記述して、スプライトのプロパティとメソッドにアクセスできます。 window.asSprite.startDrag();

このインターフェイスは、GUI 要素を操作するために必要な機能を提供する必要があります。

3) この例の GuiWindow では、GUI 要素のクラス。

4) 要素に注入されるデータのクラス。ある場所からデータを動的にロードする場合、データを提供できない状況に対処する必要がありますが、そのロジックはウィンドウ内にあります。

5) スキンのクラス - スキン オブジェクトを動的に作成し、それを使用して、必要な方法でウィンドウを作成できます。

それは考慮すべきいくつかの考えです。

PS。読み込みプロセスを視覚化できるため、GuiWindow オブジェクトをコンストラクターではなく、作成後にデータで埋めることをお勧めします。

于 2012-08-22T11:55:15.797 に答える