2007年1月29日 星期一

actionscript2 樹狀選單實作

treedemo範例檔案下載 首先先了解一下asdemo.events這個package裡面的as。 - IEventDispatcher.as 所有附有事件廣播機制的類別都必須實作這個介面。 - EventSource.as 實作了IEventDispatcher介面的類別。 asdemo.ui.DispatcherMC繼承了MovieClip並實作IEventDispatcher類別,讓所有繼承該類別都附有事件廣播機制功能。

接下來進行到重點階段,我們先了解asdemo.ui.tree package內兩個介面的繼承關係。一個為INode,一個為ITree。ITree繼承了INode。這代表Itree也含有節點的特性。 - asdemo.ui.tree.INode - asdemo.ui.tree.ITree - INode的繼承關係 TextNode實作了Inode介面,並且會在onRelease發出ButtonEvent.RELEASE事件。 - ITree的繼承關係 首先AbstractTree實作了ITree介面,大部分基本方法已經在這個類別完成。 -setNodePosition方法:在節點被加入時要調整節點位置,當節點被刪除時要重新調整所有節點的位置。 -adjustPosition方法:在節點被刪除時呼叫重新調整所有節點的位置。 -childTreeCloseHandler方法:在同一節點被click時呼叫將其他節點樹關閉。 DemoTree繼承了AbstractTree,並實現兩各尚未實作的抽象方法addNode與addTree。每個被加入的節點會被加入陣列裡,而在addNode裡父節點對子節點註冊ButtonEvent.RELEASE事件,addTree方法裡父節點對子節點樹註冊TreeEvent.TREE_OPEN事件。目的在於當某個節點被click後,通知父節點樹必須將其他同一階層的節點樹關閉。 - asdemo.ui.tree.AbstractTree - asdemo.ui.tree.DemoTree 想實作關於類似樹狀選單可以研究 composite pattern模式

沒有留言: