03.20
[此文章僅供ActionSctipt3參考]
有摸過Flex的讀者應該知道,您寫的MXML的順序將會影響到元件顯示的前後順序(有就是我們常在Flash中講的深度),還記得在第一次接觸Flex時,我曾問過Adobe的Flex原廠講師一個問題,那就是我該如何才能交換前後深度,當時那講師遲疑了一會,回答我說:"Ofcourse, You can do it by the smae way….just like flash…",雖然他沒有直接回答我的問題(其實也算回答了啦),但是確實他說的沒錯,Flex可沒提供類是這種屬性或方法來操作,當然Flex是ActionScript的Framework,Flex辦不到的事,就交給ActionScript吧。
舉個例子來說,若我在Flex中設置了兩個元件(分別是DataGrid和List),若我要能將資料在兩個項目中拖曳,而這兩個元件又互相從重疊時,那就必須讓他隨著滑鼠的觸動,而將下方的元件推到最上方來,這樣使用者才能容易的操作介面,如下圖:
STEP1: 開始介面

STEP2: 拖曳資料

STEP3: 放置資料

有看到嗎?顯示的面板會隨著操作者而調整顯示的介面的前後順序,原理就來自於ActionScript3.0中的DisplayList,說到DisplyList就會想從頭開始說,不過又要說個3天3夜,所以我就只放出這段Code出來,關於DisplayList可以去參考Help或是其他說明。
private function mouseOverHandler(event:MouseEvent):void{
this.setChildIndex(event.currentTarget as UIComponent,this.numChildren-1);
}
這樣一來就能夠交換顯示順序囉,簡單吧,不過第一次的時候我倒是摸索了1個小時左右。
相關文章:
文章內容由宋志峰[ANISTAR]撰寫,引用分享請以鏈結形式註明出處與原始作者。


哈哈哈
我昨天想了半小時
試了 setChildIndex,但沒效
原來要這樣呀
感謝老師
我自己想,可能……
永遠想不出吧
有網路,有老師,真好 ^^
能幫助到你真是太好了