![]() |
Как использовать часть изображения?
Заранее прощу прощения, если тема обсуждалась - не нашёл.
Вопрос: В библиотеке есть изображение, например 100*100 px Необходмо программно получать из него часть изображения, например 10*10px с заданной позиции и вывести в кадр. К сожалению программированием на Action Script только что начал заниматься, но буду рад любой информации. Желательно конечно пример кода и указать мануал - где об этом можно почитать. Спасибо. Добавлено через 6 минут Если не понятно написал вопрос - пожалуйста уточните ) А то буду ждать сам не знаю чего =) |
ну посмотрите на класс BitmapData метод draw или просто на свойство scrollRect у DisplayObject
|
Цитата:
Я тоже думал что информация по BitmapData мне поможет, но не нашел этой информации ( |
>>подскажи пожалуйста где смотреть
обычно в хелпе..:) Код AS1/AS2:
|
silin
Спасибо, пошёл пробовать. На вид - всё просто и понятно ) PS: Вот понимаю что в хелпе )) Но возможно на этом форуме понятие "хелп" отличается от моего. Так как качал различную доку по AS2 - и почему то не нашел нужной инфо. Хотя и склоняюсь к тому, что не там или не так искал ) UPD: Добавлено через 13 часов 8 минут Продолжение вопроса :) Часть картинки из библиотеки благополучно выводится, но в координатах 0, 0 Как один из выходов я попробовл сделать так: Код AS1/AS2:
|
да нормальное решение, если надо этими фрагментами еще и манипулировать, то по другому наверное никак
если нужно просто показать, то можно создать большой прозрачный битмап и копировать фрагменты в нужную часть этого битмапа |
Цитата:
Правда, к сожалению, созрел еще один вопрос :) Пример: Есть картинки .png с прозрачными частями. Но когда я их накладываю - вместо прозрачного фона получается просто белый цвет. В библеотеке для моей картинки выставил "без сжатия PNG\GIF" но это ничего не дало В чем может быть дело? |
Значит .png не 32-х битная или в copyPixels() самый последний параметр поставили в false.
|
битмап, в который копируем должен быть прозрачным (по дефолту он 32-битный, но непрозрачный)
Код AS1/AS2:
|
Извиняюсь, надо было сразу указать:
Код AS1/AS2:
Или про рязрадность png Добавлено через 1 минуту Свойства png-картинки: Глубина цвета: 32 |
битмап у тебя непрозрачный белый
сравни с new BitmapData(600, 400, true, 0x0);//или 0x00FFFFFF, неважно |
Разницы никакой.
Код AS1/AS2:
Поясню еще - вырезаю из png прямоугольник 40*20. Там изображен ромб на прозрачном фоне. Но после того, как я этот прямоугольник вырезал и накладываю один рядом с другим - фон белый. |
png без альфа канала значит. Или вообще не png.
|
>>Разницы никакой
позволь не поверить.. в общем смотри внимательно в какой битмап ты копируешь плюс то, что Волгоградец подсказал - последний аргумент в copyPixels (от него зависит чья альфа будет применена к результату) |
Еще такой вариант - указана такая битмапа:
Код AS1/AS2:
|
Волгоградец
Спасибо. Так получилось Код AS1/AS2:
|
| Часовой пояс GMT +4, время: 04:17. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.