命中测试点有条件

时间:2014-05-27 18:55:51

标签: actionscript-3 flash

我正在尝试使用hitTestPoint语法在所有选定对象都在正确的位置时启动计时器。当它们被拖过并在靠近它时释放时,它们都会捕捉到正确的位置。不幸的是我的计时器无法启动。我无法弄清楚为什么它不会开始。我的flash教授也无法弄清楚。我很快就会回答这个问题,希望我已经把你们所需要的一切都给了你们。

addEventListener(Event.ENTER_FRAME,completion);
function completion(event:Event):void
{

    if (EYEOVERLEFT_MC.hitTestPoint(EYELEFT_MC.x,EYELEFT_MC.y) && 
        EYEOVERRIGHT_MC.hitTestPoint(EYERIGHT_MC.x,EYERIGHT_MC.y) && 
        NOSEOVER_MC.hitTestPoint(NOSEUNDER_MC.x,NOSEUNDER_MC.y) &&
        LOCKOVER_MC.hitTestPoint(LOCKUNDER_MC.x,LOCKUNDER_MC.y) &&
        ROSEOVER_MC.hitTestPoint(ROSEUNDER_MC.x,ROSEUNDER_MC.y) &&
        CHAINOVER_MC.hitTestPoint(CHAINUNDER_MC.x,CHAINUNDER_MC.y) &&
        LEAFOVER_MC.hitTestPoint(LEAFUNDER_MC.x,LEAFUNDER_MC.y)){

        var timer:Timer = new Timer(1000,2);
            timer.addEventListener(TimerEvent.TIMER_COMPLETE, timerComplete);
            timer.start();
            trace("Timer Start");
        }

        function timerComplete(e:TimerEvent):void
        {
            trace("Timer Finished");
        }

        removeEventListener(Event.ENTER_FRAME,completion);
        nextFrame();
    }
}

1 个答案:

答案 0 :(得分:0)

答案很简单 - 你只是没有在if陈述中做出正确的检查 - 并非所有这些都是真的。

因此,您需要检查每个(使用多个if语句)并查看问题所在。有些条件不合适,这可能是你的其他逻辑的结果(它会移动这些东西)。

我们无法帮助你,所以继续挖掘这个恐怖......

P.S。 很高兴尝试保持代码格式良好和设计良好。不要使用大写字母!

编辑:为什么要迁移到nextFrame?我不确定这个计时器是否合适:)