![]() |
Цитата:
Сам ещё поразмыслил и переделал по классике. Но у меня ещё такой вопрос по ходу родился. Если у нас в одном методе меню создаётся, а в другом обрабатывается и убирается, то область видимости переменной, в которую записывается экземпляр меню, ограничена методом-создателем, и её не получается передать в метод, принимающий события от меню. В общем, вот так я выкрутился. Ниже кусок кода View. Это нормально? Код AS3:
|
Цитата:
Второй момент касается безопасности некоторых операций. Например, надо буквально завести себе привычку перед removeChild() ВСЕГДА проверять, есть ли парент и есть ли чайлд. Общепринятая конструкция выглядит так: Код AS3:
Ну и совсем в порядке ворчания — если начал писать this. то пиши его везде. Одинокий, висящий в воздухе "dispatchEvent" смотрится каким-то робким и неуверенным в себе. К слову, олдскульные холиварщики подняли бы тебя на смех, убеждая что здесь вообще не this., а строго super. Потому что писать this. надо исключительно перед твоими кастомными методами данного наследника, которых нет в супер-классе. А если вызываешь унаследованный от суперкласса метод, будь добр так и писать: super.addChild(), super.dispatchEvent() ;) |
Цитата:
Цитата:
|
Когда-нибудь тебе доведется впервые написать не dispatchEvent() и даже не this.dispatchEvent(), а какой-нибудь stepper.buttonPlus.dispatchEvent(), и тогда ты прочувствуешь, что может быть и такое, и что у метода должен быть хозяин (ну, не всегда, но то отдельный разговор), а вызов метода без объекта-хозяина делает код похожим на функциональное программирование, а не на ООП. Когда ты привыкнешь мыслить объектами, умеющими делать то-то и то-то, а не функциями, тебе самому захочется всегда указывать, КТО делает вот ЭТО.
По поводу событий я уже говорил, что Меню не обязательно иметь собственный класс события, можно обойтись коробочным DataEvent, заведя пару констант для различения типов прямо в классе Меню. То есть: new DataEvent(Menu.SELECT, ..., button.id); Для Вью же, с его РАЗНООБРАЗИЕМ событий, иметь собственный класс событий положено по рангу. |
Цитата:
|
Цитата:
Цитата:
|
Цитата:
Пока имеем скачанный ShoeBox (с ним вроде всё понятно) и простенький ассет-менеджер, который умеет выдавать предварительно за-[embed]-женный Bitmap по строковому идентификатору. Понятно, что загруженный спрайтшит нарезаем на кусочки, BitmapData каждого помещаем в массив. В моём понимании это будет делать отдельный класс (или нет?). И главный вопрос, как наиболее удобно организовывать выбор нужного элемента? У меня пока модель выдаёт строковые идентификаторы (например, для нужной картинки с портретом). Как от них перейти к нужной битмапдате? |
Храни битмабы в Object или Dictionary. У них обоих допустимы строковые ключи. Я бы даже сказал, если ключи только строковые, то вполне хватит простого Object, в качестве ассоциативного массива
|
| Часовой пояс GMT +4, время: 02:12. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.