![]() |
|
||||||||||
|
|||||
|
[+1 22.04.13]
[+1 06.03.13] Регистрация: Apr 2012
Сообщений: 239
|
у меня есть куча кнопок и есть ассетМэп с иконками для этих кнопок... я написал функцию которая получает аргументами координаты иконки на мэпе, вырезает прямоугольник нужного размера и возвращает BitmapImage. Но такую функцию нельзя прибиндить. Как во флексе делаются подобные вещи? резать циклами мапу и раскладывать в массив чтоли?
|
|
|||||
|
[+1 22.04.13]
[+1 06.03.13] Регистрация: Apr 2012
Сообщений: 239
|
что это такое?
Добавлено через 1 час 39 минут это какой-то очень сложный способ, мне надо что-то типа такого: [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; } Добавлено через 1 час 47 минут пришлось писать отдельный класс assetManager... теперь всё работает Добавлено через 1 час 52 минуты но если кто-то знает какое-то изящное решение, всеравно пишите... вот мой класс: 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 } } только среда ругается: но всё равботает Последний раз редактировалось gagaga; 20.06.2012 в 19:49. |
![]() |
![]() |
Часовой пояс GMT +4, время: 07:33. |
|
|
« Предыдущая тема | Следующая тема » |
|
|