AsWing原始碼簡析 1

2021-08-31 06:03:34 字數 1694 閱讀 5726

aswing 原始碼簡析

繼承及子類關係:

awsprite

subclass component

簡析:

private var foregroundchild:displayobject;

private var backgroundchild:displayobject;

基類awsprite擁有 前景子元素 & 後景子元素

foregroundchild 在所有的元素之上.

層次結構:

foregroundchild 

content

backgroundchild

1. tostring() 函式

給出了當前顯示元素的層級關係, 從stage到當前元素的層級鏈.

如圖所示:

關於 root1 & ground_mc 是什麼 稍後再了解

2.  當設定usingbitmap的值為 true 時, 會將改父元素所有層中的顯示元素都放置到content中;

當設定usingbitmap的值為 false時, 會將content中的所有顯示都拿出來按順序放置到父元素中.

3. awsprite 重寫了 sprite 的 addchild() , addchildat(), removechild(), removechildat(), getchildat(), getchildbyname(), getchildindex(), setchildindex(), swapchildren(), swapchildrenat(),

numchildren()

主要用於判斷當前是否選擇了 usingbitmap 模式, 應該去c操作**的子元素.

其中以addchild重寫得較多. 主要判斷是否 存在前景元素、是否選擇了usingbitmap模式的不同狀態下增加子元素的

情況。4. 增加獲取層數的方法:

public function gethighestindexunderforeground():int

public function getlowestindexabovebackground():int

增加了將某個元素置頂和置底的方法:

public function bringtotop(child:displayobject):void

public function bringtobottom(child:displayobject):void

和 設定 前景元素  背景元素的方法.

5. 新增了兩個事件

releaseevent.release

releaseevent.release_out_side

當滑鼠在當前元素及子元素上觸發 mousedown事件的時候, 此類會記錄當前的事件的發起者, 同時給stage註冊乙個mouseup的***。

當滑鼠在這之後觸發mouseup事, 程式會判斷mouseup的發起者是否是,mousedown事件的發起者或者其父元素。

如果都不是,則說明release這個事件是在離開mousedown發起者有效範圍的事件。

在mouseup後,會發起releaseevent.release,

如果是離開mousedown發起者有效範圍的則同時還會發起乙個releaseevent.release_out_side事件。

Sample BSP原始碼簡析

ifndef bsp h define bsp h include sdksample.h include filesystemlayer.h filesystemlayer.h 用來處理檔案系統的目錄 路徑等資訊 後面的mfslayer getconfigfilepath就是用了該檔案中定義的類。...

libc hashtable 原始碼簡析

本文分析的是 中截止至 2016 年 1 月 30 日最新的libc libc 中,hashtable的實現為鏈式結構。在教科書 introduction to algorithm 3rd edition 中,介紹的實現是由乙個陣列作為buckets,每個陣列中儲存乙個鍊錶。但是libc 中,使用乙...

HashMap原始碼簡析

hashmap 基於map介面實現的,允許使用null值和null鍵,但資料無序的.劃重點 執行緒不安全.若是想獲取乙個執行緒安全的hashmap,可用下面方法 map map collections.synchronizedmap new hashmap hashmap的主幹是entry陣列,每乙...