开发者

Flash: `sprite.visible = false` doesn't hide sprite immediately?

I've got a sprite which I want to temporarily hide… But changing 开发者_运维百科the .visible property doesn't do what I expect. The code looks roughly like this:

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

But the childLayer isn't being hidden right away (in fact, it doesn't appear to be hidden at all unless I remove the childLayer.visible = true, in which case it does eventually hide).

However, if I remove the childLayer from the parent, everything works just like I would expect:

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

Why would removing the child work when setting .visible = false “not work”?

Edit: turns out I'm just an idiot. Some other component was setting childLayer.visible = true before the onLoadComplete callback was called.


Hey David, hard to say without seeing more code. One thing I know can cause issues is using cacheAsBitmap, is that set anywhere on the display list above this object? If set, it might not be refreshing correctly. It should work immediately (next render loop).

What does onLoadComplete look like?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜