![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Nov 2005
Сообщений: 148
|
Выкладывать люда сотни строк кода счёл неразумным. Это кнопка для перехода к инфе проекта, которых несколько сотен. Она грузит картинку, а если нет - то оставляет надпись. И это всё, что мне от неё нужно. CLICK не неё ставлю в parente, там и вся основная логика.
|
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
Цитата:
private function createFileName(projectID:uint):String { return ("00" + projectID + ".jpg").substr(-7, 7); } p.S. Вам бы сейчас Роберта Мартина почитать, чтобы избавиться от хаоса и сделать код читабельным для человека. Ну это так, бесплатная рекомендация и ни к чему не обязывает))).
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Nov 2005
Сообщений: 148
|
Ну.... сказывается недостаток знаний.
А как "профессиональный и умный" Лоадер справится с такой задачей, ведь ему тоже придётся её решать? Я сейчас пошёл другим путём, сделал в XML флажок об отсутствии/присутствии файла. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
А нельзя в XML сделать путь к картинке для каждого проекта? ))) Ну и там же вставлять путь к заглушке, если картинки физически нет.
Лоадер будет справляться так же)) Речь не о том, что не надо будет справляться, а о том что классы будут заниматься своим делом ("одна ответственность"). Код каждого класса будет ясным и понятным. Изменения можно вносить быстро и безопасно, а не искать код загрузки там, где его по логике вещей нет — в кнопке, и потом ломать голову почему перестало работать остальное)) Ясность и чистота кода — очень важно. Не для заказчика, не для начальства, не для команды — прежде всего для Вас, это Вам сидеть днями и ночами над проектом. Очень важно, чтобы можно было легко и быстро найти нужные классы, методы или переменные "по смыслу", по какой-то.. стандартной логике. И к ясности имен это тоже относится. Сегодня Вам кажется, что "prjN" это нормально. Что "lang:Boolean" это логично. Но через месяц-два Вас попросят расширить проект, и когда prjN уже не будет просто визуальным иероглифом в Вашей оперативной памяти, когда Вам придется ЧИТАТЬ свой код по буквам и словам, станет не по себе. А штука в том, что никто ведь не мешал давать ясные читабельные названия. Никто не мешает. Кроме странной веры в нас самих, что код и должен быть таким — заумным, запутанным, не человеческим, а машинным языком.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Nov 2005
Сообщений: 148
|
Путь в XML? И прописывать в сотнях файлов все эти пути? Спасибо, нет. Да и зачем забивать память тем, что можно быстренько рассчитать.
Про стиль и логику я уже понял, это вопрос опыта и с ростом размера проектов это приходит как неизбежность. Вопрос был о том, как лоадеру обработать без вывода ошибок отсутствие вызываемого файла. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
А разве на этот вопрос до сих пор не ответили?
Цитата:
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Nov 2005
Сообщений: 148
|
Боюсь, что когда я доберусь до функции destroy(), придётся возвращаться к этому вопросу. Я всё-таки рассчитывал на то, что CG его подберёт.
|
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Мне казалось, я и на этот вопрос ответил.
Может, Вы как то конкретизируете, что Вас тревожит? Потому как на вопросы вроде отвечено, а новых сформулировано не было. Цитата:
Добавлено через 2 часа 22 минуты У меня вот этот код "молчит". То есть честно трейсит один IOError. Что я делаю не так? Надо эту флэшку на сервер выгрузить? package { import flash.display.Loader; import flash.display.Sprite; import flash.events.Event; import flash.events.IOErrorEvent; import flash.events.MouseEvent; import flash.events.SecurityErrorEvent; import flash.net.URLRequest; public class Main extends Sprite { private var _loader:Loader; public function Main():void { _loader = new Loader(); _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler); _loader.contentLoaderInfo.addEventListener (IOErrorEvent.IO_ERROR, IOErrorHandler); _loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); // Картинки с подчерком в начале не существует. Без подчерка — есть. var request:URLRequest = new URLRequest("http://cs6088.userapi.com/v6088666/4af/_9n3H1zdOtJo.jpg"); _loader.load(request); } private function securityErrorHandler(event:SecurityErrorEvent):void { trace("SecurityError"); removeListeners(); _loader=null; } private function IOErrorHandler(event:Event):void { trace("IOError"); removeListeners(); _loader=null; } private function completeHandler(event:Event):void { trace("Complete"); removeListeners(); this.addChild(_loader); } private function removeListeners():void { _loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, IOErrorHandler); _loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, completeHandler); _loader.contentLoaderInfo.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); } } } Проверил в сети. Никаких необработанных ошибок не выскакивает.
__________________
Reality.getBounds(this); Последний раз редактировалось Wolsh; 31.08.2012 в 22:29. |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:49. |
|
|
« Предыдущая тема | Следующая тема » |
|
|