做简单绘图功能时遇到一个诡异的问题,使用flex4 Group作为画板,用其graphics来绘图的时候发现。
一旦调用了g.clear(),再画就没反应了,进一步发现,group不响应mouseDown事件了。
让别人试验,也是同样的结果。
回头来看group的源码发现,在updateDisplayList方法中有如下一段
原来group之所以能响应鼠标,是绘制了一个背景,而直接调用graphics.clear();之后没有重新绘制这个背景,它就不响应了。
解决方法,在想要清除自己绘制部分的时候用group.invalidateDisplayList(),这样会使group调用updateDisplayList重新绘制。
这样会不会引发其它问题暂时还没发现。
一旦调用了g.clear(),再画就没反应了,进一步发现,group不响应mouseDown事件了。
让别人试验,也是同样的结果。
回头来看group的源码发现,在updateDisplayList方法中有如下一段
graphics.clear();
drawBackground();
原来group之所以能响应鼠标,是绘制了一个背景,而直接调用graphics.clear();之后没有重新绘制这个背景,它就不响应了。
解决方法,在想要清除自己绘制部分的时候用group.invalidateDisplayList(),这样会使group调用updateDisplayList重新绘制。
这样会不会引发其它问题暂时还没发现。
在使用Flex4Group作为画板进行绘图时,发现调用g.clear()后,group不再响应mouseDown事件。问题根源在于clear()后未重新绘制背景。解决方法是使用group.invalidateDisplayList()来触发重新绘制。
3004

被折叠的 条评论
为什么被折叠?



