在flex3中實現拖放有兩種三種方法:
一、使用dragenabled
二、使用startdrag與stopdrag
三、使用dragmanager。
第一種,這是區域性的,對於部分flex元件如tree等,可以直接設定其dragenabled屬性為true。
第二種,也很簡單,且比較通用。主要**如下:
private function initializehandler(event : flexevent) : void
private function startdraghandler(event : mouseevent) : void
private function stopdraghandler(event : mouseevent) : void
第三種,使用dragmanager。這是實現拖動操作最方便的方法。使用過wordpress的人朋友,都了解它的widgets編輯功能,著實不錯,在flex裡也可以模仿它實現。widgetbase只是作為乙個示例,並未實現任何邏輯。
效果頁面:
示例說明:
1、上面有三個dragenabled label,這三個label是用本文第二種方法實現的乙個dragablelabel自定義元件。三個label因為其布局格式不同,拖動效果也不同。
2、label下面,便是widget管理。這是乙個培訓示例。使用者可以直接從左邊框裡拖動widget到右邊框裡,左邊為未啟用的widget,右邊為已選用的,並且右邊的widget通過拖動可以上下排序。
原始碼解讀:
1、首先程式自定義了乙個iwidget介面,不明白介面是什麼的趁早回家賣紅薯。因為dragmanager的拖動物件是 iuicomponent,所以繼承於它。
function get isfolded() : boolean;
function get isactivated() : boolean;
function set isactivated(value : boolean) : void;
function fold() : void;
function unfold() : void;
2、widgetbase實現iwidget,做為widget的基類。在實際專案中,widget是各不相同的,繼承於widgetbase,在子類中實現各自的特性。widgetbase的實現也很簡單。
3、widgetmanageexample該檔案不再羅唆,請自行檢視原始碼。
本示例只為培訓演示所用,旨在幫助學員理解dragmanager的使用。在學習本示例之前,請先了解關於state的知識。示例**,不適合直接商用。如果用於專案,須再一些修改。
Flex3學習筆記3
flex3學習筆記3 flex指令碼基礎 1 方法 2 變數 變數是在程式中儲存資訊的一種方法。如 var username username tom var username tom public var username tom 3 資料型別 基本的資料型別有 string 字串 number ...
Flex3學習筆記3
flex3學習筆記3 flex指令碼基礎 1 方法 2 變數 變數是在程式中儲存資訊的一種方法。如 varusername username tom varusername tom public varusername tom 3 資料型別 基本的資料型別有 string 字串 number 數值,...
Flex 3權威指南
flex的發展史 2002年3月,macromedia創造了ria這個術語。當時,這個想法感覺像是個幻想。不過,這些都已經改變了,ria現在已經成為了現實。macromedia在2004年推出了flex,在早已普及的flash平台上開發應用程式因此成為可能。這些應用程式在設計 可用性和可移植性幾個方...