だから私はこのコードを持っています
function flip(e:MouseEvent)
{
//assign choice a random deck index.
choice=int(deck[Math.round((Math.random()*deck.length))]);
if(choice!=int(deck[9]))
{
//removeChild(MovieClip(e.target));
//position firecard.
addChild(fire);
fire.x=e.target.parent.x;
fire.y=e.target.parent.y;
//remove cardback
e.target.parent.removeChild(MovieClip(e.target));
fire.parent.setChildIndex(fire,numChildren-2);
trace(choice);
}
else if(choice==int(deck[9]))
{
trace(choice);
water.x=e.target.parent.x;
water.y=e.target.parent.y;
e.target.parent.removeChild(MovieClip(e.target));
water.parent.setChildIndex(water,numChildren-2);
}
}
コメントは、すべてが何をすべきかをほとんど説明しています。Flip は、ムービークリップからリスナーを介して呼び出されます。Choice は、flip が呼び出されるたびにランダムに選択される数値で、デッキ配列のランダム インデックスから値を取得します。次に、選択に関係なく、クリックされたカードが取り除かれ、その位置に選択変数に従ってカードが配置されます。ただし、2 つのエラーが発生します (どちらもコンパイラまたは出力で何かを行いません)。
別のカードをクリックすると、作成 (発射) された新しいカードも削除されます。私は彼らがその場にとどまることを望みます。
トレースは常に 0 を出力します。0 から 9 までのように出力すべきではありませんか?
PS: デッキには 10 個の値があります。そのうちの9つが「火」で、最後が「水」です。選択は初期値 0 から始まります。