考慮這個(僞代碼)事件:AS3 - 分派DOWN顯示列表(而不是向上)
var country = new Country();
addChild(country);
var state = new State();
country.addChild(state);
var city = new City();
state.addChild(city);
我可以從城市調度事件到國家像這樣(在市級):
dispatchEvent(new CustomEvent(CustomEvent.WHATEVER));
因爲事件冒泡顯示列表。但是,我怎樣才能從COUNTRY類派遣一個活動讓這個城市聽到呢?當我將事件聽衆添加到城市時,來自國家的事件派發不會註冊。
嗯,它可能會超過2級,所以我不想沿着父母親的路走下去。必須有更好的方法讓對象「下」顯示列表來監聽事件? – phil
你似乎在這裏建立某種層次結構。在這種情況下,您應該有一個定期的消息傳遞模式,而不是讓任意節點爲他們的父母設置監聽器。查看樹視圖的實現來理解我的意思。 如果你確實走了這條路線,那麼你應該讓國家節點在列表中存儲對其子節點的引用,然後在必須觸發事件時遍歷列表。子節點將類似地具有其自己的子節點的列表並將消息傳遞給每個節點。 該方法消除了循環依賴性,並且易於維護。 –