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

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

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

блогер
Регистрация: Jul 2007
Сообщений: 940
Записей в блоге: 3
Question BitmapData.draw() если содержимое располагается и в отрицательных координатах

неужели никак не срисовать в BitmapData клип, если его содержимое начинается не в (0, 0) а в отрицательных координатах? есть там параметр clipRect:Rectangle (default = null) — A Rectangle object that defines the area of the source object to draw. If you do not supply this value, no clipping occurs and the entire source object is drawn. , но с отрицательными он зараза будто не хочет работать.

Код:
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.geom.*;

var myBitmapData:BitmapData = new BitmapData(frame.width, frame.height);
var sourceRect:Rectangle = new Rectangle(-20, -20, frame.width, frame.height);
myBitmapData.draw(frame, null, null, null, sourceRect);
var bmp:Bitmap = new Bitmap(myBitmapData, 'auto', true);
this.addChild(bmp);
bmp.x = bmp.y = 100;
bmp.rotation = 10;
//получается клип, видимый всё-равно с точки (0, 0) оригинала
где требуется: png для вращения. точка, вокруг которой надо вращать, устанавливается визуально (для удобства) ну и её координаты (0, 0).


если проблема напрямую не решится - для нашедших тему - есть варианты обхода:

1. неудобный путь - много клипов в библиотеке: у вас два клипа: mcRotate, который вы будете вращать, и mcBmp, который вложен в mcRotate и расположен так, чтобы точка отн. которой будет вращение лежит в 0, 0. в mcBmp лежит png в 0, 0. делаете BitmapData.draw() с клипа mcBmp, получившийся потом клип кладёте в mcRotate с теми же координатами, что и mcBmp. mcBmp можно удалить. работает, но в процессе приходится делать доп. клип в библиотеке - муторно.

2. использовать функцию поворота, отн какой-то точки. кладём png в клип в ноль, делаем с него клип через BitmapData.draw() и размещаем там же, потом вертим относительно клипа-"гвоздика" (в случае висящей на стене рамы=)). неудобство - в дополнении к классу-маятнику надо вручную всегда делать "гвоздик".. а хотелось бы без этого. и для поворота придётся считать синусы-косинусы, а можно было бы стандартным rotate)
Вложения
Тип файла: rar BitmapData.draw.rar (17.6 Кб, 79 просмотров)

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

Регистрация: Oct 2005
Адрес: Борисоглебск
Сообщений: 1,702
Отправить сообщение для miramax с помощью ICQ Отправить сообщение для miramax с помощью AIM Отправить сообщение для miramax с помощью MSN Отправить сообщение для miramax с помощью Yahoo Отправить сообщение для miramax с помощью Skype™
draw(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false):void

почитайте про второй аргумент функции.
__________________
AS3 | www.FLAPS.ru | Русские флэшеры самые умные флэшеры в мире. ©

Старый 08.09.2007, 23:30
fljot вне форума Посмотреть профиль Отправить личное сообщение для fljot Найти все сообщения от fljot
  № 3  
Ответить с цитированием
fljot

блогер
Регистрация: Jul 2007
Сообщений: 940
Записей в блоге: 3
воистину! спасибо!

хотя перестав тупить я нашёл галочку allow smoothing в битмат пропертис.. так что ничего рисовать-копировать вобщем в этой ситуации не надо, когда png'шки в библиотеке лежат

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

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

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


 


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


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