2013-03-25 2 views
1

Im пытается создать простую игру памяти У меня есть 3 кадра Intro, Main Game, End, но каждый раз, когда я нажимаю кнопку «start», чтобы перейти к кадру 2, я продолжаю получать эту ошибку;AS3> Начальный класс на определенном кадре? TypeError: Ошибка # 1006

TypeError: Error #1006: Play_AnimalCardGame is not a function. 
    at AnimalCardGame/frame2() 
    at flash.display::MovieClip/gotoAndStop() 
    at AnimalCardGame/startGame() 

Мои .Как

package{ 
    import flash.display.*; 
    import flash.events.*; 
    import flash.utils.getTimer; 


    public class Play_AnimalCardGame extends MovieClip 
    { 
     private static const boardWidth:uint =4; 
     private static const boardHeight:uint =3; 
     private static const cardVSpace:Number=100; 
     private static const cardHSpace:Number=15; 
     private static const offSetX:Number=115; 
     private static const offSetY:Number=155; 






     public function Play_AnimalCardGame():void 
     { 





      var cardDeck:Array = new Array(); 
      for (var i:uint=0;i<boardWidth*boardHeight/2;i++){ 
       cardDeck.push(i); 
       cardDeck.push(i); 
      } 

      for(var x:uint=0; x<boardWidth ; x++){ 
       for(var y:uint=0; y<boardHeight;y++){ 
        var aCard:Card = new Card(); 
        aCard.stop(); 
        aCard.x = x*offSetX+cardVSpace; 
        aCard.y = y*offSetY+cardHSpace; 
        var randomCard:uint = Math.floor(Math.random()*cardDeck.length); 
        aCard.cardface= cardDeck[randomCard]; 
        cardDeck.splice(randomCard,1); 
        aCard.gotoAndStop(1); 
        aCard.addEventListener(MouseEvent.CLICK,clickCard); 
        addChild(aCard); 
        cardLeft++; 

       } 

       } 



     } 
     private var firstPick:Card; 
     private var secondPick:Card; 
     private var cardLeft; 
     private static const pointHit:int =100; 
     private static const pointMiss:int = -5; 
     private var startscore =0; 
     var startTime:uint; 
      var time:uint; 

     public function clickCard(event:MouseEvent){ 



        var pickedCard:Card = (event.currentTarget as Card); 

        if(firstPick == null){ 
         firstPick =pickedCard; 
         firstPick.gotoAndStop(pickedCard.cardface+2); 
        } 
        else if (firstPick ==pickedCard){ 
         firstPick.gotoAndStop(1); 
         firstPick=null; 
        } 
        else if (secondPick ==null){ 
         secondPick= pickedCard; 
         secondPick.gotoAndStop(pickedCard.cardface+2); 

         if (firstPick.cardface == secondPick.cardface){ 
          startscore +=pointHit; 
          cardLeft-=2; 
          removeChild(firstPick); 
          removeChild(secondPick); 

          txtscore.text= String(startscore); 
          firstPick = null; 
          secondPick=null; 
         } 
         else{ 
          firstPick.gotoAndStop(1); 
          secondPick.gotoAndStop(1); 

          startscore +=pointMiss; 
          txtscore.text= String(startscore); 

          secondPick=null; 
          firstPick = pickedCard; 
          firstPick.gotoAndStop(pickedCard.cardface+2); 
         } 

        } 
        if(cardLeft==0){ 
          gotoAndStop("gameover"); 
        } 
       } 
    public function showTimer(event:Event) 
     { 

      startTime = getTimer(); 
      time=0; 

      time = getTimer()- startTime; 
      txtTime.text = clockTime(time); 
     } 

    public function clockTime(ms:int){ 
     var seconds:int = Math.floor(ms/1000); 
     var minutes:int = Math.floor(seconds/60); 
     seconds -=minutes *60; 

     var timeString:String = minutes+":"+String(seconds+100).substr(1,2); 
     return timeString; 
    } 


} 

Из того, что я не могу там проблем нет, но потом снова в еще только учатся

+0

Что ваш код на frame2? – BadFeelingAboutThis

ответ

1

Похоже, вы определили имя класса, как

Play_AnimalCardGame 

, но затем вы определяете конструктор как

AnimalCardGame 

Start, установив имя конструктора, к тому же, как имя класса

+0

@ juggles Я все еще получаю ту же ошибку даже после изменения:/ –

+0

Какой код на кнопке запуска и что вы вызываете в кадре 2? Технически, Play_AnimalCardGame не является функцией. Это объект. Объект может содержать функции, которые можно вызвать, но вы не можете вызвать Play_AnimalCardGame(); – jugg1es

+0

@ juggles получил это благодаря работе –