2012-02-10 71 views
1

當我寫的代碼:當我設置._visible場景背後會發生什麼=假

var x:MovieClip = new MovieClip(); 
.... 
... 
x._visible = false; 

然後ActionScript中隱藏的影片剪輯。當我瀏覽到MovieClip類,然後發現_visible,僅僅是一個布爾值屬性與其他proporties一起:

dynamic intrinsic class MovieClip 
{ 
     ....... 
    var _height:Number; 
    var _alpha:Number; 
    var _lockroot:Boolean; 
    var _visible:Boolean; 
     ....... 
} 

但如何閃光燈來操控它???當我只是在改變房產的價值時,這會如何改變這個可見性?我看不到任何事件正在發送或某些事情!

+0

'var _visible'它就像movieclip的參數,它不是隱藏movieclip的參數 – mgraph 2012-02-10 12:06:35

+0

不確定你在看什麼類,但我不認爲Flash的核心源代碼可用。很可能這是一個僅用於代碼完成的骨架類 - 它不會告訴你Flash在幕後做了什麼。 _visible可能是一個可以做更多事情的getter/setter,或者像@package描述的簡單屬性。 – 2012-02-10 12:20:42

+0

'_visible'是私人會員。公共場所(名爲'visible')是什麼樣的? – 2012-02-10 12:29:58

回答

1

visibleMovieClip的屬性,僅在渲染幀時纔會考慮。首先,運行時檢查是否將movieClip添加到顯示列表中,然後檢查movieClip是否爲visible。如果這兩個屬性均爲true,則會渲染movieClip。沒有與movieclip可見或不可見相關的事件。

+0

那麼當我說_visible = false時它是如何得到降級的;我只是在這裏更改屬性 – Simsons 2012-02-10 12:25:07

+0

如果在第1幀中看到movieclip,它將被渲染。如果在第2幀中不可見,則不呈現。沒有「無理」的東西。 – package 2012-02-10 12:52:19

+0

框架1本身如何在按鈕按鈕上切換可視性?現在最初可以看到MC,而當onPress發生時,它會將Frame1本身的可見性更改爲false。所以,如果它不是「渲染」,那麼什麼? – Simsons 2012-02-13 04:18:08

1

幕後沒有任何事情發生。

Flash呈現每一幀,所以如果一個對象在第一幀中可見,它就會被渲染。然後在下一幀中,將屏幕的變化區域粉刷並重新渲染。如果現在所述對象不可見,則它不被渲染。

注意:更改_visible會使對象無效,以便Flash知道某些內容在此處已更改,並且需要重新呈現它。

+2

這並非完全正確,flash會跟蹤已更改的區域(請參閱[重繪區域](http://help.adobe.com/en_US/as3/mobile/WS948100b6829bd5a6-421a65ed127736eaa26-8000.html)),並且僅重繪它需要的部分。 – 2012-02-10 14:15:06

+0

你是對的!我的錯 :) – 2012-02-11 06:42:17

相關問題