2007
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: 開始介面

flex

STEP2: 拖曳資料

flex

STEP3: 放置資料

flex

有看到嗎?顯示的面板會隨著操作者而調整顯示的介面的前後順序,原理就來自於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個小時左右。衰死了~


相關文章:
  • Facebook 的ActionScript API 更新到 3.3版
  • 用ActionScript讀取相片中的exif資訊
  • 現場直擊Flash/Flex特效瘋-8/26活動內容預告
  • Bitmap與BitmapData
  • Flex/Flash/AIR 如何開啟bmp圖檔
  • 本文引用:
    文章內容由宋志峰[ANISTAR]撰寫,引用分享請以鏈結形式註明出處與原始作者。

    2 comments so far

    Add Your Comment
    1. 哈哈哈
      我昨天想了半小時
      試了 setChildIndex,但沒效

      原來要這樣呀
      感謝老師
      我自己想,可能……
      永遠想不出吧

      有網路,有老師,真好 ^^

      • 能幫助到你真是太好了 :)