2007年1月29日 星期一

actionscript2 樹狀選單實作 (2)

treedemo2範例檔案下載 這是 actionscript2 樹狀選單實作 的延伸版本。著重於RollOver展開/RollOut收合的時間差效果。

這個範例會運用到flash8 的隱含函數setTimeout/clearTimeout,如果要讓使用該函數的類別通過編譯,您必須在Flash 8\en\First Run\Classes裡的 TopLevel.as多增加兩行:

intrinsic function clearTimeout(id:Number):Void;
intrinsic function setTimeout():Number;

接下來請看asdemo.ui.tree.DemoTree2類別幾個重點部分。

在addNode與addTree函數中,我們必須讓每一個被建立的節點利用while掃出每個上層的父節點,並註冊子節點所發生的RollOver/RollOut事件。才能使得每個父節點清楚跟蹤滑鼠在子節點上的動作。 注意mouseIsOver/mouseIsOut這兩個函數,當他們被呼叫是先改變isMouseOut的Boolean值,接著在利用setTimeout呼叫checkTreeIsOpen/checkTreeIsClose函數來確認isMouseOut的狀態決定打開或關閉。 ps. 這個版本可能有bug,如果有抓到bug希望可以留言告訴我修正,謝謝。:D



沒有留言: