Все равно решил попрактиковаться, так как давно не писал.
Ну можно так, как вариант(у меня макромедии нету, поэтому выкладывают только код). Возможны недочеты или ошибки, так как особо не думал. Тут большинство сделанно, остальное думаю сами доделаете.
Идея такова:
1)Нужно сделать 100 вопросов, для их хранения удобно использовать объекты.
2)Нужно сделать рандомный выбор вопросов
3)Создать визуальную оболочку для данных и возможность выбора ответов
//Создаем вопросы
for(i=1;i<=100;i++){
//Создадим 100 объектов для хранения вопросов, от question1 до question100
this["question"+i] = new Object;
this["question"+i].variant_A = ""; //Вариант ответа А
this["question"+i].variant_B = ""; //Вариант ответа Б
this["question"+i].variant_C = ""; //Вариант ответа С
this["question"+i].variant_D = ""; //Вариант ответа D
this["question"+i].vopros = ""; //Вопрос
this["question"+i].imageBool = true; //Наличие картинки
this["question"+i].imageNumber = 0; //Номер картинки
this["question"+i].trueVariant = 0; //Номер правильного ответа
}
//Теперь надо заполнить объекты вопросами и данными.
question1.variant_A = "Тут пишем вариант А";
question1.variant_B = "Тут пишем вариант Б";
question1.variant_C = "Тут пишем вариант С";
question1.variant_D = "Тут пишем вариант D";
question1.vopros = "Тут пишем вопрос";
question1.imageBool = false;
question1.imageNumber = 0;
question1.trueVariant = 3;
question2.variant_A = "Тут пишем вариант А";
question2.variant_B = "Тут пишем вариант Б";
question2.variant_C = "Тут пишем вариант С";
question2.variant_D = "Тут пишем вариант D";
question2.vopros = "Тут пишем вопрос";
question2.imageBool = true;
question2.imageNumber = 1;
question2.trueVariant = 3; //И так далее до 100
//Рандомизатор
var questionArray:Array = new Array(); //Массив для рандомных чисел
function randomize(){
for(j=0;;j++){ //Цикл без указания выхода
var variants = Math.ceil(Math.random()*100);//Получаем рандомное число
//Проверим на совпадения
var double = false;
for(i=0;i<questionArray.length;i++){
if(questionArray[i]==variants){
double = true;
}
}
//Если совпадений нет, записываем.
if(double==false){
questionArray.push(variants);
}
//Выход из бесконечного цикла
if(questionArray.length>=20){
//Немного адаптируем под ответы
for(i=0;i<questionArray.length;i++){
questionArray[i] = "question" + questionArray[i];
}
trace(questionArray);
break; //Выход из бесконечного цикла.
}
}
}
randomize();
/*Осталось визуализировать, на главной сцене созданы:
Пять текстовых полей.
vopros - для вопроса
varA, varB, varC, varD - для ответов
Так же имеется мувиклип image, в котором хранятся картинки.
Четыре кнопки, нажатием на которые выбирается ответ.
buttA, buttB, buttC, buttD.
*/
var rezultat = 0;
var nowQuestion = 0;
function startTest(){
//Подготовка к вопросу
vopros.text = "Вопрос: "+this[questionArray[nowQuestion]].vopros;
varA.text = "A: "+this[questionArray[nowQuestion]].variant_A;
varB.text = "B: "+this[questionArray[nowQuestion]].variant_B;
varC.text = "C: "+this[questionArray[nowQuestion]].variant_C;
varD.text = "D: "+this[questionArray[nowQuestion]].variant_D;
if(this[questionArray[nowQuestion]].imageBool==true){
image._visible = true;
image.gotoAndStop = this[questionArray[nowQuestion]].imageNumber;
}else{
image._visible = false;
}
//Обработчики кнопок для ответов
buttA.onPress = function(){
if(this[questionArray[nowQuestion]].trueVariant == 1){
rezultat++;
}
nowQuestion++;
if(nowQuestion>=20){
endTest();
}else{
startTest();
}
}
buttB.onPress = function(){
if(this[questionArray[nowQuestion]].trueVariant == 2){
rezultat++;
}
nowQuestion++;
if(nowQuestion>=20){
endTest();
}else{
startTest();
}
}
buttC.onPress = function(){
if(this[questionArray[nowQuestion]].trueVariant == 3){
rezultat++;
}
nowQuestion++;
if(nowQuestion>=20){
endTest();
}else{
startTest();
}
}
buttD.onPress = function(){
if(this[questionArray[nowQuestion]].trueVariant == 4){
rezultat++;
}
nowQuestion++;
if(nowQuestion>=20){
endTest();
}else{
startTest();
}
}
}
function endTest(){
//Конец теста, нужно будет написать вывод результата в оценки. Итог хранится в переменной rezultat
trace(rezultat);
}
startTest();