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
Другие вопросы по тегам