OpenFL - 有人可以解释 __combinedVisible 属性 of flash.display.Bitmap
OpenFL - can someone explain __combinedVisible property of flash.display.Bitmap
我在 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
。
好吧,经过大量测试并试图让它发挥作用,它就是行不通。
这里有一个错误,如果在将位图绘制到 canvas 之前将 visible
设置为 false
,则在设置 __combinedVisible
之前不会绘制它至 true
。这也是第一次画位图时总是闪退,所以不能用。
我去用了 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"));
}
}
我在 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
。
好吧,经过大量测试并试图让它发挥作用,它就是行不通。
这里有一个错误,如果在将位图绘制到 canvas 之前将 visible
设置为 false
,则在设置 __combinedVisible
之前不会绘制它至 true
。这也是第一次画位图时总是闪退,所以不能用。
我去用了 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"));
}
}