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

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

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

Регистрация: Nov 2006
Адрес: Hamburg
Сообщений: 195
Отправить сообщение для Peregrin с помощью ICQ
По умолчанию как в Bitmap'е отрисовать MovieClip, находящийся в библиотеке?

я знаю как загнать картинку из библиотеки в Bitmap, но загнать MovieClip чето не получается. Подскажите

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

Регистрация: Jul 2008
Адрес: Украина, Киев
Сообщений: 253
1. Создаете экземпляр класса вашего MovieClip.
2. Рисуете его на BitmapData методом draw.
3. Создаете экземпляр класса Bitmap(ВАША BitmapData) - получаете DisplayObject.

Старый 29.07.2008, 17:00
Peregrin вне форума Посмотреть профиль Отправить личное сообщение для Peregrin Найти все сообщения от Peregrin
  № 3  
Ответить с цитированием
Peregrin
 
Аватар для Peregrin

Регистрация: Nov 2006
Адрес: Hamburg
Сообщений: 195
Отправить сообщение для Peregrin с помощью ICQ
да про это я знаю. Мне интересно нельзя все это сделать без создания экземпляра?

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

Регистрация: Jul 2008
Адрес: Украина, Киев
Сообщений: 253
думаю нет... можно для созданного MovieClip указать свойство cacheAsBitmap = true... если вы используете Bitmap для повышения производительности, то этот вариант тоже хорош, если изображение не поворачивать и не скейлить

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

Регистрация: Nov 2006
Адрес: Hamburg
Сообщений: 195
Отправить сообщение для Peregrin с помощью ICQ
тут еще такая проблема:
клип, к которому я применяю метод draw(), т.е. который я хочу отрисовать, имеет точку регистра снизу в центре. Так вот... когда я применяю метод draw(), то в результате в Bitmap'е ничего не отображается. Но стоит мне переместить точку регистра в левый-верхний угол, как все становится нормально, но такой вариант меня не устраивает. Пробовал в метод draw() передать параметр clipRect, область которого покрывает весь клип, но тоже ничего не происходит. В чем дело?

Старый 29.07.2008, 18:42
litebox вне форума Посмотреть профиль Отправить личное сообщение для litebox Найти все сообщения от litebox
  № 6  
Ответить с цитированием
litebox
 
Аватар для litebox

Регистрация: Jul 2008
Адрес: Украина, Киев
Сообщений: 253
Дело в матрице преобразований:
Код:
var matrix: Matrix = new Matrix();
			
matrix.translate(СМЕЩЕНИЕ, СМЕЩЕНИЕ);

var bitmapData: BitmapData = new BitmapData(SIZE, SIZE);
			  
bitmapData.draw(mcClip, matrix);

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

Регистрация: Nov 2006
Адрес: Hamburg
Сообщений: 195
Отправить сообщение для Peregrin с помощью ICQ
че то я не понял эту систему. Я сделал смещение, но все равно Bitmap не отображает ничего, что находится выше или левее точки

Старый 29.07.2008, 19:11
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 8  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Код:
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.geom.*;

//// создаем клип со смещенным центром в правый нижний угол
var mc:MovieClip = new MovieClip ();
var g:Graphics = mc.graphics;
g.beginFill (0xFF0000);
g.lineTo(-100,0)
g.lineTo(-100,-100)
g.lineTo(0,-100)
g.lineTo(0,0)
g.endFill()
this.addChild (mc)
mc.x = 200;
mc.y = 200;

//// создаем обычный битмап
var bmpd:BitmapData = new BitmapData (100,100, false, 0x0000FF);
bmpd.draw (mc);
var bmp:Bitmap = new Bitmap (bmpd);
this.addChild (bmp);
bmp.x = 250;
bmp.y = 100; //// пусто

//// создаем битмап с матрицей смещения
var bmpd2:BitmapData = new BitmapData (100,100, false, 0x0000FF);
var matrix:Matrix = new Matrix ();
matrix.translate (100, 100);
bmpd2.draw (mc, matrix);
var bmp2:Bitmap = new Bitmap (bmpd2);
this.addChild (bmp2);
bmp2.x = 400;
bmp2.y = 100; //// готово
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 29.07.2008, 19:14
Venya2007 вне форума Посмотреть профиль Отправить личное сообщение для Venya2007 Найти все сообщения от Venya2007
  № 9  
Ответить с цитированием
Venya2007
[+4 16.07.08]

Регистрация: Jul 2008
Адрес: Gamburg
Сообщений: 108
Код:
var m:M= new M();
var bmp:BitmapData = new BitmapData(m.width,m.height,false,0x00FF00);
bmp.draw(m,new Matrix(1,0,0,1,m.width/2,m.height/2))
var b:Bitmap = new Bitmap(bmp)
b.x=100;
b.y=100
addChild(b)
где М - класс вашего мувика

iNils - у меня еще проще

Peregrin.ru - просто скопируйте код , только вместо М поставте клас вашего мувика.


Последний раз редактировалось Venya2007; 29.07.2008 в 19:20.
Старый 30.07.2008, 11:54
Peregrin вне форума Посмотреть профиль Отправить личное сообщение для Peregrin Найти все сообщения от Peregrin
  № 10  
Ответить с цитированием
Peregrin
 
Аватар для Peregrin

Регистрация: Nov 2006
Адрес: Hamburg
Сообщений: 195
Отправить сообщение для Peregrin с помощью ICQ
Цитата:
Сообщение от Venya2007 Посмотреть сообщение
iNils - у меня еще проще
У тебя не проще, просто у тебя конкретно под мой пример, а у него общий, с нуля, так сказать ))

Спасибо всем у меня не работало оказывается потому, что я параметры смещения в команде translate() указывал со знаком минус. А щас все работает. Еще раз спасибо

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

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

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


 


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


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