Flex4學習筆記之一

 

最近公司平臺在集成工作流時需要設計一個web版的流程定義設計器,初步定下來用Flex技術實現view層。
故而學了一下Flex,把一開始犯的錯誤記錄下來與大家共勉。


1.由於ActionScript3語言與java的極爲相似,故而在未深入瞭解as3語言時按照java語法寫了幾個as類,
結果弄出錯來。現在稍微總結一下
1) as3語言的類的構造函數只能有一個,這一點不像java可以有多個重載的構造函數。
2) as3語言在類的定義中關於私有屬性的getter 和setter和java的不同。
 java的一般情況下是這樣的:public void setXxxx(String str){...};public String getXxxx(){...};
 而as3則是像這樣定義:public function set xxxx(str:String):void {...};public function get xxxx():String{...};
2.爲了體驗下flex的絢麗,我在網上下載了一個模板。在FlexBuilder新建了個項目,導入組件。卻發現很多文件,包括mxml文件和as文件
都報錯。在網上找了下原因,大致是因爲這些組件都是基於Flex4版本之前寫的,有很多類或組件在4中不被支持,或者乾脆刪掉了。
比如我copy了一段在“ComboBox的下拉菜單List內顯示不同字體的功能”代碼,FlashBuilder提示報錯“無法將<s:SimpleText>解析爲組件執行”
到網上尋求答案,有這麼一句話:simpleText has been replaced with label in beta 2。原來在beta2版本中simleText已經被label替代了。
之後我又從網上下載了個自定義播放器組件,照着裏面的代碼敲了一遍,發現錯誤許多。


從網上整理了一下
對CustomPlayer.mxml 的修改:
1. 查找 Adobe Flex 4.1 語言參考 ,spark.primitives.VideoElement 類已經去掉。所以組件<s:VideoElement>無法被解析爲組件執行。
2. <mx:HSlider 在程序使用了 Wireframe 主題後,不能顯示控制拖動的小圓點。這個只需用回默認的Spark主題即可。
3. 將 xmlns:mx="library://ns.adobe.com/flex/halo" 改爲 xmlns:mx="library://ns.adobe.com/flex/mx"
否則 <mx:HSlider 、<mx:Label 會提示出錯。(因爲正式版的命運空間有改變,詳見:http://adamed.javaeye.com/blog/623395  Flex4正式版命名空間的變化 一文)
4. 將valueInterval   改成 snapInterval
5. 我在類中引用com.rojored.view.controls.*,再在類中使用Audio,它報Access of undefined porperty Audio
 需要從網上下載2個文件http://rojored.googlecode.com/hg ... d/controls/Audio.as
    http://rojored.googlecode.com/hg ... asses/AudioEvent.as
  或者http://mvn.rojored.com/com/rojor ... 10222.232444-20.swc
  相關api地址http://docs.rojored.com/
  

對CustomPlayerSample.mxml 的修改:
1.<s:List 中的 selectionChanged="play(event);" 提示“無法爲組件類型spark.components.List解析屬性selectionChanged”,將其改爲change。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章