我可以每帧设置影片剪辑的“可见”属性,还是应该检查“可见”属性的当前状态以决定是否需要更新?
将“visible”属性设置为便宜与否相同?请提供来源。
答案 0 :(得分:3)
没关系。
visible
属性只是一个设置的标志,然后在DisplayList下次渲染时读取。除了将用于绘制对象的内部属性设置为您提供的值之外,更新其值实际上不会执行任何操作。您可以每帧多次修改visible
的值,它会执行相同的操作。
基本上,当Flash在您添加到DisplayList的所有DisplayObject上运行时,它会检查每个拥有的标志和值的集合,例如x
,y
,{{1} }和alpha
。它使用这些值来确定如何绘制对象。当你使一个对象不可见时,所有真正发生的事情是Flash会跳过该对象而不是试图绘制它。
为了整洁,我会坚持不使用visible
。
答案 1 :(得分:0)
我确信有底层代码可以防止它被设置为相同的值,就像Amy提到的那样,但是如果你想绝对确定,你可以这样做:
if ( !mc.visible ) {
mc.visible = true;
}
如果将其设置为false,则执行相反的操作。
if ( mc.visible ) {
mc.visible = false;
}
只有在尚未设置为该值的情况下才会更改该值。你显然希望确保它们永远不会彼此相邻,因为你的组件总是最终以visible = false结束。