PDA

Просмотр полной версии : Начисление балов в тесте!


Freemanof
16.06.2011, 02:33
stop();
var score:Number = 0;
function es():Void{
score++;
nextFrame();
}
function no():Void{
nextFrame();
}
btn1.onPress = es;
btn2.onPress = btn3.onPress = btn4.onPress = no;
При этом коде идет начисление в +1 балл, а мне нужно сделать так, чтобы вопросы были не равновесны! Как этого добиться.... подскажите пожалуйста!

olexandr
16.06.2011, 14:30
switch (_currentFrame) {
case 5: score+=2; break;
case 10: score+=3; break;
default: score+=1; break;
}
ответ в 5 и 10 кадре (вопросе) дадут 2 и 3 бала прироста соответственно, остальные все по 1

Freemanof
16.06.2011, 14:51
спасибо! Респект!

Добавлено через 2 часа 6 минут
еще вопросик маленький!! возможно ли реализовать просмотр неправильных ответов без права исправления, просто как отчет!
спасибо за потраченное время!

olexandr
16.06.2011, 23:39
заведите массив для неправильных ответов и складируйте туда номера кадров, где были неверные ответы
var _arr:Array = [];
function no():Void{
_arr.push(_currentframe);
nextFrame();
}

Freemanof
17.06.2011, 10:23
switch (_currentFrame) {
case 5: score+=2; break;
case 10: score+=3; break;
default: score+=1; break;
}
ответ в 5 и 10 кадре (вопросе) дадут 2 и 3 бала прироста соответственно, остальные все по 1

Что-то я погорячился с работоспособностью функции! не начисляет, а если и начисляет, то некорректно.
помогите не могу найти что не так!
плюс вопрос по массиву: Как сделать к нему обращение!
Спасибо за помощь!

Freemanof
17.06.2011, 20:46
stop();
var score:Number = 0;
function es10():Void{
score+=10;
nextFrame();
}
function es15():Void{
score+=15;
nextFrame();
}
function no():Void{
nextFrame();
}
btn1.onPress = es10;
btn2.onPress = btn3.onPress = btn4.onPress = no;
//а на следующем кадре
btn1.onPress = es15;
btn2.onPress = btn3.onPress = btn4.onPress = no;

Вот и получаются разные очки за ответы :)))))

Добавлено через 1 час 13 минут
В тесте 12 фреймов, на каждом вопрос.
Рандомный выбор вопросов по следующему коду
var questions = []

for (var i = 0; i < 12; i++)
{
questions[i] = i;
}

function nextQuestionNumber() : Number //
{
var index = Math.floor(Math.random() * questions.length);
return questions.splice(index, 1)[0];
}
// Кнопка перехода на следующий фрейм
gotoAndStop(nextQuestionNumber());

Когда все 12 фреймов проходят не происходит переход на фрейм с результатом теста.
Как дописать понять не могу!

И еще вопросик маленький-маленький... :) Как допустим сделать так, чтобы из 20 вопросов показало лишь 10 случайных, а затем на фрейм с результатом
Спасибо за портаченное время!

alex_195
17.06.2011, 22:27
У тебя результат в 13 фрейме? А вобщем без разницы. Вначале заведи переменную и при попадании в новый твой рандомный кадр добавляй к этой переменной 1, если значение переменной будет 12 - команда перейти в 13 кадр.

Freemanof
17.06.2011, 23:24
хм.... я не силен в коде, можно поподробнее!
P/S/ я только учусь....

alex_195
18.06.2011, 12:11
Не знаю как у тебя происходит переход от кадра к кадру, но если автоматически,то в первом кадре пишешь:
var n:Number = 0;
onEnterFrame = function() {
if(n>=12) {
_root.gotoAndStop(13);
}
и в каждом кадре с вопросом теста пишешь:
n++
если же переход делаешь по кнопе, то для кнопки пишешь:
кнопка.onRelease = function() {
твой рандомный переход по кадрам;
n++;
if(n>12) {
_root.gotoAndStop(13);
}

Freemanof
19.06.2011, 01:25
Последний вопросик!
var questions = []

for (var i = 0; i <= 13 ; i++)

{
questions[i] = i;
}
в этом коде диапазон фреймов с 1 по 13, т.е. меньше 13 а как сделать от 2 до 13?????

Добавлено через 11 часов 32 минуты
тьфу.... все разобрался! i=2 )))
Спасибо за помощь! :)