|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Jun 2013
Сообщений: 65
|
узнать квадрат непрозрачной части кадра
Здравствуйте!
Помогите, поалуйста, решить такую задачку. Есть спрайт в котором анимация где в первом кадре спрятан мувик длительностью 15 кадров. в каждом кадре изображение может быть разного размера. вот как имея только этот спрайт узнать у какой картинки самый большой квадрат непрозрачной части? мувик пока не добавляю. если нужно - скину и его. старалась объяснить более понятно, не знаю как получилось)) |
|
|||||
Lorem ipsum
|
Повесить слушатель на ENTER_FRAME этого 15-кадрового мувика, в каждом кадре брать его getBounds() и производить проверку по критериям "самый большой квадрат" и запоминать нового победителя (номер кадра, сами габариты, что там еще).
__________________
Поймай яблоко 2! |
|
|||||
getBounds дает не слишком точные результаты, тк прозрачные элементы тоже учитывает.
Я для выбора оптимальных областей для растеризации клипов использую bmd.getColorBoundsRect(0xFF000000, 0xFF000000). Сначала, естественно, нужно растеризовать кадр. Навскидку примерно так: function getFrameBoundsList(mc:MovieClip):Vector.<Rectangle> { var numFrames:int = mc.totalFrames; var list:Vector.<Rectangle> = new Vector.<Rectangle>(); for(var i:int = 1; i <= numFrames; i++) { var frameRect:Rectangle; mc.gotoAndStop(i); frameRect = getPixelBounds(mc); list.push(frameRect); } return list; } function getPixelBounds(sprite:Sprite):Rectangle { var rect:Rectangle; var resRect:Rectangle; var bmd:BitmapData; var matrix:Matrix; rect = sprite.getBounds(sprite); if(!rect.width || !rect.height) { return rect; } matrix = new Matrix(); matrix.tx = -Math.floor(rect.x); matrix.ty = -Math.floor(rect.y); var resW:int = Math.ceil(rect.width); var rewH:int = Math.ceil(rect.height); bmd = new BitmapData(resW, rewH, true, 0x0); bmd.draw(sprite, matrix); resRect = bmd.getColorBoundsRect(0xFF000000, 0xFF000000); return rect; }
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ" Мои ачивки: художник-паразит. Последний раз редактировалось ChuwY; 02.09.2014 в 16:11. |
Часовой пояс GMT +4, время: 14:20. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|