Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Есть ли альтернатива свойству _global (http://www.flasher.ru/forum/showthread.php?t=119877)

LOST DEMON 04.01.2009 22:19

Есть ли альтернатива свойству _global
 
Все переменные, находящиеся в символах(клипах) недоступны для основного ролика - приходится писать свойство _global - но если разных переменных очень много...
есть ли другой выход?
Также хочу спросить насчет текстовых полей в которых отображается какая-либо изменяющаяся переменная - если это текстовое поле в символе, а переменная на основном ролике, то в нем тоже нифига не отображается:confused:
Объясните плиз!:)

Wolsh 04.01.2009 22:42

Может надо изменить уже подход и писать на АС2 (я уж не говорю про АС3) или хотя бы весь код в одном кадре основной линейки?
Всетаки 21-й век...

chingachgoog 04.01.2009 23:12

Цитата:

Сообщение от LOST DEMON (Сообщение 788107)
есть ли другой выход?

Да - это пути (абсолютные и относительные) и прототипы (наследование).

Nata_cher 05.01.2009 17:12

попробуйте разобраться с видимостью переменных, пользовать _global без особой нужды вообще нехорошо, даже _root лучше не использовать... разберитесь с относительными переменными.

LOST DEMON 05.01.2009 20:48

Цитата:

Сообщение от chingachgoog (Сообщение 788115)
Да - это пути (абсолютные и относительные) и прототипы (наследование).

простите за мою тупость, но че это значит? точнее, куда эти пути "писать" в переменных???:(
объясните плиз на примере:
есть некая переменная 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

Цитата:

Сообщение от DarkLight (Сообщение 788294)
1) Почему код отображения значения так необходимо вынести в мувик? Что мешает это делать в кадре основной шкалы? (нечто вроде mc.txt.text = this.variable1)

Все спасибо, так все работает - я просто ступил:D

dimarik 05.01.2009 22:19

Цитата:

Сообщение от DarkLight (Сообщение 788294)
... либо классов-синглтонов (вариант с классами предпочтительнее, в принципе).

Меня бы за такое BloodHound поколотил =)

Кстати, Мук тоже не советует превращать синглтон в хранилище глобальных переменных.

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

DarkLight 05.01.2009 22:25

Фаулер в одной из книг (Архитектура корпоративных программных приложений) для шаблона Registry (Реестр) в случае однопоточных приложений он рекумендует имеено его:) Я не сторонник такого подхода (Фаулер тоже, но причины его периодического использования описывает), но не из-за синглетона, а из-за того, что считаю создание объекта-реестра в большинстве случаев неудачным элементом архитектуры. Поэтому как один из допустимых подходов я его упоминаю все-таки.

dimarik 05.01.2009 22:31

И в чем же оно неудачно? =)

DarkLight 05.01.2009 22:36

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

pool 11.01.2009 14:40

в чем же решение?

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

доступность (переменных) "всем кому не лень" - имхо, переоценивают такую возможность, чаще это полезно там где уже фантазия программиста исчерпалась в плане создания уникальных имен, и он ненароком напишет имя, которое используется в другом месте, чем осложнит себе жизнь.

есть какие-нибудь "глобальные" рекомендации? вопрос к программерам с образованием.
поправте и убедите, плз.

dimarik 11.01.2009 23:48

Параметризируйте объекты при создании. Изменяйте объекты согласно изменившимся условиям посредством вызова их методов и передачей в них новых параметров. Использование глобальных переменных способствует увеличению coupling и уменьшает вероятность использования (code reuse) классов в других Ваших проектах.


Часовой пояс GMT +4, время: 21:46.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.