91824841

к элементу вложенного массива можно


function displayQuestion() {

// Проверяем, все ли вопросы уже заданы,
if (questionNum >= qArray.length) {

// Отображаем окончательное число очков и завершаем игру

finalScore = numRight + "out of" + qArray.length;

gotoAndPlay("game over");

} else {

// Отображаем вопрос и ответы на экране.

question.text = qArray[questionNum][0];

answer0.text = qArray[questionNum][1][0];

answer1.text = qArray[questionNum][1][1];

answer2.text = qArray[questionNum][1][2];

answer3.text =qArray[questionNum][1][3];

// Выводим номер ответа.

questionNumDisplay = questionNum+1;

// Запоминаем, какой ответ верный.

correctAnswer = int(qArray[questionNum][2]

// Делаем так, чтобы текст "въезжал" на экран

animatein();



}
}

Когда у вас массив содержится в другом массиве (двумерный массив), к элементу вложенного массива можно обратиться с помощью нескольких скобок. Например, выражение myArray[3] [8] обращается в восьмому значению третьего элемента массива myArray. Массив ту Array СОСТОИТ ИЗ четырех или более элементов, в третьем элементе содержится, в свою очередь, массив по меньшей мере из девяти элементов.

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

function animatein() {

// Определяем положение каждого элемента текста,

//а также указываем место, где клип должен остановиться.

question.xstop = 300;

question._x = 800;

answerO.xstop = 400;

answer0._x = 1000;

answerl.xstop = 400;

answerl._x = 1200;

answer2.xstop = 400;

answer2._x = 1400;

answer3.xstop = 400;

answer3._x = 1600;
}

Когда пользователь щелкает по одной из четырех кнопок, вызывается функция selectAnswer, которой передается номер выбранного ответа (от 0 до 3). Если эта величина равна correctAnswer, звучит сигнал правильного ответа и увеличивается значение numRight. В противном случае воспроизводится сигнал неверного ответа. В любом случае увеличивается значение переменной guestionNum и отображается следующий вопрос.



function selectAnswer(n) {

// Добавляем очко, если ответ правильный,
if (n == correctAnswer) {

triggerSoundf"right") ; numRight++;

} else {

triggerSound("wrong") ;

}

// Отображаем следующий вопрос.

questionNum++;

displayQuestion();

}

Функция triggersound проста, но очень полезна во многих игровых ситуациях. Ее назначение - проигрывать звук, сопровождающий правильный ответ.

function triggerSoundfsoundName) {

// Проигрываем звук,

soundfx.stop();

soundfx = new Sound();

soundfx.attachSoundfsoundName);

soundfx.start();

}

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

onClipEvent(enterFrame) { if (_x != xstop) _x -= 20;

}

К каждой кнопке также прикреплен короткий сценарий, который при щелчке по ней вызывает функцию selectAnswer и передает ей значение от 0 до 3. Сценарий следующий:

on (release) {

selectAnswer(0); }

Для других кнопок вместо 0 будет указано либо 1, либо 2, либо 3.


Содержание раздела