2009-06-15 2 views
0

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

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

Пример:

Основные сроки:

var totalA:int = 0; 

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

parent.parent.totalA++; 

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

+0

Я решил это .. спасибо в любом случае :) – dutraveller

ответ

0

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

Создано MovieClip с пути:

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

Тогда я ссылается его:

A_mc.totalA++; 
+0

Будьте очень осторожны с этим. У него есть некоторые странные функции, которые встроены в него для повышения производительности. –

0

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

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

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

0

Все зависит от того, как вы хотите что-то делать, но класс 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

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

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

function addToTotal (int amount) :void 

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

Смежные вопросы