1.as3中的HTTPService, url並不是要寫成相對路徑。
例如文件路徑如下:
src/myExample.mxml
src/data/list.xml
src爲源代碼文件夾,myExample.mxml中的HTTPService要調用list.xml。
url只要寫成 url="data/list.xml",不要寫成url="../data/list.xml"
2.如何理解flex中的相對定位和絕對定位?
可以從“是否只根據父級對象就可以確定其大小和位置”這個原則來判斷。
例如“x=0,y=0”和“width=100%,height=100%”,“top=10,left=10”都是絕對定位,因爲其都只根據父級對象就可以確定其大小和位置。
而放在一個vgroup容器中的控件,就是相對定位。因爲其位置還要根據vgroup中的其他控件來判斷。
3.關於事件的一點小體會
Event |
() | 構造函數 |
public function Event(type:String, bubbles:Boolean = false, cancelable:Boolean = false)
語言版本: | ActionScript 3.0 |
運行時版本: | AIR 1.0 Flash Player 9, Flash Lite 4 |
創建一個作爲參數傳遞給事件偵聽器的 Event 對象。
參數type:String — 事件的類型,可以作爲 Event.type 訪問。 |
|
bubbles:Boolean (default = false ) — 確定 Event 對象是否參與事件流的冒泡階段。默認值爲 false 。 |
|
cancelable:Boolean (default = false ) — 確定是否可以取消 Event 對象。默認值爲 false 。 |
addEventListener |
() | 方法 |
public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
參數
type:String — 事件的類型。 |
|
listener:Function — 處理事件的偵聽器函數。此函數必須接受 Event 對象作爲其唯一的參數,並且不能返回任何結果,如下面的示例所示:
function(evt:Event):void 函數可以有任何名稱。 |
|
useCapture:Boolean (default = false ) — 確定偵聽器是運行於捕獲階段還是運行於目標和冒泡階段。如果將 useCapture 設置爲 true ,則偵聽器只在捕獲階段處理事件,而不在目標或冒泡階段處理事件。如果 useCapture 爲false ,則偵聽器只在目標或冒泡階段處理事件。要在所有三個階段都偵聽事件,請調用 addEventListener 兩次:一次將 useCapture 設置爲 true ,一次將 useCapture 設置爲 false 。 |
|
priority:int (default = 0 ) — 事件偵聽器的優先級。優先級由一個帶符號的 32 位整數指定。數字越大,優先級越高。優先級爲 n 的所有偵聽器會在優先級爲 n -1 的偵聽器之前得到處理。如果兩個或更多個偵聽器共享相同的優先級,則按照它們的添加順序進行處理。默認優先級爲 0。 |
|
useWeakReference:Boolean (default = false ) — 確定對偵聽器的引用是強引用,還是弱引用。強引用(默認值)可防止您的偵聽器被當作垃圾回收。弱引用則沒有此作用。
類級別成員函數不屬於垃圾回收的對象,因此可以對類級別成員函數將
要注意的是,2個函數中都有參數來表示事件是否參與冒泡階段,並且2個函數的參數默認值正好相反,所以如果2個函數都使用默認值的話,事件就會捕捉不到。 |
4.toolstips tips的佈局可參考vbox
5.對pureMVC的研究體會
proxy相當於整張數據庫表;
vo相當於數據庫表中的一行;
enum中則表明中某列所能取得的值的範圍。
6.flex中鍵值對的查找方式應該是類似於hashmap的方式,因爲在製作語言包的過程中發現其效率還可以。語言包應該直接利用鍵值對來實現。利用URLVariables將載入的數據直接轉換成鍵值對,然後直接根據鍵來取值,速度還不錯。
7.tooltips利用flex新的文本引擎來做,textflow什麼的,tour de flex 上有示例。
8.利用mouseEnabled 和 mouseChildren的配合使用來抓到mouseEvent的target
9.listBase和itemRender 似乎利用了對象池的概念,也就是當dataProvider發生改變時,每個itemRender並不是完全重新創建,而是重複利用,所以在重寫set data方法時,要全部重新設置屬性,而不是想當然的只改一部分,因爲沒改的那部分有可能是用的以前的itemRender.
12.使用textFlow時,想實現類似魔獸世界tip的效果,一行中的2個信息分別左右對齊,有2種做法,但這2種做法都不夠好。
一種是:<p textAlign='justify' textAlignLast='justify'><span>左</span> <span>右</span></p>,注意2個span標籤之間要有空格。
另一種是:<p textAlign='justify'><span>左</span> <span>右</span></br></p>,2個span標籤之間要有空格,並且末尾的</br>不能省略。
2種方法都不能將容器的換行方式設置爲嚴格換行。
在textflow佈局比較複雜時,可以用tour de flex 中的textLayoutFramework組件先嚐試佈局,然後查看其對應的標籤寫法。