【发布时间】:2014-03-21 15:52:50
【问题描述】:
我有一个 BitmapData 的子类,旨在充当 Stage3D 纹理的随机像素源。为了简化问题,我想添加一个函数,在将帧渲染到后台缓冲区之前按帧更新噪声。这可以通过编写如下构造函数来完成
public function NoiseTexture(stage:Stage, size:int) {
super(size, size, true, 0);
stage.addEventListener(Event.ENTER_FRAME, updateNoise, false, 1);
}
然后将渲染函数(也是每帧)设置为优先级 0 以确保首先执行此代码。不过,在测试这一点时,我注意到当 NoiseTexture 实例设置为 null 或重新实例化时,updateNoise 函数会继续被调用(现在在重新实例化的情况下会调用两次)——这是有道理的,因为事件侦听器被添加到外部的对象中班上。我想知道当这种情况发生时是否有一种偷偷摸摸的方法来处理从类中删除事件侦听器,或者我是否必须在外部处理。
【问题讨论】:
标签: actionscript-3 events