Итак, у меня есть код, подобный этому (это для демонстрационных целей):Как запустить код внутри функции события для прослушивателя ENTER_FRAME, который не запускается после каждого кадра?
addEventListener(Event.ENTER_FRAME, enterFrameFunction);
function enterFrameFunction(e:Event):void{
if(sampleMovieClip1.hitTestObject(sampleMovieClip2)){
runAFunctionIDontWantToBeRunOnEveryFrame();
}
}
Проблема заключается в том, что для того, чтобы проверить погоду sampleMovieClip2 будет сталкиваясь с sampleMovieClip1, мне нужно, чтобы проверить его каждый кадр с enterFrameFunction, поэтому любой код, который я помещал внутри этой функции, запускает каждый кадр, тест возвращает true, но мне нужен runAFunctionIDontWantToBeRunOnEveryFrame(); чтобы запустить его только один раз.
Мне удалось это сделать, добавив переменную, чтобы определить, было ли условие истинным раньше, но у меня возникают осложнения с этим сейчас, и мне хотелось бы знать, есть ли другой, менее утомительный способ получения результата , Что-то вроде прослушивателя событий для проверки логического возвращения true?
Это хорошее решение, но на самом деле это не помогает мне в моем контексте (по-прежнему полезно мне вообще). Мне нужно проверить каждый кадр, если 2 мувиклипа касаются, а затем запустить функцию. Будет несколько случаев, когда они не касаются и касаются (в зависимости от игрока игры), поэтому мне нужно держать слушателя событий в такте. – user3168412