學習筆記

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) — 確定對偵聽器的引用是強引用,還是弱引用。強引用(默認值)可防止您的偵聽器被當作垃圾回收。弱引用則沒有此作用。

類級別成員函數不屬於垃圾回收的對象,因此可以對類級別成員函數將 useWeakReference 設置爲 true 而不會使它們受垃圾回收的影響。如果對作爲嵌套內部函數的偵聽器將 useWeakReference 設置爲 true,則該函數將作爲垃圾回收並且不再是永久函數。如果創建對該內部函數的引用(將該函數保存到另一個變量中),則該函數將不作爲垃圾回收並仍將保持永久。

 

要注意的是,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.

 

10.Flex中label換行
在as中賦值 label.text="aaaaa /r/n bbbbbbb"
在mxml中賦值 text="aaaaaa 
 bbbbbbb"
11.漢字字體加粗需要設置下fontFamily才能起效,默認字體只對數字和字母起效。例如:
.gameLabelStyle1
{
color: #dcb58c; 
fontSize: 12px; 
fontFamily: "宋體";
fontWeight: bold;
}

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組件先嚐試佈局,然後查看其對應的標籤寫法。

 

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