Глобальные переменные в 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.

редактировать

  1. перейдите к основной временной шкале и добавьте это к своим действиям: var myGlobal:Number = 100;
  2. сделать новый мувиклип, чтобы убедиться, что он на сцене
  3. перейдите в новый мувиклип и добавьте его в свои действия:

    var global: MovieClip = MovieClip(root); проследить (global.myGlobal);

  4. проверь свой фильм

Другие вопросы по тегам