我正在用 Flex 编写一个工具,让我可以使用分层位图设计复合精灵,然后将它们“烘焙”成低开销的单个 bitmapData。我发现了一个我无法解释的奇怪行为:切换我的图层的“可见”属性对每个图层有效两次(即,我可以将其关闭,然后再次打开),然后再对该图层无效 -从那时起,图层保持可见。
如果我这样覆盖图层上的“设置可见”:
override public function set visible(value:Boolean):void
{
if(value == false) this.alpha = 0;
else {this.alpha = 1;}
}
问题消失了,我可以随心所欲地切换“可见性”。有什么想法可能导致这种情况吗?
编辑:
这是进行调用的代码:
private function onVisibleChange():void
{
_layer.visible = layerVisible.selected;
changed();
}
changed() 方法“烘焙”位图:
public function getBaked():BitmapData
{
var w:int = _composite.width + (_atmosphereOuterBlur * 2);
var h:int = _composite.height + (_atmosphereOuterBlur * 2);
var bmpData:BitmapData = new BitmapData(w,h,true,0x00000000);
var matrix:Matrix = new Matrix();
var bounds:Rectangle = this.getBounds(this);
matrix.translate(w/2,h/2);
bmpData.draw(this,matrix,null,null,new Rectangle(0,0,w,h),true);
return bmpData;
}
顺便说一句,虽然图层仍然可见,但使用 Flex 调试器我可以验证图层的可见值是否为“假”。