Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Задание дробной позиции (anti-alliasing) (http://www.flasher.ru/forum/showthread.php?t=102592)

Ляксей 17.10.2007 14:28

Задание дробной позиции (anti-alliasing)
 
Загружаю jpg-картинку из файла runtime. Вывожу на сцену и начинаю двигать. Позицию задаю дробную, для того чтобы при медленном движении не дёргалось.
Однако, видно что в итоге картинке выставляется целые числа позиций.
_quality - выставлено в BEST.
Как заставить Флеш включить аnti-alliasing и перерисовать картинку так, чтобы у неё была дробная позиция?

Wolsh 17.10.2007 14:43

А Allow Smoothing в свойствах картинки?

Ляксей 17.10.2007 14:59

Картинка из фала грузится в процессе выполнения кода (reuntime). Как же ей указать-то ?

Kikasso 17.10.2007 15:22

BitmapData поможет. В методe draw() есть необязательный параметр smooth

Ляксей 17.10.2007 16:00

Спасибо - попробую

etc 17.10.2007 17:31

А лучше юзать smooth в attachBitmap.

Ляксей 17.10.2007 19:40

Хм.. что-то не получается через attachBitmap
пишу вот так
Код:

function DoSmooth()
        {
                var tmp_mc = createEmptyMovieClip("tmp_mc",getNextHighestDepth());       
                var bitmap = new BitmapData(clip._width, clip._height);       
                bitmap.draw(clip);
                tmp_mc.attachBitmap(bitmap,0,"auto",true);               
               
                // меняем клипы местами
                clip.removeMovieClip();
                clip = tmp_mc;
                m_clip._visible = false;               
        }

Вот прошу полюбопытствовать - исходничек, может кто подправит или посоветует чего

Ляксей 07.12.2007 13:30

Там в архиве была ошибка (fla-файл нулевой длины). Перезалил.
Так вот удалось решить проблему наконец-то.
функция DoSmooth() не вносит никаких изменеений с точки зрения anti-alliasing, если не написать двух таких волшебных строчек (или, наверное, даже одной)
Код:

clip._xscale = 100.1;
clip._yscale = 100.1;

То есть, получается, что там какое-то кеширование стоит дурацкое или что-то в этом роде.
Очень забавно :)
Было бы здорово, если бы кто-нибудь и мастеров прокомментировал такое поведение Flash-а.


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

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