13.8. Не работает оператор JUMP — не может найти метку
В: Не работает оператор JUMP — не может найти метку.
У меня есть действие
act "Прыгнуть":
jump 'loop'
end
и метка "loop", расположенная в той же локации, что и действие, но плеер пишет, что указанная метка не найдена.
О:
Дело в том, что оператор jump может "прыгать" только по меткам, которые находятся в его области видимости. В данном случае область видимости оператора jump будет ограничена кодом действия, а значит "прыгнуть" он сможет только на метку, расположенную внутри действия.
Данный вариант работать не будет:
:loop
!... какой-то код...
act "Прыгнуть":
jump 'loop'
end
А вот этот сработает:
act "Прыгнуть":
:loop
!... какой-то код...
jump 'loop'
end
Сработает и этот вариант, поскольку код действия является частью кода локации, а значит входит в область видимости оператора jump (но действие при этом на экране не появится):
jump 'loop'
act "Прыгнуть":
:loop
!... какой-то код...
end
Аналогичным образом нельзя "выпрыгнуть" из кода гиперссылки и из кода, переданного оператору dynamic или фyнкции dyneval.