|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Aug 2012
Сообщений: 77
|
TileList + обработка события ошибочной ссылки на изображение
Здравствуйте!
Сделал простую галерею с выводом изображений из xml-базы в TileList. Изображения находятся на локальном диске. Добавил в DataProvider свои ссылки на изображения. Проблема в том что я не знаю как проверить подлинность ссылки на изображение в следствии чего, если присутствует ошибка в ссылке, то флеш выдает соответствующую ошибку отсутствия изображения. Есть ли в компоненте TileList'а, событие которое будет адекватно реагировать на ошибки орфографии ссылки и вместо ошибки будет добавлять какое-нибудь дежурное изображение в TileList? Предчувствую, что у меня примитивный вопрос и ждет ответ типа: повесь слушатель на TileList, который отслеживает IOErrors или что-то подобное. Кое-что пробовал, пытался реализовать и в описании компонента смотрел справочного материала, да и на форумах, но нигде не упоминается об этой (моей) проблеме. Возможно я просто невнимательный. Прошу подсказать. Спасибо.
__________________
Набирать программы могут многие, программировать - единицы |
|
|||||
Регистрация: Aug 2012
Сообщений: 77
|
Нет, к сожалению не понял как повесить слушатель в рендерер TileList'а.
Я использую рендерер взятый от сторонних разработчиков на одном из зарубежных форумов. Кстати, для тех кто ищет решение как вручную придавать стиль ячейкам TileList'а, этот способ вам подойдет: myForm.TileL.setStyle("cellRenderer", UserListRenderer);//соответственно так я его использую в программе /**** * File: UserListRenderer.as * Author: design1online.com, LLC * Date: 9.4.2011 * Purpose: change the formatting for the user tile list * so images appear beside the user name ****/ package { import fl.controls.listClasses.ICellRenderer; import fl.controls.listClasses.ImageCell; import fl.controls.TileList; import flash.text.*; public class UserListRenderer extends ImageCell implements ICellRenderer { public var desc:TextField = new TextField(); private var textStyle:TextFormat = new TextFormat(); public function UserListRenderer() { //inherit the variables from the parent super(); //we don't want to stretch our images to fit the size of the box loader.scaleContent = false; //change the cursor as if this was a button useHandCursor = true; //Create and format the text field //that will appear beside the image desc.autoSize = TextFieldAutoSize.CENTER; desc.x = 24; desc.y = 5; desc.width = 150; desc.height = 28; desc.multiline = false; desc.wordWrap = false; addChild(desc); //apply some styles to our text field setStyle("imagePadding", 2); textStyle.font = "Tahoma"; textStyle.color = 0xCC3300; textStyle.size = 15; } /** * Now we override the function that draws the layout * so we can move the image beside the text **/ override protected function drawLayout():void { //adjust the icon for any existing padding var imagePadding:Number = getStyleValue("imagePadding") as Number; //offset the image in the box so it's not touching the top of it loader.move(0, 4); var w:Number = width-(imagePadding*2); var h:Number = height-(imagePadding*2); if (loader.width != w && loader.height != h) { loader.setSize(w,h); } //re-draw the image loader.drawNow(); //hide the original cellImage textField so we can display our new one later textField.visible = false; //display the new text box beside our image desc.text = data.label; desc.setTextFormat(textStyle); //adjust the background background.width = width; background.height = height; } } } Подправьте меня пожалуйста. Спасибо. Выкладываю UserListRenderer.as. Кому нужен, забирайте:
__________________
Набирать программы могут многие, программировать - единицы |
|
|||||
.
|
добавьте
|
|
|||||
Регистрация: Aug 2012
Сообщений: 77
|
Да, спасибо, то что нужно) Я так понимаю, что если дежурного изображения не будет на месте, то возникнет ошибка загрузки, которую нужно словить через ЛоадИнфо Лоадера или не предусматривать дежурное изображение?
Может быть еще глупее вопрос: можно ли без отлова ошибок загрузки, проверить правильность ссылки на изображение, а не на пустоту из-за ошибки в ссылке?
__________________
Набирать программы могут многие, программировать - единицы |
Часовой пояс GMT +4, время: 12:45. |
|
« Предыдущая тема | Следующая тема » |
|
|