OpenFL - 有人可以解释一下flash.display.Bitmap的属性__combinedVisible



我在OpenFL中使用位图作为按钮。当我设置myBitmap.visible = true时,我看到的是位图不可见。

看来我也需要打电话给myBitmap.__CombinedVisible = true才能画出来。我找不到此属性有关如何正确使用它的任何文档。

我还注意到,当我第一次在 2 个位图之间切换时,可见的位图不会立即出现,但不可见的位图会立即消失。此后的任何时间它都会正常运行,并且切换会立即发生。

这可能与__CombinedVisible有关吗?

您可以在我的按钮内看到下面的位图切换代码。

private function update() : Void {
if( state == ButtonState.OVER ){
this.over.visible = this.over.__combinedVisible = true;
this.up.visible = this.down.visible = false;
}else if( state == ButtonState.UP ){
this.up.visible = this.up.__combinedVisible = true;
this.down.visible = this.over.visible = false;
} else if( state == ButtonState.DOWN ){
this.down.visible = this.down.__combinedVisible = true;
this.up.visible = this.over.visible = false;
}else if( state == ButtonState.CLICK ) {
this.up.visible = this.up.__combinedVisible = true;
this.over.visible = this.down.visible = false;
this.enabled = false;
dispatchEvent(new Event("CLICK")); 
}
}

因此,经过一堆测试,我将其缩小到:如果我在分配BitmapData之前将visible设置为 false,则似乎需要使用这个__combinedVisible成员。如果我在设置BitmapData后立即执行此操作,它仍然需要这个。

如果我让位图绘制 1 帧,则将visible设置为false. 发生这种情况后visible = true工作,我现在可以看到位图。

但是,如果它没有绘制一次,则visible = true不会显示位图。

我不能以这种方式创建一个空位图并在以后分配BitmapData吗?它在向上状态下工作,因为我在第一次绘制之前从未设置过visible = false

好的,所以经过大量的测试并试图让它工作,它不会。

这里有一个错误,如果在将位图绘制到画布之前将visible设置为false,则在将位图设置为true之前__combinedVisible不会绘制它。首次绘制位图时,这总是会导致闪光,因此使用起来不可行。

我去用alpha而不是visible.这正常工作且符合预期。

如果有人能解决这个问题visible我会接受这个答案。

private function update() : Void {
if( state == ButtonState.OVER ){
this.over.alpha = 1;
this.up.alpha = this.down.alpha  = 0;
}else if( state == ButtonState.UP ){
this.up.alpha = 1;
this.down.alpha = this.over.alpha = 0;
} else if( state == ButtonState.DOWN ){
this.down.alpha = 1;
this.up.alpha = this.over.alpha = 0;
}else if( state == ButtonState.CLICK ) {
this.up.alpha = 1;
this.over.alpha = this.down.alpha = 0;
this.enabled = false;
dispatchEvent(new Event("CLICK"));
}
}

相关内容

最新更新