2009-11-17 3 views
0

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

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

Мой код до сих пор выглядит следующим образом:

// 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 - Живая демо

Change .html на .zip для файлов проекта

Спасибо!

ответ

1

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

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

+0

И это то, что я сделал. Благодаря! – 2009-11-18 00:38:46

1

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