Я делаю мозаику в мгновение ока.Но у меня странная ошибка.Есть 25 штук, 5х5.Я передаю в фоновом режиме bitmapData к частям по мере их создания.
Для каждого фрагмента я создаю одну растровую маску в форме головоломки.
Таким образом, каждая часть содержит растровое изображение, битовые данные которого являются текстурой головоломки.И каждый кусок имеет кусок маски.
Когда я просто показываю маски, все 25 пьес вытягиваются на сцену.
Но когда я использую маски частей, чтобы замаскировать текстуру, у меня появляется жесткое ограничение на 22 части, к которым применяется маска.Это происходит, если я использую 25 кусочков или даже 80 или 100. Каждый раз, только последние 22 созданные кусочки будут отображать текстуру.
Есть идеи?
По запросу, показывая некоторый код.
public class PuzzlePiece extends Sprite
{
private var maskBitmap:Bitmap;
private var _texture:BitmapData
private var bg:Bitmap;
private static var COUNT:uint
public function PuzzlePiece()
{
PuzzlePiece.COUNT ++;
trace("new Piece Made", PuzzlePiece.COUNT);
filters = [new GlowFilter(0x000000, 1, 16, 16, 1, 3, true), new BevelFilter(4, 45, 0xFFFFFF, 0.75, 0, 0.75, 4, 4, 1, 3, "inner", false)];
bg = new Bitmap();
addChild(bg);
this.mouseChildren = false;
this.buttonMode = true;
addEventListener(MouseEvent.ROLL_OVER, onRollOver);
addEventListener(MouseEvent.ROLL_OUT, onRollOut);
}
private function onRollOver(e:MouseEvent):void
{
TweenMax.to(this, 0.5, { colorTransform: { tint:0xff0000, tintAmount:0.5 }} );
}
private function onRollOut(e:MouseEvent):void
{
TweenMax.to(this, 0.5, { removeTint:true } );
}
/**
* called before set texture
*/
public function setmask(b:Bitmap):void {
addChild(b);
maskBitmap = b;
this.cacheAsBitmap = true;
b.cacheAsBitmap = true;
this.mask = b;
trace("piece -> Set Mask", PuzzlePiece.COUNT);
}
public function get texture():BitmapData
{
return _texture;
}
public function set texture(value:BitmapData):void
{
_texture = value;
bg.bitmapData = _texture;
trace("piece -> Set Texture", PuzzlePiece.COUNT);
}
}
}
Родительский класс создает один из них и передает растровое изображение, которое будет использоваться в качестве маски,и устанавливает растровые данные, которые будут использоваться в качестве текстуры.