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

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

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

Регистрация: Jan 2009
Сообщений: 14
По умолчанию Bitmap движется рывками

Привет, появился вопрос.
Есть векторная графика, если её переконвертить с помощью BitmapData.draw в битмап и этот битмап двигать по сцене, то движение будет дерганным.
Если же ту же векторную графику положить на сцену и задать в настройках Export as Bitmap и двигать наравне с первым, то движение будет плавным.

Как добиться плавного движения в первом случае?

Вот пример - http://megaswf.com/serve/2043528

Код AS3:
import flash.events.Event;
import flash.display.BitmapData;
import flash.display.Bitmap;
 
var btmData:BitmapData = new BitmapData(mc.width,mc.height,true,0x000000);
btmData.draw(mc,null,null,null,null,true);
var bitm:Bitmap = new Bitmap(btmData,"always",true);
addChild(bitm);
bitm.x = mc.x;
bitm.y = 300;
 
 
addEventListener(Event.ENTER_FRAME,func);
 
function func(ev:Event)
{
   mc.x-=0.2;
   bitm.x -=0.2;
}

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

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
попробуй
Код AS3:
bitm = new Bitmap(btmData, PixelSnapping.NEVER, true);

Старый 26.01.2012, 22:08
dm2009 вне форума Посмотреть профиль Отправить личное сообщение для dm2009 Найти все сообщения от dm2009
  № 3  
Ответить с цитированием
dm2009

Регистрация: Jan 2009
Сообщений: 14
never/always не прокатывает. Можно написать scaleX=0.999 тогда смусинг врубается, но мне это не подходит т.к. всё равно изображения колбасится начинает по краям.

Старый 26.01.2012, 23:06
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 4  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Может если еще сделать
Код AS3:
bitmp.smoothing = true
лучше будет?

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

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
>>never/always не прокатывает.
в каком смысле 'never/always не прокатывает', нельзя почему-то ?
глянул http://silin.su/trash/move/, разница налицо: верхний -вектор, средний - битмап c PixelSnapping.NEVER, нижний ALWAYS
ну какбы и понятно, что для ALWAYS должна по целым пикселям прыгать

Добавлено через 1 минуту
>>Может если еще сделать
а он и так smoothing = true, в конструкторе задано

Старый 26.01.2012, 23:43
dm2009 вне форума Посмотреть профиль Отправить личное сообщение для dm2009 Найти все сообщения от dm2009
  № 6  
Ответить с цитированием
dm2009

Регистрация: Jan 2009
Сообщений: 14
Цитата:
Сообщение от silin Посмотреть сообщение
>>never/always не прокатывает.
в каком смысле 'never/always не прокатывает', нельзя почему-то ?
Вот и спрашиваю здесь потому, что на практике почему-то нельзя.

Вы попробуйте в своём примере не квадратики, а кисточкой пару линий нарисовать во флэше и это клипом-классом сделать. А потом добавить в спрайт, сразу видно дрожание.

Код AS3:
mc.graphics.beginFill(33023);
mc.graphics.drawRect(0, 0, 30, 30);*/
mc.addChild(new bg()); --- добавить векторный клип
Это вообще для игры, для движения фона, наверное попробую copyPixels какой-нибудь применить, ручной рендер что ли.

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

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
ага, есть дрожание в обоих режимах, причем в разных плеерах оно как-то по-разному проявляется
как вариант еще можно посмотреть заливку шейпа битмапом, http://silin.su/trash/move1/

Старый 27.01.2012, 14:41
dm2009 вне форума Посмотреть профиль Отправить личное сообщение для dm2009 Найти все сообщения от dm2009
  № 8  
Ответить с цитированием
dm2009

Регистрация: Jan 2009
Сообщений: 14
Действительно, при использовании шейпа результат хорош. Спасибо.

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

Теги
rendering

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

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


 


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


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