Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Замена залитой bitmapdata (http://www.flasher.ru/forum/showthread.php?t=173547)

54321go 05.01.2012 20:31

Замена залитой bitmapdata
 
Код AS3:

var sh:Sprite=new Sprite();
sh.graphics.beginBitmapFill(activeBitmapData,null,false);
sh.graphics.lineTo(0,0)
sh.graphics.lineTo(thisW,0)
sh.graphics.lineTo(thisW,thisH)
sh.graphics.lineTo(0,thisH)
sh.graphics.lineTo(0,0)
sh.graphics.endFill();
sh.addEventListener(MouseEvent.CLICK, mClBitmap)
addChild(sh)

Надо заменить activeBitmapData например на activeBitmapData2, не перерисовывая графику. beginBitmapFill по второму разу, почему-то не применяется.

expl 05.01.2012 21:12

Можно с помощью BitmapData::copyPixels нарисовать activeBitmapData2 на битмап-дате activeBitmapData, тогда заливка картинки тоже изменится.

Но для вашего примера может лучше (вместо рисования) просто Bitmap использовать?
И менять его поле bitmapData?
Все равно область квадратная ведь.

54321go 06.01.2012 00:47

Цитата:

Сообщение от expl (Сообщение 1055179)
Все равно область квадратная ведь.

должна быть не только квадрат, понял что удобней всего через clone() делать.

Nooob 06.01.2012 00:54

я проверял, тестирование показывает, что быстрее перерисовать BitmapData в graphics, чем в Bitmap менять bitmapData

iNils 06.01.2012 02:04

Зачем менять в Bitmap менять bitmapData, когда можно просто заменить содержимое activeBitmapData? Результат сразу будет отрисован.
Но не знаю, что будет быстрее, менять содержимое или перерисовывать, но такое вариант имеет место быть.

Nooob 06.01.2012 02:22

логичнее использовать drawRect вместо lineTo, будет ещё быстрее.


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

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