![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Вот все никак не могу начать правильно делать сайты, все не покидает чувство, что делаю что-то не правильно.
Например, можно ли в методе определять функцию? public function methodName() { btn.addEventListener(MouseEvent.CLICK, goToGoogle); function goToGoogle(e:MouseEvent) { navigateToURL(new URLRequest('http://www.google.com'), '_blank'); } } Это пример, про замыкания знаю ![]() Или самый важный вопрос. Например, сайт с несколькими страницами и фото галереей. Делаю так. Класс Main - главная страница, шаблон. На каждую страницу свой класс. Экземпляр страницы помещается сверху с координатами, допустим (50, 150). Т.е. страница имеет эту точку в качестве нулевой. Что же делать, когда надо, допустим, затемнить всю страницу для вывода модального окна? Событие диспатчить на главную, чтобы она все зарывала? Тогда не закроются элементы самой подстраницы. В ином случае возникает проблема с координатами. Или страница галереи. Хочу, чтобы фотки вылетали сверху экрана. Как вычислять координаты? Каждая фотка - экземпляр класса Photo с параметрами уменьшенной картинки, полного изображения, описания и т.д. Как выводить увеличенное изображение с навигацией (предыдущая/следующая)? Это должен делать экземпляр класса Gallery? Или выводить увеличенное изображение экземпляром Photo? Тогда опять проблема с затемнением фона и определением предыдущего/следующего изображения. Я понимаю, что координаты относительно stage можно вычислить (кстати, подскажите как правильнее это сделать заодно ), но может я делаю просто не так как надо и есть более верное и красивое решение?Сайты делаю, неплохо получается, но всегда такое ощущение, что сделал что-то неправильно. Бывалые, подскажите, как правильно это всё делать? |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Делать можно, но неправильно. Объявляйте методы-обработчики.
|
|
|||||
|
Регистрация: Feb 2010
Адрес: Донецк
Сообщений: 34
|
Все зависит от макетов. У вас настолько неконкретный вопрос, что ответ на него даже затрудняюсь дать. Я стараюсь общие элементы сайта, блоки выносить в классы.
Например, Menu, MenuItem, Page, Gallery. В Mайне всем этим управлять. Как-то так. Вообще, хорошо бы всегда смотреть — не всегда оправдано делать сайт на флэше. Из-за двух-трех эффектов не стоит даже браться: вполне подойдет джаваскрипт и хтмл. Флэш-то просто инструмент, задача —*сделать хороший сайт. |
|
|||||
|
Цитата:
|
|
|||||
|
Регистрация: Feb 2007
Сообщений: 563
|
слишком много вопросов - начните с чего то конкретного, у меня, допустим есть опыт сайта полностью на flash, делал для себя - т.е. старался гы гы, у самого был подобный вопрос, когда начал делать, но к сожалению, тогда толком тоже не смог никто помочь, потому что я так же спрашивал, как и вы - особо сам не понимая о чем, так что, сейчас, пожалуй, пока воспоминания свежи, возможно и смогу помочь.
Насчет функции в функции или функции в методе - вот мои соображения, после хождения по этим граблям: Так делать можно, но лишь в некоторых случаях, например в том случае, когда требуется сделать небольшую "подфункцию" функции, а не полноценную функцию, из которой или к которой планируется обращаться за пределом той функции, в которой она храниться, поскольку область видимости этой функции очень сильно ограничивается и начинаются траблы, особенно когда мало опыта. Например я использую "подфункцию" в следующем случае - например создаю экземпляр класса загрузчика, который должен в себя загрузить картинку, но мне требуются некоторые действия выполнить именно по окончании загрузки этой картинки или неудаче. Что же делать? Внутри класса загрузчика есть кастомный метод, который начинает передавать "вверх" события, по окончании загрузки, естественно, к экземпляру класса на верху присоеденен слушатель этого события, как только оно происходит - тут то и запускаеся та самая подфункция, которая у меня обычно убивает слушатель, поскольку он больше не нужен, и , например, сдвигает картинку по координатам ...и все - в общем то это все на что годны такие функции в функции, запомните только одну вещь - ваша подфункция живет только в момент работы функции, куда она вложена, вобщем по аналогии с локальной переменной в функции, которая живет только в момент работы функции, и видна и требуется, только для выполнения этой функции. К стати, если кто из более продвинутых кодеров меня поправит, то я только за, потому что написал так, как сам понимаю это. |
|
|||||
|
скажите почему так делать не правильно? Вы считаете что такие простые функции как переход по ссылке стоит выносить в отдельную функцию? Если можно накидайте простой пример как нужно делать в данном случае. Просто я часто так делаю и не вижу никаких сложностей с эти методом...
|
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
Цитата:
2. Что будет, если у вас будет 2 или более экземпляров класса с вызванный методом methodName? |
|
|||||
|
Создавая такую анонимную функцию как в вашем случае вы никогда от неё не отпишитесь и она навсегда останется в памяти.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Пардон. По всей видимости я не правильно понял. Я думал что имелось ввиду метод navigateToUrl правильне было бы вынести в о дельную функцию и уже в обработчике события вписывать ее вместо navigateToURL.
|
|
|||||
|
Это и имелось ввиду, смотрите мой пример.
__________________
Тут мужик танцует и поёт про флэш |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:02. |
|
|
« Предыдущая тема | Следующая тема » |
|
|