做簡單繪圖功能時遇到一個詭異的問題,使用flex4 Group作爲畫板,用其graphics來繪圖的時候發現。
一旦調用了g.clear(),再畫就沒反應了,進一步發現,group不響應mouseDown事件了。
讓別人試驗,也是同樣的結果。
回頭來看group的源碼發現,在updateDisplayList方法中有如下一段
- graphics.clear();
- drawBackground();
原來group之所以能響應鼠標,是繪製了一個背景,而直接調用graphics.clear();之後沒有重新繪製這個背景,它就不響應了。
解決方法,在想要清除自己繪製部分的時候用group.invalidateDisplayList(),這樣會使group調用updateDisplayList重新繪製。