PDA

Просмотр полной версии : Замена залитой bitmapdata


54321go
05.01.2012, 20:31
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
Все равно область квадратная ведь.

должна быть не только квадрат, понял что удобней всего через 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, будет ещё быстрее.