Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   как назначить битмапу smoothing? (http://www.flasher.ru/forum/showthread.php?t=141800)

inMashine 05.07.2010 15:39

как назначить битмапу smoothing?
 
Добрый день.
Никак не пойму: в мануале пишут
Код AS3:

Bitmap        ()        Конструктор
public function Bitmap(bitmapData:BitmapData = null, pixelSnapping:String = "auto", smoothing:Boolean = false)

Если написать :
Код AS3:

var image:Bitmap = Bitmap(loader.content,"auto", true);

то вылезает ошибка: неправильно задан аргумент.
Если написать :
Код AS3:

var image:Bitmap = Bitmap(loader.content);

то ошибки не вылазит.
Так как же задавать smoothing?

BlooDHounD 05.07.2010 15:48

экземпляры классов создаются с помощью оператора new.

inMashine 05.07.2010 16:03

Точно.

Похоже у меня тут проблема с загрузкой картинки а не с smoothing.
Вот что получилось:
Код AS3:

var url:String = "image.gif";
 
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
 
var request:URLRequest = new URLRequest(url);
loader.load(request);
 
function completeHandler(event:Event):void {
        var image:Bitmap = Bitmap(loader.content);
        image.scaleX = 0.2;
        image.scaleY = 0.2;
        addChild(image);
}

Все равно не пойму каким образом smoothing сюда вписать?

BlooDHounD 05.07.2010 16:44

а что изменилось?

silin 05.07.2010 17:09

Код AS3:

var image:Bitmap = Bitmap(loader.content);
image.smoothing = true;

Добавлено через 2 минуты
можно и через конструктор, но 'масло масляное' получится
Код AS3:

var image:Bitmap = new Bitmap(Bitmap(loader.content).bitmapData, "auto", true);


inMashine 05.07.2010 18:14

Если написать:
Код AS3:

var image:Bitmap = Bitmap(loader.content);
image.smoothing = true;

или
Код AS3:

var image:Bitmap = new Bitmap(Bitmap(loader.content).bitmapData, "auto", true);

то разницы с smoothing = true; или smoothing = false; нету

silin 05.07.2010 19:46

сори, не знаю в чем прикол
если верить документации, то должна быть
Цитата:

smoothing:Boolean (default = false) — Whether or not the bitmap is smoothed when scaled

incoob 05.07.2010 21:18

попробуйте в bitmapData срисовать со smoothing:)
Код AS3:

var image:Bitmap = loader.content as Bitmap;
var bd:BitmapData = new BitmapData(image.bitmapData.width, image.bitmapData.height);
bd.draw(image, null, null, null, null, true);
image = new BitmapData(bd, "auto", true);


expl 05.07.2010 21:55

Цитата:

Если написать:
Код AS3:
var image:Bitmap = Bitmap(loader.content);
image.smoothing = true;
Это НЕ будет работать только в 3-х случаях:
- оно упало;
- quality НЕ выставлено в hight;
- Вы потом присвоили Bitmap(loader.content).bitmapData другую BitmapDat'у

inMashine 06.07.2010 10:51

Вложений: 2
Почему-то smoothing игнорирует меня полностью.

Вот код:
Код AS3:

var url:String = "image.jpg";
 
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
 
var request:URLRequest = new URLRequest(url);
loader.load(request);
 
function completeHandler(event:Event):void {
        var pict:Bitmap = Bitmap(loader.content);
        pict.x = 0;
        pict.y = 0;
        pict.smoothing = true;  //  или false - не влияет на отображение
        pict.scaleX = 0.2;
        pict.scaleY = 0.2;
        addChild(pict);
 
        var image:Bitmap = loader.content as Bitmap;
        var bd:BitmapData = new BitmapData(image.bitmapData.width, image.bitmapData.height);
        bd.draw(image, null, null, null, null, true);
        image = new Bitmap(bd, "auto", true); //  или false - не влияет на отображение
        image.x = 120;
        image.scaleX = 0.2;
        image.scaleY = 0.2;
        addChildAt(image,0);
 
        var pict2:Bitmap = Bitmap(loader.content);
        pict2.smoothing = true;  //  или false - не влияет на отображение
        pict2.scaleX = 0.2;
        pict2.scaleY = 0.2;
        pict2.y = 120;
        addChildAt(pict2,1);
 
        var image2:Bitmap = loader.content as Bitmap;
        var bd2:BitmapData = new BitmapData(image2.bitmapData.width, image2.bitmapData.height);
        bd2.draw(image2, null, null, null, null, true);
        image2 = new Bitmap(bd2, "auto", false); //  или true - не влияет на отображение
        image2.x = 120;
        image2.y = 120;
        image2.scaleX = 0.2;
        image2.scaleY = 0.2;
        addChildAt(image2,2); 
}

Скриншот ниже (true или false - ничего не меняет).
Так же в приложении fla файл - посмотрите плз на своей машине.
File->Publish Settings -> Flash -> JPEG Quality = 100%


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

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