Глобальные переменные в AS3
Хорошо, я хочу иметь доступ к определенным переменным из любой точки файла Flash или файлов Flash, загруженных этим файлом Flash. Как мне это сделать? Я не знаю, что такое классы, я не хочу изучать, что такое классы, я не хочу ничего импортировать, я просто хочу иметь возможность инициализировать и получать доступ к определенным переменным из любого места.
Спасибо:)
1 ответ
Что ж, больше нет _global, как было в as2 - и поскольку вы не хотите использовать классы, вы не можете использовать статические переменные (я могу объяснить это, если вам интересно). Таким образом, вы остались с использованием переменных в корне. Например, вы можете определить переменную на основной временной шкале следующим образом:
var myGlobal:Number = 100;
Если вы хотите получить к нему доступ в другом месте... то есть на временной шкале других мувиклипов, вам нужно сказать:
MovieClip(root).myGlobal;
Что, если вы никогда не видели раньше, вероятно, выглядит абсурдным. По сути, мы приводим корень к мувиклипу, чтобы дать нам доступ к его динамическим свойствам. К счастью, вы можете настроить его так, чтобы вам не приходилось постоянно писать MovieClip(root):
// do this on any movieClip where you want to access globals
var global:MovieClip = MovieClip(root);
trace(global.myGlobal);
Таким образом, в конце концов, это всего лишь одна дополнительная строка кода, чтобы вернуть функциональность к тому, как это было в AS2.
редактировать
- перейдите к основной временной шкале и добавьте это к своим действиям: var myGlobal:Number = 100;
- сделать новый мувиклип, чтобы убедиться, что он на сцене
перейдите в новый мувиклип и добавьте его в свои действия:
var global: MovieClip = MovieClip(root); проследить (global.myGlobal);
проверь свой фильм