![]() |
создание открытых переменных
В главном классе создаю переменные, с возможностью доступа к ним из дополнительных классов. Правильно ли я написал? Подскажите, как называются такие переменные, константы?
Код AS3:
|
Вы о - protected var _layer1_mc:Sprite; ? так вы наоборот создали защищенные переменные …, а нада было public var _layer1_mc:Sprite; или public static var _layer1_mc:Sprite;
В случае public var доступ осуществляется через экземпляр класса Код AS3:
В случае с public static var доступ осуществляется через класс, то есть Код AS3:
|
1. у Вас дублируются переменные, уберите в функции init() все упоминания "var", иначе получается что у Вас объявлены три переменные, видимые из классов пакета, и три в локальной области видимости функции, и они не равны друг другу
2. Если вы оканчиваете название переменной на _mc, то она должна быть мувиклипом 3. Эти переменные не называются константами |
Вложений: 1
Цитата:
Код AS3:
|
Код AS3:
Отбой, зачем static? Оставляйте протектед или просто паблик |
Нельзя сделать _layer3_mc статическим так как он требует создания в констукторе или т.п.
Код AS3:
|
Есть замечания по коду:
1. Прежде всего, перейдите на вербльюжью нотацию - она используется в AS3 и многие редакторы ориентированы именно на нее. Не используйте подчеркивания вначале имени переменной - это делается лишь изредка и, как правило, применяется при создании get/set методов. Код AS1/AS2:
Второй вариант, рекомендуемый в общем случае - передать ссылки на экземпляры layer в нужные классы. 3. Про объявление локальных переменных уже сказали. 4. Часто инициализацию объектов можно смело вынести в объявление: Код AS1/AS2:
К тому-же, если вы используете типизацию Sprite, то не сможете корректно достучаться до методов и свойств, FullTree. Я использовал private, потому, что крайне маловероятно, что у рутового класса WebSite (если я правильно понял) будут потомки. 5. Ошибка логики вызова init. Мне сложно объяснить, но я поступил бы иначе. В итоге, код вывглядел бы примерно так: Код AS1/AS2:
Добавлено через 2 минуты Цитата:
Добавлено через 4 минуты Цитата:
|
Код:
_layer3_mc:Cloud=new Cloud();Код:
_layer3_mc=new Cloud(); |
| Часовой пояс GMT +4, время: 06:18. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.