Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как отрисовать содержимое окна в bitmap? (http://www.flasher.ru/forum/showthread.php?t=149462)

Eye47 25.01.2011 20:26

Как отрисовать содержимое окна в bitmap?
 
Вчера alatar сказал, что чтобы "размыть" содержимое окна, его нужно сначала отрисовать в bitmap. Думал, справлюсь, попытался сделать так:
Код AS3:

var layout:BitmapData = new BitmapData(800,600);
layout.draw(stage);

Однако, не заработало. Думал, заработает, когда оберну весь код в листенер Event.ADDED_TO_STAGE (когда stage добавится в список отображения), однако этот способ также не помог. Подскажите как отрисовать в bitmap содержимое окна, пожалуйста=)

КорДум 25.01.2011 20:30

Потому что не отрисовали в битмапу.
Код AS3:

var bitmap:Bitmap = new Bitmap(layout);
addChild(bitmap);


Eye47 25.01.2011 20:47

эт понятно, я же не весь код показал, просто сцена не отрисовывается, ибо это не DisplayObject или bitmapData
и нужно как-то сделать так, чтобы она все-таки отрисовывалась.
если надо, полный код:
Код AS3:

var layout:BitmapData = new BitmapData(800,600);
layout.draw(stage);
layout.applyFilter(layout,new Rectangle(0,0,800,600),new Point(800,600),new BlurFilter());
var bg:Bitmap = new Bitmap(layout);
this.addChild(bg);


КорДум 25.01.2011 21:04

Экземпляр класса Stage является наследником DisplayObject, вообще-то. А вообще странно, может это фильтр все портит? Я сними не работал, но код у вас вообще верный.

derhab 25.01.2011 21:52

Eye47, у меня Ваш код все нормально отрисовал
только new Point(0,0)

Eye47 25.01.2011 21:54

все дело в том, что запрашивал Stage не из основного класса приложения. Может в этом вся проблема?

Добавлено через 2 минуты
смотрите, что пишет при выводе:
Код:

ArgumentError: Error #2005: Неправильный тип параметра 0. Должен быть тип IBitmapDrawable.
at flash.display::BitmapData/draw()


PainKiller 17.07.2012 15:06

И как эту ошибку удалось преодолеть? Я тоже на нее наткнулся, передаю в draw нормальный дисплей обжект, и он выкидывает эту ошибку

Добавлено через 5 минут
все разобрался, null передавался, а фильтры тут не причем


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

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