Создание экзамена MCQs и ошибка с счетчиком баллов в ActionScript 3 - PullRequest
1 голос
/ 25 октября 2010

Я собираюсь сделать счетчик, который будет считать правильные ответы на вопросы экзамена.Счетчик будет собирать только правильные ответы из каждого кадра.

Вот первый кадр:

var counter:Number = 0;
var correctAns:Number;

correctAns = ans1_mc.alpha;

function clicked1(event:MouseEvent):void
{
ans1_mc.alpha = 1;
ans2_mc.alpha = 0;
ans3_mc.alpha = 0;
ans4_mc.alpha = 0;
}
function clicked2(event:MouseEvent):void
{
ans1_mc.alpha = 0;
ans2_mc.alpha = 1;
ans3_mc.alpha = 0;
ans4_mc.alpha = 0;
}
function clicked3(event:MouseEvent):void
{
ans1_mc.alpha = 0;
ans2_mc.alpha = 0;
ans3_mc.alpha = 1;
ans4_mc.alpha = 0;
}
function clicked4(event:MouseEvent):void
{
ans1_mc.alpha = 0;
ans2_mc.alpha = 0;
ans3_mc.alpha = 0;
ans4_mc.alpha = 1;
}
function submit(event:MouseEvent):void
{   
if (correctAns == 1)
{
    counter++;
}
else
{
    counter = counter;
}
trace (counter);
gotoAndStop(currentFrame + 1);
}


ans1_btn.addEventListener(MouseEvent.CLICK, clicked1);
ans2_btn.addEventListener(MouseEvent.CLICK, clicked2);
ans3_btn.addEventListener(MouseEvent.CLICK, clicked3);
ans4_btn.addEventListener(MouseEvent.CLICK, clicked4);

submit_btn.addEventListener(MouseEvent.CLICK, submit);


ans1_mc.alpha = 0;
ans2_mc.alpha = 0;
ans3_mc.alpha = 0;
ans4_mc.alpha = 0;

text1_txt.text = "A";
text2_txt.text = "B";
text3_txt.text = "C";
text4_txt.text = "D";

stop();

Второй кадр:

ans1_mc.alpha = 0;ans2_mc.alpha = 0;ans3_mc.alpha = 0;ans4_mc.alpha = 0;

correctAns = ans1_mc.alpha;

text1_txt.text = "E";
text2_txt.text = "F";
text3_txt.text = "G";
text4_txt.text = "H";

stop();

Все остальные кадры будут в качестве второго кадра.

Я хочу знать, где находитсянеправильно.

1 Ответ

0 голосов
/ 25 октября 2010

Ваш общий подход неверен, и ваша игра не очень масштабируема.Вам нужно сделать обзор вашей игры и попытаться придумать лучшую логику.

Вы можете идентифицировать кнопку в вашем слушателе, так что нет необходимости добавлять так много слушателей событий, все будет хорошо.Определите кнопку, на которую нажали, и установите ответ соответствующим образом.

 function clickHandler(event:MouseEvent):void
 {
      trace( event.currentTarget);
  }

Если вы поместите все свои кнопки в массив, будет легко установить их альфа-свойство.

 var buttons:Array = [ans1_mc, ans2_mc, ans3_mc , ans4_mc];

 function clickHandler(event:MouseEvent):void
 {
    //set all buttons alpha to 0
    for each( var button:MovieClip in buttons )
       button.alpha = 0;

     //set the alpha of the clicked button to 1
     event.currentTarget.alpha = 1;

     //set the correct answer
     if( event.currentTarget == ans1_mc )
        correctAns = 1;
  }

Я не проверял ваш код, поэтому я не уверен, какие ошибки есть, в любом случае вы должны установить в функции переменную correctAns, как я это делал выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...