2013-05-08 78 views
1

我可以在每幀中設置影片剪輯的「可見」屬性,還是應該檢查「可見」屬性的當前狀態以決定是否需要更新?AS3設置影片剪輯的可見屬性

是否將「可見」屬性設置爲相同的價格便宜?請提供來源。

+3

我相信如果它與已經設置的相同,底層代碼將會忽略這個改變,所以請將自己擊倒。 – 2013-05-08 14:29:39

+0

某些源代碼會很好 - 我擔心在設置可見屬性時可能會設置一些「髒標誌」 – Schifty 2013-05-10 11:48:45

+0

我不擔心純Flash中的問題。我不相信這是Flash工程師使用的心理模型(Flex,絕對,擔心)。 – 2013-05-10 16:12:35

回答

3

沒關係。

visible屬性是一個簡單的設置標誌,然後在下次DisplayList呈現時讀取。除了將用於繪製對象的內部屬性設置爲您提供的值之外,更新其值實際上不會執行任何操作。您可以修改每幀多次的值visible,它將執行相同的操作。

基本上,當Flash運行在所有已添加到顯示列表中的DisplayObject,它會檢查標誌和值,其各自都有,像xyalphavisible的集合。它使用這些值來確定如何繪製對象。當你使一個對象不可見時,所有真正發生的事情就是Flash會跳過該對象並且不會嘗試繪製它。

整潔,我會堅持沒有if

0

我相信有底層代碼以防止它被設置爲相同的值,如艾米提到的,但如果你想是絕對肯定的是,你可以這樣做,而不是:

if (!mc.visible) { 
    mc.visible = true; 
} 

,做如果您將其設置爲false,則相反。

if (mc.visible) { 
    mc.visible = false; 
} 

這隻會改變值,如果它尚未設置爲該值。你顯然想要確保它們永遠不會彼此相鄰,因爲你的組件總是以visible = false結尾。

+0

我目前使用「if(mc.visible!= myValue)mc.visible = myValue;」 – Schifty 2013-05-10 11:46:32

+0

這使得您的代碼不必要的複雜和冗長。 – 2013-05-10 16:13:22

+0

@AmyBlankenship它的確如此,但它會阻止設置的設置(我沒有意識到在Marty Wallace發佈他的答案之前實際設置的可見設置),這就是Schifty詢問的內容。 – 2013-05-10 16:49:57