![]() |
Вопрос про классы
Привет.
Таки никак не пойму чего-то. 1.Я создаю мувиклип и указываю что он, допустим, некий класс GG. Но код при этом пишу внутри клипа, в его кадрах. 2. Я вызываю экземпляр клипа new GG. 3. Все работает. ///Хочу сделать по-нормальному. Все говорят, правильно -эт надо чтоб все в классах было. 1. Беру тот же клип-класс GG. Делаю промежуточный класс, расширяющий GG, сохраняю с расширением .as. Тот же самый код пишу. 2. Я вызываю экземпляр класса. 3. Ошибок не пишет, но ничего не работает. Хз, что я не так делаю? Код AS3:
Код AS3:
|
Код AS3:
главный класс прописывается в свойствах файла .fla (вашего проекта) |
Вот мой главный класс
Код AS3:
|
А что тут должно происходить?
Очевидно там срабатывает вот это условие Код AS3:
Такого условия быть не должно. Объект stage не доступен в конструкторе. В конструкторе нужно добавить слушатель добавления Код AS3:
п.с. Хотя, если есть желание делать все правильно, то советую сразу почитать о конвенциях написания кода |
Спасибо тебе человеческое, caseyryan!
Я-то думаю, чего он на stage ругается.Ну, думаю, наверное код выполняется раньше чем сцена загружается. Добавил !stage. Не ругается...хорошо..умный значит я..пц( Добавлено через 4 часа 17 минут Исправил главный класс: Код AS3:
И исправил, то что посоветовали со stage Код AS3:
не работает( Добавлено через 4 часа 56 минут Нашел причину. Ключевое слово "this" не может использоваться в статических методах. Оно может использоваться только в методах экземпляра, в закрытии функций и в глобальных кодах. Добавлено через 5 часов 4 минуты Переделал Код AS3:
Добавлено через 5 часов 29 минут а если попробовать Код AS3:
Только не соображу что делать с ними |
DenDobrii, пока зашла тема - функция в методе - очень нехорошо с: Зарубите себе оформлять обработчики отдельным приватным методом.
И ОБЯЗАТЕЛЬНО ВЕЗДЕ ставить модификатор доступа, согласно конвенциям да и ваще логике. Когда вы не ставите - у вас по умолчанию определяется модификатор internal, обеспечивающий доступ внутри пакета. И ОБЕЗАТЕЛЬНО ВЕЗДЕ давать ВМЕНЯЕМЫЕ имена переменным, классам и методам(я про GG, MainHiro, fnX итд, смотрите конвенции по ссылке в сообщении caseyryan) А ещё, удобней же, когда конструктор идёт первым после объявления переменных в теле класса. Надо себя к порядку приучать. |
DenDobriy, советую установить FlashDevelop. В ней писать намного проще и быстрее. И за одно можно посмотреть как она создает шаблоны классов по умолчанию.
У тебя сейчас в коде полная каша. Как уже заметил ZackMercury, вложенные методы - это плохо (в большинстве случаев). Вместо этого Код AS3:
Код AS3:
|
Цитата:
|
Нет, это именно метод. Не важно, что в as3 они называются function. Там доступно неявное свойство this
Хотя не раз уже бывали холивары по поводу различий между функциями и методами. |
caseyryan, метод - это функция, которая принадлежит классу.
Вложенная функция имеет доступ к области видимости класса, и она замыкает плюс к этому ещё и все локальные переменные метода. Она находится внутри метода, поэтому она и имеет те же привилегии, что и метод. Добавлено через 5 минут Но термин "вложенный метод" я считаю ошибкой. Попробуйте применить ему модификатор доступа, може? Или вызовите его обратившись к экземпляру класса снаружи? Не написали модификатор доступа, так что ж он не internal, как у всех методов?) Может, у вас получится без дополнительных операций вызвать этот "метод" из самого экземпляра?) |
| Часовой пояс GMT +4, время: 00:52. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.