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

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

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

Регистрация: Jul 2008
Адрес: Рига
Сообщений: 176
По умолчанию У програмно созданного Bitmap не работает smoothing?

Народ, нужна помощь!

Для небольшого банера-галереи, пришлось делать следующее изменение:
Сделать попап растягиваемым относительно текста внутри. Раньше бэкграунд попапа
был PNG со smoothing = true; Но для этой цели, чтобы не растягивать Битмап, а то он
некрасиво искажается, я нарисовал такой же попап во флэше, в векторе. Делаю ему
нужный ресайз, а потом рисую его в BitmapData -> Bitmap. Выставляю smoothing = true,
но при анимации он дергается, как дергался старый битмап бэкграунд без smoothing!
Что же это получается? Для такого битмапа не работает smoothing?!

Глянуть сие можно тут:
http://turret.itgrupa.lv/test/tele2/tele2loader.html

Попап появляется при маус оувере на прямоугольные подвижные картинки.
Я для наглядности поставил 2 бэкграунда. Верхний, это старый битмап из library,
нижний это проблемный Bitmap, который я рисую с вектора, он дергается как паралитик.

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

Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
Bitmap.cacheAsBitmap

Старый 29.10.2009, 14:05
Xpb7 вне форума Посмотреть профиль Отправить личное сообщение для Xpb7 Найти все сообщения от Xpb7
  № 3  
Ответить с цитированием
Xpb7

Регистрация: Jul 2008
Адрес: Рига
Сообщений: 176
cacheAsBitmap стояло:

Код AS3:
var vData:BitmapData = new BitmapData(cWidth, cHeight, true, 0xFFFFFF);
var m:Matrix = new Matrix();
 
m.translate( Math.round( cWidth / 2 ), cHeight - 3);		
vData.draw(this.content, m, null, null, new Rectangle(0, 0, cWidth , cHeight ));
 
var nScreenShot:Bitmap = new Bitmap(vData, "auto", true);
nScreenShot.smoothing = true;
nScreenShot.cacheAsBitmap = true;
 
this.addChild( nScreenShot );

Старый 29.10.2009, 14:10
xanderello вне форума Посмотреть профиль Отправить личное сообщение для xanderello Найти все сообщения от xanderello
  № 4  
Ответить с цитированием
xanderello
[+1 17.01.08]
 
Аватар для xanderello

Регистрация: Jan 2008
Сообщений: 16
По моему это не Смуфинг, это пиксельСнапинг - попробуй вместо 'auto' поставить 'always'

Старый 29.10.2009, 14:18
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 5  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
вот тестовый код
Код AS3:
var s:Shape = new Shape();
s.graphics.beginFill(0);
s.graphics.drawRect(0, 0, 50, 50)
s.graphics.endFill();
 
var bmpd:BitmapData = new BitmapData(50, 50);
bmpd.draw(s, null, null, null, null, true);
 
var bmp1:Bitmap = new Bitmap(bmpd, PixelSnapping.NEVER, true);
//bmp1.cacheAsBitmap = true; // - только все портит
var bmp2:Bitmap = new Bitmap(bmpd, PixelSnapping.AUTO, false);
bmp2.y = 55;
 
var m:MovieClip = new MovieClip();
m.addChild(bmp1);
m.addChild(bmp2);
m.y = 10;
m.x = 10;
addChild(m);
 
addEventListener(Event.ENTER_FRAME, mover);
 
function mover(e:Event):void
{
	x += .1;
}
который показывает проблему: верхний квадратик более-менее плывет, нижний скачет.
но стоит вместо прямоугольника
Код AS3:
s.graphics.drawRect(0, 0, 50, 50)
нарисовать тот же кружок
Код AS3:
s.graphics.drawCircle(25, 25, 22);
как скакать начинают оба 0о

+1 к вопросу — а шо ж делать?
__________________
Поймай яблоко 2!

Старый 29.10.2009, 14:35
Xpb7 вне форума Посмотреть профиль Отправить личное сообщение для Xpb7 Найти все сообщения от Xpb7
  № 6  
Ответить с цитированием
Xpb7

Регистрация: Jul 2008
Адрес: Рига
Сообщений: 176
Цитата:
Сообщение от xanderello Посмотреть сообщение
По моему это не Смуфинг, это пиксельСнапинг - попробуй вместо 'auto' поставить 'always'
Спасибо, но я пробовал менять снаппинг, не помогло.

Цитата:
Сообщение от Zebestov Посмотреть сообщение
+1 к вопросу — а шо ж делать?
Согласен, что делать чтобы избежать такие скачки?!

И мне неясно, почему Bitmap из Library ведет себя нет так как програмно созданный!
В принципе, проблему функциональности приложения я решил другим способом,
но тема этого поведения не раскрыта!


Последний раз редактировалось Xpb7; 29.10.2009 в 14:43.
Старый 29.10.2009, 14:39
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 7  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Есть одно решение... его никак элегантным не назовешь, но работает 100%
Таки подставь drawCircle в выше предложенном "стенде для тестов", чтобы было видно, что никакой smothing не помогает, а потом допиши:
Код AS3:
bmp1.height -= .1;
ответ нагуглил, так что в меня палками не кидаться есличо )
__________________
Поймай яблоко 2!

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

Регистрация: Jul 2008
Адрес: Рига
Сообщений: 176
Действительно работает, только мне несколько неясно с чем это связано.
Почему не подоходит "правильного" размера битмап?
Спасибо, Zebestov и всем, кто пытался вникнуть.

Однако, не перестану надеяться, что объяснение таких чудес найдется.

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

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

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


 


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


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