0

私はActionScript3を使用してFlashでカードゲームを作成しようとしています。私は言語(AS2で育った)にあまり精通していませんが、このプロジェクトにはより適切であると考えました。

ただし、これの悪い点は、すぐに問題が発生したことです。個々のカードをムービークリップとして扱っていますが、本当に必要なのは、カードに整数値を割り当てることです(実際にはそうではありません。しかし、例として、私がポーカーに取り組んでいて、すべてのエースに値1を持たせたいとしましょう。なぜなら、それらは最高のカードであり、キングには2です。

私はそれを探してみましたが、見つけたのはムービークリップの配列を作成する方法だけです。この質問はそれほど難しくないはずです!誰かが私を助けることができますか?

(余談ですが、私は本当にムービークリップを操作する必要がありますか、それともボタンの方が便利ですか?)

4

3 に答える 3

3

まず、私の観点からは、コンポーネントは描画に時間がかかり、柔軟性がないため、本当に必要な場合を除いて、コンポーネントを使用しないでください。私は過去に彼らと非常に多くの問題を抱えていました(私が投稿したこの質問はそれらの1つです)。

MovieClipについて…MovieClipクラスは動的であるため、任意の仮想プロパティを問題なく割り当てることができます。だからyourMcInstance.someVar = 3完全に有効です。

AS3での大きな変更の1つは、基本的にタイムラインのないMovieClipであるSpriteクラスの導入でした。これははるかに軽量であり、フレームアニメーションを手動で作成しない限り、マウス(および他の多くの)イベントを処理できるコンテナを選択するクラスです。ただし、これは動的クラスではないため、yourSpriteInstance.someVar = 3有効ではありません。そのため、カスタムクラスの使用をお勧めします。カスタムクラスを使用すると、クラスを拡張してカスタムプロパティとメソッドを作成するオプションがあります。

于 2013-01-03T14:49:30.340 に答える
0

ムービークリップはオブジェクトであるため、実際には変数をオブジェクトに直接アタッチできます。

var card:MovieClip = new MovieClip(); //create a blank MC
addchild(card);

card.id = 5; //You can attach vars like this
于 2013-01-03T14:49:30.163 に答える
0

MovieClipsを配列に追加するには:

const clips:Array = [];

function addNewCardToCardsArray(array:Array, color:String, value:int):MovieClip {
  const clip:MovieClip = new MovieClip();
  clip.color = color;
  clip.value = value;

  return array[array.length] = clip;
}
于 2013-01-03T15:01:00.920 に答える