Как я могу изменить значение переменной, которая находится в основной временной шкале, из другой временной шкалы? - PullRequest
0 голосов
/ 15 июня 2009

В AS2 было легко изменить значение из переменной, которая была в других временных шкалах. Теперь я не могу сделать это по-старому!

По сути, мне нужно изменить значение переменной, находящейся на основной временной шкале, на другую временную шкалу.

Пример:

Основной график:

var totalA:int = 0;

Другая временная шкала, после добавления eventListener к функции:

parent.parent.totalA++;

Так что это не работает. Кто-нибудь может объяснить, почему? Спасибо

Ответы [ 4 ]

0 голосов
/ 06 декабря 2009

Я бы также добавил, что если вы интересуетесь ООП, я бы не стал напрямую обращаться к этой переменной.

Вы можете настроить функцию в синглтоне, упомянутом Джошем выше. Это помогает инкапсулировать эту переменную внутри функции. Вы должны назвать свою функцию чем-то осмысленным, например:

function addToTotal (int amount) :void

Таким образом, все функции для определения общей суммы заключены в синглтоне и функции. Если каким-то образом вам нужно будет суммировать изменения позже или если вам нужно изменить varialbe, изменение ограничивается функцией.

0 голосов
/ 16 июня 2009

Лучшим решением было бы использование класса globals. вы ссылаетесь на него из всех ваших классов и можете устанавливать в нем переменные, которые доступны везде.

взгляните на http://www.uza.lt/codex/as3-global-object/

Глобальный объект - это Singleton, который позволяет хранить динамические переменные в глобально доступном месте в вашем приложении AS3. Это позволяет разработчикам выполнять такие задачи, как самостоятельная регистрация визуальных компонентов, глобальных событий и прослушивателей событий.

0 голосов
/ 17 июня 2009

Все зависит от того, как вы хотели бы что-то делать, но класс Singleton для любых глобальных переменных, которые вы, возможно, захотите поддерживать, является, вероятно, лучшим курсом. Если вы не знакомы с шаблоном одноэлементного проектирования, просто придерживайтесь его приведения как

//Example - Would move the parent movie clip 5 pixels to the right.
//You must cast it because there is no way for the compiler to know what the asset.
MovieClip(parent).x = 5;
0 голосов
/ 15 июня 2009

Ну ... я решил.

Создан мувиклип с путем:

var A_mc:MovieClip = MovieClip(this.parent.parent);

Тогда я сослался на это:

A_mc.totalA++;
...