如果我通过addChild()将一些对象添加到显示列表中,Event.RENDER会多久被触发一次?
答案 0 :(得分:2)
只有在明确使用stage.invalidate();
时才会调用它你应该注意到与Event.RENDER的监听器有关的某些错误和特殊注意事项(或者至少存在FP9中的错误,这是我最后一次主动使用stage.invalidate)。
无论有多少个不同的对象侦听Event.RENDER事件,如果其中一个调用removeEventListener(Event.RENDER ......那么所有侦听器都会被删除。据我所知, RENDER是唯一发生此错误的事件(或在FP9中使用过)
您不能在Event.RENDER处理程序中使用stage.invalidate()。因为你只是为了触发渲染处理程序而调用stage.invalidate,所以这应该不是问题。
编辑:以下评论中的bigp有效观察到Flex确实可以在幕后使用stage.invalidate。把我的答案严格地适用于vanilla AS3,而没有任何附带的框架,如Flex。