Просмотр полной версии : Есть ли альтернатива свойству _global
LOST DEMON
04.01.2009, 22:19
Все переменные, находящиеся в символах(клипах) недоступны для основного ролика - приходится писать свойство _global - но если разных переменных очень много...
есть ли другой выход?
Также хочу спросить насчет текстовых полей в которых отображается какая-либо изменяющаяся переменная - если это текстовое поле в символе, а переменная на основном ролике, то в нем тоже нифига не отображается:confused:
Объясните плиз!:)
Может надо изменить уже подход и писать на АС2 (я уж не говорю про АС3) или хотя бы весь код в одном кадре основной линейки?
Всетаки 21-й век...
chingachgoog
04.01.2009, 23:12
есть ли другой выход?
Да - это пути (абсолютные и относительные) и прототипы (наследование).
Nata_cher
05.01.2009, 17:12
попробуйте разобраться с видимостью переменных, пользовать _global без особой нужды вообще нехорошо, даже _root лучше не использовать... разберитесь с относительными переменными.
LOST DEMON
05.01.2009, 20:48
Да - это пути (абсолютные и относительные) и прототипы (наследование).
простите за мою тупость, но че это значит? точнее, куда эти пути "писать" в переменных???:(
объясните плиз на примере:
есть некая переменная variable1 ее значение задается в основном ролике - в root
есть некий символ - внутри него - текстовое поле textarea1, отображающее значение этой variable1
дак что конкретно сделать, чтобы отображалось значение переменной??
DarkLight
05.01.2009, 20:56
1) Почему код отображения значения так необходимо вынести в мувик? Что мешает это делать в кадре основной шкалы? (нечто вроде mc.txt.text = this.variable1)
2) Если Вы уверены, что значения переменных должно быть доступно из любого места приложения, то хотя бы сгруппируйте их в виде объектов на _root или классов с набором статических свойств либо классов-синглтонов (вариант с классами предпочтительнее, в принципе).
LOST DEMON
05.01.2009, 21:30
1) Почему код отображения значения так необходимо вынести в мувик? Что мешает это делать в кадре основной шкалы? (нечто вроде mc.txt.text = this.variable1)
Все спасибо, так все работает - я просто ступил:D
... либо классов-синглтонов (вариант с классами предпочтительнее, в принципе).
Меня бы за такое BloodHound поколотил =)
Кстати, Мук тоже не советует превращать синглтон в хранилище глобальных переменных.
От себя добавлю, что ООП как раз и для того и задумывалось, чтобы избегать подобных процедурных решений.
DarkLight
05.01.2009, 22:25
Фаулер в одной из книг (Архитектура корпоративных программных приложений) для шаблона Registry (Реестр) в случае однопоточных приложений он рекумендует имеено его:) Я не сторонник такого подхода (Фаулер тоже, но причины его периодического использования описывает), но не из-за синглетона, а из-за того, что считаю создание объекта-реестра в большинстве случаев неудачным элементом архитектуры. Поэтому как один из допустимых подходов я его упоминаю все-таки.
И в чем же оно неудачно? =)
DarkLight
05.01.2009, 22:36
Собстно, как раз
а) из-за доступности содержимого всем кому не лень
б) необходимости частого изменения и раздувании кода класса для большой системы
в чем же решение?
вместо _global можно использовать _lvel0, т.к. можно указать типы переменных, что уже лучше.
держать переменные в отдельном объекте, что уже рекомендовали.
доступность (переменных) "всем кому не лень" - имхо, переоценивают такую возможность, чаще это полезно там где уже фантазия программиста исчерпалась в плане создания уникальных имен, и он ненароком напишет имя, которое используется в другом месте, чем осложнит себе жизнь.
есть какие-нибудь "глобальные" рекомендации? вопрос к программерам с образованием.
поправте и убедите, плз.
Параметризируйте объекты при создании. Изменяйте объекты согласно изменившимся условиям посредством вызова их методов и передачей в них новых параметров. Использование глобальных переменных способствует увеличению coupling и уменьшает вероятность использования (code reuse) классов в других Ваших проектах.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.