所以,我有类似的代码(这是为了演示目的):
addEventListener(Event.ENTER_FRAME, enterFrameFunction);
function enterFrameFunction(e:Event):void{
if(sampleMovieClip1.hitTestObject(sampleMovieClip2)){
runAFunctionIDontWantToBeRunOnEveryFrame();
}
}
问题是,为了测试 sampleMovieClip2 是否与 sampleMovieClip1 发生冲突,我需要在每一帧使用 enterFrameFunction 对其进行测试,因此我放入该函数中的任何代码都会在测试返回 true 的每一帧运行,但我想要 runAFunctionIDontWantToBeRunOnEveryFrame(); 函数只运行一次。
我通过添加一个变量来确定以前条件是否为真,从而成功地做到了这一点,但我现在遇到了麻烦,想知道是否有一种不同的、不那么乏味的方法来获得结果。像一个事件监听器来测试一个返回 true 的布尔值?