【发布时间】:2026-01-16 16:35:01
【问题描述】:
我在 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 后立即这样做,它仍然需要这个。
如果我让位图绘制一帧然后将visible 设置为false。 visible = true 在发生这种情况后工作,我现在可以看到位图了。
但如果它不绘制一次,则visible = true 不会显示位图。
我不能以这种方式创建一个空位图并稍后分配BitmapData 吗?它在 up 状态下工作,因为我在第一次绘制之前从未设置 visible = false。
【问题讨论】:
-
OpenFL 没有
__combinedVisible属性,甚至私下也没有。您可以向community.openfl.org 发帖说明您使用的版本信息吗? -
它是我们坚持使用的旧版本。我在文档中没有看到任何关于它的内容,但该属性在控制台中。版本 = 1.4.0