Flex Viewer 解析(四)自定義Widget
終於可以實現第一個Widget了,按照慣例,我們通過一個Hello World Widget來說明如何在Flex Viewer中開發、編譯、配置、部署和使用自定義Widget。Flex Viewer的原始碼中已經包含了一個HelloWorld Widget,我們還是親手嘗試一下吧。
1) 安裝Flash Builder,下載Flex Viewer原始碼,我們使用最新的2.3;
2) 開啟Flash Builder,匯入Flex Viewer 2.3的原始碼;
3) 滑鼠放在widgets包上,單擊右鍵,在彈出的選單中選擇New,然後單擊MXML Component;
4) 在New MXML Component對話方塊中,輸入包名“widgets.HelloWorld”,填寫Widget名稱“HelloWorldWidget”,並選擇基類BaseWidget,單擊Finish;
5) 此時,HelloWorldWidget已經建立完畢,按照Flex Viewer提倡的做法,在其包下新建一個同名xml配置檔案,即“HelloWorldWidget.xml”;
6) 此時,HelloWorldWidget不會被編譯,因為還未把它加入到Module列表。開啟工程的屬性視窗,點選Flex Modules,點選Add鍵,將HelloWorldWidget加入到Module列表中。點選OK,會發現HelloWorldWidget的圖示已經和其他的Widget一樣;
7) 啟動編譯,編譯後會發現在bin-debug目錄下,HelloWorldWidget已經被編譯成swf檔案;
8) 下面開始實現HelloWorldWidget的業務邏輯,在Widget皮膚中顯示出配置檔案中的“Hello,Flex Viewer!”字串。配置檔案內容:
<?xml version="1.0" ?>
<configuration>
<hellocontent>Hello, Flex Viewer!</hellocontent>
</configuration>
HelloWorldWidget程式碼:
<?xml version="1.0" encoding="utf-8"?>
<viewer:BaseWidget xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:viewer="com.esri.viewer.*"
layout="absolute"
width="400"
height="300"
widgetConfigLoaded="init()">
<fx:Script>
<![CDATA[
[Bindable]
private var helloContent:String;
private function init():void{
if (configXML){
helloContent=String(configXML.hellocontent);
}
}
]]>
</fx:Script>
<viewer:WidgetTemplate>
<s:HGroup width="100%"
height="100%"
horizontalAlign="center"
verticalAlign="middle">
<s:Label text="{helloContent}"/>
</s:HGroup>
</viewer:WidgetTemplate>
</viewer:BaseWidget>
9) 在config.xml對HelloWorldWidget進行配置,如下:
<widgetcontainer>
<widget label="HelloWorld" icon="assets/images/i_solar.png"
config="widgets/HelloWorld/HelloWorldWidget.xml"
url="widgets/HelloWorld/HelloWorldWidget.swf"/>
</widgetcontainer>
10)編譯,執行!Hello,Flex Viewer!
相關文章
- Flutter Widget自定義總結Flutter
- Flutter自定義繪製Widget初探Flutter
- Flutter 自定義 Widget(理論+實踐)Flutter
- Flutter自定義Widget和使用方法Flutter
- Flutter 自定義 Widget 之餅形圖實戰Flutter
- [2]自定義Lua解析方式
- 自定義View事件之進階篇(四)-自定義Behavior實戰View事件
- spring 自定義屬性解析器Spring
- SpringBoot自定義控制層引數解析Spring Boot
- mybatis自定義List集合解析器MyBatis
- 深入解析Vue.directive 自定義指令Vue
- Widget 中的 State 解析
- spring原始碼深度解析— IOC 之 自定義標籤解析Spring原始碼
- Flink的sink實戰之四:自定義
- WinEdt && LaTex(四)—— 自定義新命令(newcommand、def)
- Android自定義View(四)側滑佈局AndroidView
- win10如何自定義解析度 設定win10自定義解析度的具體方法Win10
- 【朝花夕拾】Android自定義View篇之(四)自定義View的三種實現方式及自定義屬性詳解AndroidView
- Flutter Widget之TextField使用解析Flutter
- Flutter 115: 圖解自定義 View 之 Canvas (四Flutter圖解ViewCanvas
- Springboot快速上手- 第四篇 自定義配置Spring Boot
- Android 自定義View:處理事件分發(四)AndroidView事件
- T-SQL——自定義函式解析JSON字串SQL函式JSON字串
- Spring自定義引數解析器設計Spring
- 解析python使用者自定義異常例項Python
- 【譯】Apache Hadoop 系列之四(Edits Viewer指ApacheHadoopView
- SpringBoot + 通義千問 + 自定義React元件,支援EventStream資料解析!Spring BootReact元件
- 【Flutter 專題】83 圖解自定義 ACEWave 波浪 Widget (一)|8月更文挑戰Flutter圖解
- 【Flutter 專題】84 圖解自定義 ACEWave 波浪 Widget (二)|8月更文挑戰Flutter圖解
- 使用AVPlayer自定義支援全屏的播放器(四)播放器
- 使用欄位格式化來自定義SharePoint(四)
- React-原始碼解析-生命週期(自定義元件)React原始碼元件
- flutter上拉載入更多下拉重新整理通用widget,child可以是任何widget,支援自定義多種狀態顯示Flutter
- flutter好用的輪子推薦十四-flutter將widget裁剪成各種自定義形狀Flutter
- Gradle理論與實踐四:自定義Gradle外掛Gradle
- Vue從甜小白到皮大佬系列(四) 自定義指令Vue
- Spring Boot四大神器之建立自定義StarterSpring Boot
- 【Flutter】開發之實戰Widget(四)Flutter
- viewerView