Flash AS2 Викторина с индивидуальными баллами за каждый ответ - PullRequest
0 голосов
/ 17 ноября 2009

Я делаю тест в Actionscript 2.0. Викторина имеет 8 вопросов. Каждый вопрос имеет четыре ответа, и каждый ответ дает разные очки. На каждом кадре есть два вопроса, на которые нужно ответить, а затем переходите к следующим двум и т. Д.

Моя проблема в том, что мне нужно присваивать каждому ответу баллы, которые в итоге будут рассчитаны и в зависимости от количества баллов отправлять пользователю разные сообщения (кадры). Пока мой код выглядит следующим образом:

// create an array of all nav buttons in group
var groupinfo:Array = [q1a1, q1a2, q1a3, q1a4];

// create a variable to track the currently selected button
var activebtn:MovieClip;

// doRollOver: start the rollover action or process, 
// unless the button is currently selected
function doRollOver() {
   if (this != activebtn) {
      this.gotoAndPlay(2);
   }
}

// doRollOut: start the rollout action or process, 
// unless the button is currently selected
function doRollOut() {
   if (this != activebtn) {
      this.gotoAndPlay(1);
   } 
} 

// doClick: 1) return previously selected button to normal, 2) show visual 
// indication of selected button, 3) update activebtn
function doClick() {
   activebtn.gotoAndPlay(1);       // return previously selected to normal

   delete this.onEnterFrame;               // stop activity on selected mc

   activebtn = this;                      // update pointer to current selection
}

// assign functions to each event for each button in the group
function init() {
   for (var mc in groupinfo) {  
      groupinfo[mc].onRollOver = doRollOver;
      groupinfo[mc].onRollOut = doRollOut;
      groupinfo[mc].onRelease = doClick;
   }
}

init();

Этот код заботится об активном состоянии для ответов на каждой странице. Следующая проблема - при перемещении по кадрам эти состояния не запоминаются, а сбрасываются.

////////////////////////////// Файлы: //////////////// /////////////

http://www.danielwestrom.se/quiz/quiz.html - живая демоверсия

Измените .html на .zip для файлов проекта

Спасибо!

Ответы [ 2 ]

1 голос
/ 15 октября 2011

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

1 голос
/ 17 ноября 2009

Это не лучшие практики, но используйте глобальные для хранения этих результатов. Например, глобальный массив.

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

...