flex 自定義視覺化元件的超級雞肋的屬性設定

2021-05-22 23:37:23 字數 2040 閱讀 4616

雖然前段時間以賈伯斯為首的幾位大俠對

flash

的安全、效能等進行了強烈的批評,而且伴隨著

html5

的日趨完善,可能這種批評聲會越來越大,甚或超過南非世界盃嗚嗚組啦的分貝,但是個人認為

flex

確實是乙個可以做

delphi、pb

、c#等客戶端所具有的強滑鼠、鍵盤操作性的

web應用好工具。但最近在開發

flex

自定義元件的時候,卻讓我十分惱火,真

***的想罵

flex

開發團隊是一幫蠢驢(這是氣話,

flex

總體來說還是不錯的,但確實不是很成熟)。那麼究竟什麼讓我這麼火?

flex

自定義元件的屬性配置就是個雞肋,就是基本元件的屬性配置也很差。

拿使用頻率較高的

advanceddatagrid

來說,該控制項的屬性配置應該算是做的比較好的了,提供了列配置,開發人員可以通過圖形介面增加、刪除列,編輯列的可編輯、標題、顯示欄位等屬性,但是比較

c#等客戶端的話,

flex

提供的視覺化屬性配置還是差之太遠。現在自定義乙個

grid

,繼承advanceddatagrid

。關於如何自定義元件,網上已經說的很多了,這裡不再贅述,自定義元件有

2種做法:其一是

actionscript

類,其二是

mxml

檔案。不管用哪種方法,現在已經做好了乙個自定義**

mygrid

,繼承advanceddatagrid。

新建乙個

,將mygrid

拖放到該

中,發現

mygrid

的屬性配置面板裡除了

id等幾項設定外已再無其它內容,剛才在

advanceddatagrid

屬性面板中所見的

dataprovider

、選擇模式、列配置等都已不見,也就是說自定義的

mygrid

不能進行可視列編輯了,狂暈呀。

仔細分析大概是這樣的: 1)

flex

所有可視元件的屬性配置應該有個基本模板,大概該模板是基於

uicomponent的;

2) flex

自包含可視元件的屬性配置應該有其特定實現,比如

advanceddatagrid

,應該有擴充套件自基本模板的

advanceddatagrid

屬性配置; 3)

所有自定義元件的屬性配置都只有基本模板(諸如

id、左右邊距等),因為

flex

找不到自定義元件的屬性配置模板實現(由於

flex

元件的屬性配置是

flex

預定義程式,且只對

flex

的標準元件做了定義),所以只有用

uicomponent

的配置模板了;

結論與建議:

結論很明顯,

flex

的自定義元件沒有可用的視覺化屬性配置,因此我們要設定屬性只能在

mxml

檔案或者

as檔案中進行

coding

指令碼,如果乙個

mygrid有30

列,那麼就

coding 30

對advanceddatagridcolumn吧。

建議,雖說

flex

其核心還是指令碼程式設計,但個人認為乙個好的開發工具,高效的開發工具還是很重要的,我認為

flex

不僅要完善屬性控制面板,對其資料管理、標準的元件(拿最簡單的

button

來說吧,在

4中不能直接設定

icon

了,為了顯示帶

icon

的button

我***

要寫一堆**,而在

3中卻是可以直接設定的,雖說

4是為了把顯示和資料分開,但同時要考慮開發效率呀。)等也需要加以完善。

Flex視覺化元件開發

flex視覺化元件都繼承自uicomponent類 繼承結構 uicomponent sprite displayobjectcontainer 顯示物件容器 interactiveobject 互動物件 displayobject 顯示物件 eventdispatcher 事件分發器 object...

Flex自定義元件

使用mxml標籤定義 主檔案main1.mxml 注 xmlns mycomp 自定義命名空間其實很類似於包的概念用來管理元件的。實際當中最好把自己的元件檔案分資料夾管理。元件定義mycomp1.mxml 濟南威海 煙台注 元件的檔名就對應著將來使用時的mxml標籤名,根標籤就是你用來擴充套件的父類...

flex自定義元件

加入自定義事件 首先用元資料標籤給clogin新增自定義事件 示例 clogin.mxml event btnclicked 12 15 textalign left 12 15 textalign left displayaspassword true 12 x 190 y 118 前面提到,mx...