定位同一类的多个动画片段以更改帧编号as3

时间:2014-11-28 01:58:10

标签: arrays actionscript-3

我对这个记忆匹配游戏有这个问题。我希望卡片能够正面显示,以便用户可以记住它们,3秒钟后我希望它们翻转并显示它们的背面。 顺便说一下,整场比赛都很完美。我只是错过了这个细节! 下面的代码是如何创建我的卡片(它们都是1个动画片段(mcCartas),里面有37帧(36种卡和背卡))

const QUANT_CARTAS:int = 36;   ///// number of cards (faces drawn, frame numbers)
const CARTAS_POR_LINHA:int = 6;   /// number of lines  (6x6 grid)
var cartas:Array = new Array();  // cards array
var cartasColetadas:Array = new Array();  // clicked cards array

////////gets the 36 cards into the array
for(var i:int=0;i<QUANT_CARTAS;i++)
{
    cartas.push(i);
}

/////////shuffles the cards
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;
}

////////// puts them on the table
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);  // this line they all face their number OR
    //novaCarta.gotoAndStop(QUANT_CARTAS + 1); // this line they all face back (last frame)
    novaCarta.buttonMode = true;
    novaCarta.addEventListener(MouseEvent.CLICK, cartaClicada);
    addChild(novaCarta);
    trace (cartas);
    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++)
            {
                //here I'm trying to make them go back to their back (last frame)
                //something????.gotoAndStop(QUANT_CARTAS + 1);
                if(j == 35)
                {
                    clearInterval(intervalo);
                    iniciaJogo();
                }
            }
        }
    }
}

这段代码工作正常,但我输入了几行&#34;某些内容????。gotoAndStop等&#34; ......那是我尝试过的所有东西...... heeelppppp plzzzzz

1 个答案:

答案 0 :(得分:0)

添加时,应将新Cartas存储在数组中。然后使用该数组引用它们:推入数组:

aCartasMCs.push(novaCarta); 

然后你可以参考:

aCartasMCs[i].gotoAndStop(QUANT_CARTAS + 1);