Adobe Director - Lingo Quiz
Итак, у меня есть тест, который я делаю с использованием Adobe Director, но я борюсь с общей средой.
Я добавляю следующий скрипт Lingo для каждой кнопки с правильным ответом:
on mouseDown
global gscore
set gscore = gscore + 1
И на последнем этапе я использую следующий сценарий Lingo, чтобы проверить полученные очки и отобразить соответствующий спрайт для результата.
on enterFrame
if gscore = 0 then set the memberNum of sprite (3) to 154
end if
if gscore = 1 then set the memberNum of sprite (3) to 155
end if
if gscore = 2 then set the memberNum of sprite (3) to 156
end if
if gscore = 3 then set the memberNum of sprite (3) to 157
end if
if gscore = 4 then set the memberNum of sprite (3) to 158
end if
if gscore = 5 then set the memberNum of sprite (3) to 159
end if
end
Так что мои ошибки, кажется, говорят, что нет объявленной переменной, но это глобальное право? Так почему же он не узнает это? Первый скрипт прикреплен к кнопкам, соответствующим правильным ответам, каждая кнопка имеет отдельный скрипт для отправки его на следующий вопрос. На последнем этапе, который предназначен для отображения результатов, должен отображаться определенный пользовательский спрайт, зависящий от значения gscore.
3 ответа
Разобрался, извиняюсь.
Я удалил весь конец if, чтобы сделать его полным оператором if. Задайте глобальную переменную в первом используемом сценарии, объявив значение равным 0. Затем, при увеличении, она добавляется к ранее определенной глобальной переменной с тем же именем.
Я полагаю, что моя проблема заключалась в том, что значение по умолчанию для экземпляров глобальных переменных равно void.
Рад, что вы нашли решение. Другой подход состоял бы в том, чтобы вообще не использовать операторы if. Ваш сценарий ввода может выглядеть следующим образом:
на внутреннем спрайте (3).memberNum = 154+ конец по оси gscore
on exitframe me
global gscore
,
if gscore = 0
set the memberNum of sprite (3) to 154
else if gscore = 1 then
set the memberNum of sprite (3) to 155
else if gscore = 2 then
set the memberNum of sprite (3) to 156
else if gscore = 3 then
set the memberNum of sprite (3) to 157
else if gscore = 4 then
set the memberNum of sprite (3) to 158
else if gscore = 5 then
set the memberNum of sprite (3) to 159
end if
end