Flash:`sprite.visible = false`不会立即隐藏精灵?

时间:2011-04-04 21:34:42

标签: flash

我有一个精灵,我想暂时隐藏......但更改.visible属性不符合我的预期。代码看起来大致如下:

childLayer.visible = false;
onLoadComplete(function():void {
    childLayer.visible = true;
});

childLayer并未立即隐藏(实际上,除非我删除childLayer.visible = true,否则它似乎根本不会被隐藏,在这种情况下它最终会隐藏)。

但是,如果我从父级移除childLayer,一切都会像我期望的那样工作:

parentLayer.removeChild(childLayer);
onLoadComplete(function():void {
    parentLayer.addChild(childLayer);
});

为什么在设置.visible = false“无法正常工作时删除子工作?”

编辑:原来我只是个白痴。其他一些组件在调用childLayer.visible = true回调之前设置了onLoadComplete

1 个答案:

答案 0 :(得分:2)

嘿大卫,很难说没有看到更多代码。我知道的一件事可能导致问题是使用cacheAsBitmap,是否设置在此对象上方的显示列表的任何位置?如果设置,则可能无法正确刷新。它应该立即工作(下一个渲染循环)。

onLoadComplete是什么样的?