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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 20.06.2012, 16:41
gagaga вне форума Посмотреть профиль Отправить личное сообщение для gagaga Найти все сообщения от gagaga
  № 1  
Ответить с цитированием
gagaga
[+1 22.04.13]
[+1 06.03.13]

Регистрация: Apr 2012
Сообщений: 239
По умолчанию кнопки с иконками

у меня есть куча кнопок и есть ассетМэп с иконками для этих кнопок... я написал функцию которая получает аргументами координаты иконки на мэпе, вырезает прямоугольник нужного размера и возвращает BitmapImage. Но такую функцию нельзя прибиндить. Как во флексе делаются подобные вещи? резать циклами мапу и раскладывать в массив чтоли?

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

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
Если лень порезать на нормальные иконки, то можно использовать sprite sheet (blitting)
Возможно.
__________________
In Code We Trust

Старый 20.06.2012, 17:41
gagaga вне форума Посмотреть профиль Отправить личное сообщение для gagaga Найти все сообщения от gagaga
  № 3  
Ответить с цитированием
gagaga
[+1 22.04.13]
[+1 06.03.13]

Регистрация: Apr 2012
Сообщений: 239
что это такое?

Добавлено через 1 час 39 минут
это какой-то очень сложный способ, мне надо что-то типа такого:
Код AS3:
[Bindable]
public function buttonIcon(_x:uint, _y:uint):BitmapImage {
			var bitmapData:BitmapData = new BitmapData(BUTTON_ICON_SIZE.x, BUTTON_ICON_SIZE.y, true, 0);
			var rectangle:Rectangle = new Rectangle();
				rectangle.x = _x * BUTTON_ICON_SIZE.x;
				rectangle.y = _y * BUTTON_ICON_SIZE.y;
				rectangle.width = BUTTON_ICON_SIZE.x;
				rectangle.height = BUTTON_ICON_SIZE.y;
			bitmapData.copyPixels(buttonIconAssetMap, rectangle, new Point());
			var bitmapImage:BitmapImage = new BitmapImage();
			bitmapImage.source = bitmapData;
			return bitmapImage;
		}
Код:
<s:Button icon="{buttonIcon(2, 5)}" width="20" height="20" />
только этот код не рабочий, потому что такие функции оказывается биндить нельзя....

Добавлено через 1 час 47 минут
пришлось писать отдельный класс assetManager... теперь всё работает

Добавлено через 1 час 52 минуты
но если кто-то знает какое-то изящное решение, всеравно пишите...
вот мой класс:
Код AS3:
public class AssetManager extends EventDispatcher {
		private const BUTTON_ICON_SIZE:uint = 16;
		private var _buttonAssetCollection:ArrayCollection = new ArrayCollection();
 
		public function AssetManager():void {
			[Embed(source="../assets/assetMap.png")] var ButtonAssetMap:Class;
			var buttonAssetMap:BitmapData = new ButtonAssetMap().bitmapData;
			for (var i:uint = 0; i < buttonAssetMap.height / BUTTON_ICON_SIZE; i++) {
				for (var j:uint = 0; j < buttonAssetMap.width / BUTTON_ICON_SIZE; j++ ) {
					var bitmapData:BitmapData = new BitmapData(BUTTON_ICON_SIZE, BUTTON_ICON_SIZE, true, 0);
					bitmapData.copyPixels(
						buttonAssetMap, 
						new Rectangle(j * BUTTON_ICON_SIZE, i * BUTTON_ICON_SIZE, BUTTON_ICON_SIZE, BUTTON_ICON_SIZE), 
						new Point()
					);
					_buttonAssetCollection.addItem(new Bitmap(bitmapData));
				}
			}
		}
		public function get buttonAssetCollection():ArrayCollection { return _buttonAssetCollection }
	}
Добавлено через 2 часа 7 минут
только среда ругается:
Код:
warning: unable to bind to property 'buttonAssetCollection' on class 'AssetManager'
но всё равботает


Последний раз редактировалось gagaga; 20.06.2012 в 19:49.
Создать новую тему Ответ Часовой пояс GMT +4, время: 07:33.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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