(8)為組件編寫三個屬性設置項,分別為標題字文字、文本文字以及設置文本字是否可以輸入。
AS3代碼
public function set titleText(value:String):void { titleTxt.text=value; seting(); } /* *文本被改變時刷新位置 */ public function set textText(value:String):void { if (value=="") { value=" "; } textTxt.text=value; seting(); } public function set textInput(value:Boolean):void { if (value) { textTxt.type=TextFieldType.INPUT; } else { textTxt.type=TextFieldType.DYNAMIC; } } |
技術看板:get和set 存取器方法
get和set存取器函數還分別稱為getter和setter,可以使用這些函數為創建的類提供易于使用的編程接口,并遵循信息隱藏和封裝的編程原則。使用get和set函數可保持類的私有類屬性,但允許類用戶訪問這些屬性,就像他們在訪問類變量而不是調用類方法。
(9)這時,如果發布影片會報錯找不到基類“UIComponent”必須為“flash.display.MovieClip”,如圖11-5所示。
圖11- 5報錯
(10)我們將類文件轉為編譯剪輯再置入組件之中,在fla源文件同一目錄里新建一個flash文檔用來封裝代碼,就命名為“組件代碼封裝.fla”。
(11)修改文檔的類路徑,按Ctrl+Shift+F12打開“發布設置”面板,選擇Flash選項卡,再點擊“設置”按鈕彈出“高級ActionScript3.0設置”對話框,如圖11-6所示。
圖11-6 設置
(12)點擊“源路徑”選項卡中的“”按鈕,添加類路徑“$(AppConfig)/Component Source/ActionScript 3.0/User Interface”,如圖11-7所示。
圖11-7 添加類路徑
(13)設置好搜索路徑以后,按Ctrl+F8創建一個空的影片剪輯名為“TextBar”類路徑鏈接為“net.Code.TextBar”,如圖11-8所示。
圖11-8 創建空影片剪輯
(14)再創建一個影片剪輯用來封裝程序,命名為“TextBarPackage”類鏈接也用這個名字,在庫里點擊右鍵選擇“轉換為編譯剪輯”,這時生成了一個編譯剪輯文件“TextBarPackage SWF”如圖11-9所示。
提示:在上一步我們用了一個空的影片剪輯通過鏈接路徑導入程序,如果有多個組件類需要同時打包可以重復上一步驟再創建相應的影片剪輯做類鏈接,轉換為編譯剪輯時會自動把庫里所有影片剪輯的鏈接類一起封裝。
創建用于編譯的影片剪輯“TextBarPackage”時我們用的類鏈接也是“TextBarPackage”,這個影片剪輯也可以不使用類鏈接,編譯后會自動生成類名。Flash官方自帶的UI組件用的編譯名是“ComponentShim”,類鏈接是“fl.core.ComponentShim”,我們在取名與使用類鏈接地址時盡量不要與官方組件同名,避免被覆蓋或沖突。
圖11- 9 生成編譯剪輯
(15)好了,現在回到“textBar.fla”中,在我們創建的“文本條”組件里新建一個圖層名為“AS”的圖層,在第二幀上按F7插入一個空幀將上一步里創建的編譯剪輯“TextBarPackage SWF”復制到這幀里,并在圖層“元件”的第二幀中放置該組件用到的兩個元件“bar_titleBg”和“bar_textBg”,以后更換組件皮膚可以直接在這里修改了,如圖11-10所示。
圖11- 10置入編譯程序
(16)圖層“元件”的第一幀里,繪制一個矩形作為組件的占位圖形,也就是決定組件大小的圖形,如圖11-11所示。
圖11-11 繪制占位圖形
(17)為組件添加參數設置,在庫里“文本條”上點擊右鍵選擇“組件定義”如圖11-12所示。
圖11- 12 菜單
(18)彈出“組件定義”面板,點擊“ ”添加三個參數,這三個參數是本例第8步驟中使用“set”設置的分別為“標題字”“文本”和“可輸入”,如圖11-13所示。
技術看板:參數設置
“名稱”:可以隨便填能表示參數意思就行了。
“變量”:一定要和組件類里“set”方法定義的名稱一樣。
“值”:用于設置參數的初始值。
“類型”:必須和組件類里“set”方法定義類型一樣。
圖11- 13 組件定義