Это игра для игры с памятью, в которой мне нужна кнопка перезапуска. все работает в игре, даже кнопка перезапуска. Моя проблема заключается в том, что после того, как пользователь нашел совпадение (и изменился массив карт), команда im, использующая перезапуск игры, удаляет карты только до тех пор, пока она не «ударит» по уже ушедшему, и перестанет их удалять ... .удаление нескольких копий одного и того же фрагмента ролика из массива в одно и то же время после изменения массива
это код, который я написал для кнопки
btnRestart.addEventListener(MouseEvent.CLICK, comecaOtraveh);
function comecaOtraveh(e:MouseEvent):void
{
for each(var mc:MovieClip in virarCartas)
{
if (mc != null)
{
mc.parent.removeEventListener(MouseEvent.CLICK, cartaClicada);
mc.parent.removeChild(mc); // Cannot access a property or method of a null object reference.
//this.removeChild(mc); // The supplied DisplayObject must be a child of the caller.
//removeChild(mc); // The supplied DisplayObject must be a child of the caller.
}
}
clearInterval(intervalo);
myTimer.stop();
myTimer.removeEventListener(TimerEvent.TIMER, iniciaTempo);
channel.stop();
channel.removeEventListener(Event.SOUND_COMPLETE, onComplete);
removeChild(mcContagem);
gotoAndStop(1)
}
Я попытался все опции // 's, и попытался без заявления IF как хорошо .... никто не работал ...
Heres код, который кладет мои карты в таблицу, перемешивает их, показывает их пользователю, чем поворачивает их, чтобы игра начиналась.
for (var i: int = 0; i < QUANT_CARTAS; i++)
{
cartas.push(i);
}
for (var moeda: int = QUANT_CARTAS - 1; moeda > 0; moeda--)
{
var pos: int = Math.floor(Math.random() * moeda);
var carta: int = cartas[moeda];
cartas[moeda] = cartas[pos];
cartas[pos] = carta;
}
for (i = 0; i < QUANT_CARTAS; i++)
{
var novaCarta: Carta = new Carta();
novaCarta.tipoCarta = cartas[i];
novaCarta.x = 5 + (novaCarta.width + 2.7) * (i % CARTAS_POR_LINHA);
novaCarta.y = 5 + (novaCarta.height + 2.7) * (Math.floor(i/CARTAS_POR_LINHA));
novaCarta.gotoAndStop(cartas[i] + 1); // face pra cima
novaCarta.buttonMode = true;
novaCarta.addEventListener(MouseEvent.CLICK, cartaClicada);
addChild(novaCarta);
virarCartas.push(novaCarta);
if (i == 35)
{
podeJogar = false;
mcContagem.x = 884;
mcContagem.y = 511;
addChild(mcContagem);
intervalo = setInterval(desviraCartas, 3000);
function desviraCartas()
{
for (var j: int = 0; j < QUANT_CARTAS; j++)
{
virarCartas[j].gotoAndStop(QUANT_CARTAS + 1);
if (j == 35)
{
clearInterval(intervalo);
iniciaJogo();
playSound();
}
}
}
}
}
и вот код, который я использую для кликов мыши
function cartaClicada(e: MouseEvent)
{
if (podeJogar == true)
{
SOM_memoClick.play();
var carta: Carta = e.currentTarget as Carta;
if (cartasColetadas.indexOf(carta) == -1)
{
cartasColetadas.push(carta);
carta.gotoAndStop(carta.tipoCarta + 1);
}
if (cartasColetadas.length == 3) //APOS 3 CARTAS CLICADAS
{
podeJogar = false;
var carta3: int = cartasColetadas[2].tipoCarta
var carta2: int = cartasColetadas[1].tipoCarta
var carta1: int = cartasColetadas[0].tipoCarta
//0,1,2
if (((carta1 == 0) || (carta1 == 1) || (carta1 == 2)) &&
((carta2 == 0) || (carta2 == 1) || (carta2 == 2)) &&
((carta3 == 0) || (carta3 == 1) || (carta3 == 2)))
{
SOM_trioInicio.play();
intervalo = setInterval(amarelo, intervaloFim);
}
//3,4,5
else if (((carta1 == 3) || (carta1 == 4) || (carta1 == 5)) &&
((carta2 == 3) || (carta2 == 4) || (carta2 == 5)) &&
((carta3 == 3) || (carta3 == 4) || (carta3 == 5)))
{
SOM_trioInicio.play();
intervalo = setInterval(rosa, intervaloFim);
}
//6,7,8
else if (((carta1 == 6) || (carta1 == 7) || (carta1 == 8)) &&
((carta2 == 6) || (carta2 == 7) || (carta2 == 8)) &&
((carta3 == 6) || (carta3 == 7) || (carta3 == 8)))
{
SOM_trioInicio.play();
intervalo = setInterval(celeste, intervaloFim);
}
//9,10,11
else if (((carta1 == 9) || (carta1 == 10) || (carta1 == 11)) &&
((carta2 == 9) || (carta2 == 10) || (carta2 == 11)) &&
((carta3 == 9) || (carta3 == 10) || (carta3 == 11)))
{
SOM_trioInicio.play();
intervalo = setInterval(branco, intervaloFim);
}
//12,13,14
else if (((carta1 == 12) || (carta1 == 13) || (carta1 == 14)) &&
((carta2 == 12) || (carta2 == 13) || (carta2 == 14)) &&
((carta3 == 12) || (carta3 == 13) || (carta3 == 14)))
{
SOM_trioInicio.play();
intervalo = setInterval(prata, intervaloFim);
}
//15,16,17
else if (((carta1 == 15) || (carta1 == 16) || (carta1 == 17)) &&
((carta2 == 15) || (carta2 == 16) || (carta2 == 17)) &&
((carta3 == 15) || (carta3 == 16) || (carta3 == 17)))
{
SOM_trioInicio.play();
intervalo = setInterval(verde, intervaloFim);
}
//18,19,20
else if (((carta1 == 18) || (carta1 == 19) || (carta1 == 20)) &&
((carta2 == 18) || (carta2 == 19) || (carta2 == 20)) &&
((carta3 == 18) || (carta3 == 19) || (carta3 == 20)))
{
SOM_trioInicio.play();
intervalo = setInterval(preto, intervaloFim);
}
//21,22,23
else if (((carta1 == 21) || (carta1 == 22) || (carta1 == 23)) &&
((carta2 == 21) || (carta2 == 22) || (carta2 == 23)) &&
((carta3 == 21) || (carta3 == 22) || (carta3 == 23)))
{
SOM_trioInicio.play();
intervalo = setInterval(violeta, intervaloFim);
}
//24,25,26
else if (((carta1 == 24) || (carta1 == 25) || (carta1 == 26)) &&
((carta2 == 24) || (carta2 == 25) || (carta2 == 26)) &&
((carta3 == 24) || (carta3 == 25) || (carta3 == 26)))
{
SOM_trioInicio.play();
intervalo = setInterval(azul, intervaloFim);
}
//27,28,29
else if (((carta1 == 27) || (carta1 == 28) || (carta1 == 29)) &&
((carta2 == 27) || (carta2 == 28) || (carta2 == 29)) &&
((carta3 == 27) || (carta3 == 28) || (carta3 == 29)))
{
SOM_trioInicio.play();
intervalo = setInterval(dourado, intervaloFim);
}
//30,31,32
else if (((carta1 == 30) || (carta1 == 31) || (carta1 == 32)) &&
((carta2 == 30) || (carta2 == 31) || (carta2 == 32)) &&
((carta3 == 30) || (carta3 == 31) || (carta3 == 32)))
{
SOM_trioInicio.play();
intervalo = setInterval(marrom, intervaloFim);
}
//33,34,35
else if (((carta1 == 33) || (carta1 == 34) || (carta1 == 35)) &&
((carta2 == 33) || (carta2 == 34) || (carta2 == 35)) &&
((carta3 == 33) || (carta3 == 34) || (carta3 == 35)))
{
SOM_trioInicio.play();
intervalo = setInterval(vermelho, intervaloFim);
}
else
{
intervalo = setInterval(resetaCartas, 1150);
}
}
}
}
сейчас, во время игры, то как я удалить их (позволяет сказать, что я нашел 0, 1, 2, карты, который называется функцией «amarelo»)
function amarelo(): void
{
clearInterval(intervalo);
addChild(mcExplic);
mcExplic.gotoAndStop(1);
mcExplic.y = 384;
mcExplic.x = 512;
addChild(mcBotaoOk);
mcBotaoOk.y = 370;
mcBotaoOk.x = 512;
mcBotaoOk.visible = false;
cartasColetadas[0].removeEventListener(MouseEvent.CLICK, cartaClicada);
cartasColetadas[1].removeEventListener(MouseEvent.CLICK, cartaClicada);
cartasColetadas[2].removeEventListener(MouseEvent.CLICK, cartaClicada);
removeChild(cartasColetadas[0]);
removeChild(cartasColetadas[1]);
removeChild(cartasColetadas[2]);
cartasColetadas = new Array();
podeJogarTrio = true;
cursorTrio = true;
veramarelo();
mouseTipo();
}
так ... любые мысли о том, как сделать эту кнопку перезагрузки? (Первый блок кода размещен)
мои переменные и т.д. ...
const QUANT_CARTAS: int = 36;
const CARTAS_POR_LINHA: int = 6;
var alturaTrio: int = -180;
var larguraTrio: int = -300;
var intervaloTrio: int = 500;
var intervaloFim: int = 800;
var intervalo: int;
var gameScore: int;
var pontoErro: int;
var pontoAcerto: int;
var erros: int = 0;
var acertos: int = 0;
var musicaOn: Boolean = true;
var podeJogar: Boolean = true;
var podeJogarTrio: Boolean = false;
var cursorTrio: Boolean = false;
var mcExplic: Explic = new Explic();
var mcContagem: Contagem = new Contagem;
var mcBotaoOk: BotaoOk = new BotaoOk;
var mcTrans: Transicao = new Transicao();
var virarCartas: Array = new Array();
var trio: Array = new Array();
var cartas: Array = new Array();
var cartasColetadas: Array = new Array();
не один? = ((все еще застрял на этом – Surtarso
Я положил ответ, посмотри. – akmozo
heres игра на новостях http://www.newgrounds.com/dump/item/f606a48d7dac4234b8cecc16489b9c25 кнопка сброса находится в нижнем правом углу (спиннинг утилизации вещь), вы можете использовать его b4 u найти 3-матч, после того, как u увидит ошибку .... – Surtarso