2016-07-15 10 views
-1

私はハングマンゲームを構築しています。私は間違った文字のアルファベット文字を持っていて、それらを使って配列を作りました。間違った文字をクリックすると、私のムービークリップKremmalaはハングマンを示すフレームを動かしています。問題は、7回目のクリックで私のムービークリップKremmalaがフレーム8で停止し、配列の要素がクリック可能ではなくなることです。私はコードを構築するのに問題があります。すべての助けに感謝します。as3の配列の要素から関数を削除する

私は今まで、このコードを持っている:

var wrongletters:Array = [a2,a3,a4,a5,a6,a8,a9,a10,a11,a12,a13,a14,a15,a16,a19,a20,a21,a22,a23] 
for (var i:int= 0; i< wrongletters.length; i++) { 
    wrongletters[i].buttonMode = true; 
    wrongletters[i].isClicked = false; 
    wrongletters[i].addEventListener(MouseEvent.CLICK, kanoklick); 
    function kanoklick(event:MouseEvent):void 
{ 
     kremmala.nextFrame(); 
     event.target.alpha = 0.5; 
     if(event.currentTarget.isClicked == false){ 
     clickCount ++; 
     event.currentTarget.isClicked = true; 
} 
if(clickCount == 7){ 
kremmala.stop(); 
trace("All buttons have been clicked"); 
} 
} 
} 

答えて

2

私は2つの方法を考えることができます。

1)すべての文字を持つ配列を保持しているコントロール(リスト)を無効にします。私は、それがデータプロバイダのようにwrongletters:Arrayを持つid = "list1"の可視リストがあると仮定します。

list1.enabled = false; 

または2)イベントリスナーを削除する。

for (var i:int= 0; i< wrongletters.length; i++) 
{ 
    wrongletters[i].removeEventListener(MouseEvent.CLICK, kanoklick); 
} 
+0

私は2番目のオプションを試してみました。ありがとう! – Marianna

+0

クリックインタラクションは、「不正者」配列からのみ削除することに注意してください。 (場合によっては存在する)「ライトレター」配列をクリックすることは可能です。 kremalaのゲームの私の知識から、あなたは両方を防ぐことを望むでしょう。 –

+0

はい私は正しい文字配列で同じことをしました。ありがとう! – Marianna

関連する問題