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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 24.01.2012, 14:33
HardCoder вне форума Посмотреть профиль Отправить личное сообщение для HardCoder Найти все сообщения от HardCoder
  № 1  
Ответить с цитированием
HardCoder
 
Аватар для HardCoder

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
По умолчанию BitmapData::draw(clip) - отрисовать "минусовую" часть clip

Здравствуйте, мучает вопрос. Есть некий спрайт. В нем нарисован прямоугольник (-100, -100, 200, 200). Хочу этот квадрат отрисовать в битмап (200х200). Но дело в том что отрисовывается лишь четвертая часть - та котороя находится в "плюсовой" части спрайта, а все что находится в минусе - не попадает в битмап. Ну - это оно логично. Но как все-таки отрисовать весь квадрат? Параметр clipRect метода draw не подходит - проверял. Если clipRect задать (-100, -100, 200, 200) - все равно отрисовывается лишь четвертая часть . Подскажите, пожалуйста, как можно решить эту задачу.

Добавлено через 2 минуты
PS: Я делаю это таким способом: помещаю спрайт квадрата в другой спрайт (на положительную область), и отрисовываю его. Но кажеться мне - это немного извращенно. Нет ли более изящных способов?
__________________
Я мало чего умею, но зато хорошо умею учиться...

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

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
А матрицу не пробовали?
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 24.01.2012, 14:43
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 3  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
Код AS3:
var sprite:Sprite = new Sprite();
sprite.graphics.beginFill(0x808080);
sprite.graphics.drawRect( -100, -100, 200, 200);
 
var bounds:Rectangle = sprite.getBounds(sprite);
var mtrx:Matrix = new Matrix();
mtrx.translate(bounds.left, bounds.top);
var bmd:BitmapData = new BitmapData(bounds.width, bounds.height);
bmd.draw(sprite, mtrx);
addChild(new Bitmap(bmd));

Старый 24.01.2012, 15:29
HardCoder вне форума Посмотреть профиль Отправить личное сообщение для HardCoder Найти все сообщения от HardCoder
  № 4  
Ответить с цитированием
HardCoder
 
Аватар для HardCoder

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
Спасибо товарищи, за советы. silin, так оно не малюет ничего. Я изменил:
Код AS3:
mtrx.translate(bounds.left, bounds.top);
на
Код AS3:
mtrx.translate(Math.abs(bounds.left), Math.abs(bounds.top));
, тогда намалевало
__________________
Я мало чего умею, но зато хорошо умею учиться...

Старый 24.01.2012, 15:32
crazyone вне форума Посмотреть профиль Отправить личное сообщение для crazyone Найти все сообщения от crazyone
  № 5  
Ответить с цитированием
crazyone
 
Аватар для crazyone

блогер
Регистрация: Nov 2007
Адрес: Киев
Сообщений: 557
Записей в блоге: 2
а надо было поменять на
Код AS3:
mtrx.translate(-bounds.left,-bounds.top);
__________________
aka doctorstal

Старый 24.01.2012, 15:32
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 6  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
дада, сори
только лучше наверное
Код AS3:
mtrx.translate(-bounds.left, -bounds.top);

Старый 24.01.2012, 15:44
HardCoder вне форума Посмотреть профиль Отправить личное сообщение для HardCoder Найти все сообщения от HardCoder
  № 7  
Ответить с цитированием
HardCoder
 
Аватар для HardCoder

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
Цитата:
Сообщение от silin Посмотреть сообщение
только лучше наверное
Цитата:
Сообщение от crazyone Посмотреть сообщение
mtrx.translate(-bounds.left,-bounds.top);
Ну, раз уж опытные сказали - значит так и сделаю. Только вопрос: чем лучше? Быстрее что ли?
__________________
Я мало чего умею, но зато хорошо умею учиться...

Старый 24.01.2012, 15:47
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 8  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
лучше тем, что если контент будет смещен в другую сторону, то тоже сработает, а с abs нет

Старый 24.01.2012, 15:54
HardCoder вне форума Посмотреть профиль Отправить личное сообщение для HardCoder Найти все сообщения от HardCoder
  № 9  
Ответить с цитированием
HardCoder
 
Аватар для HardCoder

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
Понял, буду иметь в виду. Спасибо всем за внимание.
__________________
Я мало чего умею, но зато хорошо умею учиться...

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

Теги
BitmapData.draw

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

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


 


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


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