Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 30.08.2012, 22:40
zerAlex2 вне форума Посмотреть профиль Отправить личное сообщение для zerAlex2 Найти все сообщения от zerAlex2
  № 11  
Ответить с цитированием
zerAlex2

Регистрация: Nov 2005
Сообщений: 148
Выкладывать люда сотни строк кода счёл неразумным. Это кнопка для перехода к инфе проекта, которых несколько сотен. Она грузит картинку, а если нет - то оставляет надпись. И это всё, что мне от неё нужно. CLICK не неё ставлю в parente, там и вся основная логика.

Старый 31.08.2012, 01:26
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 12  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
Выкладывать люда сотни строк кода счёл неразумным.
Цитата:
И это всё, что мне от неё нужно.
Все, что нужно от кнопки — реагировать на мышиные события, демонстрируя свою интерактивность. Парсить строки и загружать изображения — не ее забота. "Сотни строк кода" могли быть поделены на два или три полезных в разных ситуациях класса. Загрузчик картинок мог бы грузить картинки и для других целей. Кнопка могла бы собирать и оживлять кнопки и для других целей проекта. Уникален разве что парсер адреса, для которого можно было бы создать функцию в СоздателеКнопокПроекта.
Код AS3:
private function createFileName(projectID:uint):String
{
	return ("00" + projectID + ".jpg").substr(-7, 7);
}
А кнопке отдавать уже загруженную "профессиональным и умным" Лоадером картинку. Кстати, стандартным поведением считается подгружать "заглушку" вместо отсутствующей картинки. Нарисованную дизайнером в стиле сайта))) Это мог бы делать Лоадер в случае неудачи с загрузкой, обеспечивая таким образом кнопку гарантированной картинкой, чтобы ей не приходилось медитировать над интеллектуальными задачами и уметь извиняться.
p.S. Вам бы сейчас Роберта Мартина почитать, чтобы избавиться от хаоса и сделать код читабельным для человека. Ну это так, бесплатная рекомендация и ни к чему не обязывает))).
__________________
Reality.getBounds(this);

Старый 31.08.2012, 03:16
zerAlex2 вне форума Посмотреть профиль Отправить личное сообщение для zerAlex2 Найти все сообщения от zerAlex2
  № 13  
Ответить с цитированием
zerAlex2

Регистрация: Nov 2005
Сообщений: 148
Ну.... сказывается недостаток знаний.
А как "профессиональный и умный" Лоадер справится с такой задачей, ведь ему тоже придётся её решать?

Я сейчас пошёл другим путём, сделал в XML флажок об отсутствии/присутствии файла.

Старый 31.08.2012, 04:09
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 14  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
А нельзя в XML сделать путь к картинке для каждого проекта? ))) Ну и там же вставлять путь к заглушке, если картинки физически нет.

Лоадер будет справляться так же)) Речь не о том, что не надо будет справляться, а о том что классы будут заниматься своим делом ("одна ответственность"). Код каждого класса будет ясным и понятным. Изменения можно вносить быстро и безопасно, а не искать код загрузки там, где его по логике вещей нет — в кнопке, и потом ломать голову почему перестало работать остальное)) Ясность и чистота кода — очень важно. Не для заказчика, не для начальства, не для команды — прежде всего для Вас, это Вам сидеть днями и ночами над проектом. Очень важно, чтобы можно было легко и быстро найти нужные классы, методы или переменные "по смыслу", по какой-то.. стандартной логике. И к ясности имен это тоже относится. Сегодня Вам кажется, что "prjN" это нормально. Что "lang:Boolean" это логично. Но через месяц-два Вас попросят расширить проект, и когда prjN уже не будет просто визуальным иероглифом в Вашей оперативной памяти, когда Вам придется ЧИТАТЬ свой код по буквам и словам, станет не по себе. А штука в том, что никто ведь не мешал давать ясные читабельные названия. Никто не мешает. Кроме странной веры в нас самих, что код и должен быть таким — заумным, запутанным, не человеческим, а машинным языком.
__________________
Reality.getBounds(this);

Старый 31.08.2012, 16:30
zerAlex2 вне форума Посмотреть профиль Отправить личное сообщение для zerAlex2 Найти все сообщения от zerAlex2
  № 15  
Ответить с цитированием
zerAlex2

Регистрация: Nov 2005
Сообщений: 148
Путь в XML? И прописывать в сотнях файлов все эти пути? Спасибо, нет. Да и зачем забивать память тем, что можно быстренько рассчитать.

Про стиль и логику я уже понял, это вопрос опыта и с ростом размера проектов это приходит как неизбежность. Вопрос был о том, как лоадеру обработать без вывода ошибок отсутствие вызываемого файла.

Старый 31.08.2012, 16:39
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 16  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
А разве на этот вопрос до сих пор не ответили?
Цитата:
Да, верно. Закоментировал removeEventListener-ы и всё прошло )
__________________
Reality.getBounds(this);

Старый 31.08.2012, 17:04
zerAlex2 вне форума Посмотреть профиль Отправить личное сообщение для zerAlex2 Найти все сообщения от zerAlex2
  № 17  
Ответить с цитированием
zerAlex2

Регистрация: Nov 2005
Сообщений: 148
Боюсь, что когда я доберусь до функции destroy(), придётся возвращаться к этому вопросу. Я всё-таки рассчитывал на то, что CG его подберёт.

Старый 31.08.2012, 20:02
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 18  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Мне казалось, я и на этот вопрос ответил.
Может, Вы как то конкретизируете, что Вас тревожит? Потому как на вопросы вроде отвечено, а новых сформулировано не было.
Цитата:
Я всё-таки рассчитывал на то, что CG его подберёт.
Не подобрал? Кого?

Добавлено через 2 часа 22 минуты
У меня вот этот код "молчит". То есть честно трейсит один IOError. Что я делаю не так? Надо эту флэшку на сервер выгрузить?
Код AS3:
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);
		}
	}
}
Добавлено через 2 часа 34 минуты
Проверил в сети. Никаких необработанных ошибок не выскакивает.
__________________
Reality.getBounds(this);


Последний раз редактировалось Wolsh; 31.08.2012 в 22:29.
Создать новую тему Ответ Часовой пояс GMT +4, время: 02:47.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 02:47.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.