如何让命中检测在 Flash 中工作?

Posted

技术标签:

【中文标题】如何让命中检测在 Flash 中工作?【英文标题】:How do I get Hit Detection to work in Flash? 【发布时间】:2012-11-05 13:58:51 【问题描述】:

Ives 尝试了许多命中检测,但似乎没有一个对我有用。我试过 hittest hittestobject hitarea。当我的对象(即 a 或 b 影片剪辑完全进入 c 影片剪辑时,我希望 c 移动 300 x 方向。只要它在 c 影片剪辑中它可以工作,就不需要进行精确点检测。

package  

import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.events.Event;
import flash.media.Sound;
import flash.ui.Mouse;

public class bakingCake extends MovieClip 


    public function bakingCake() 
        // constructor code

        var object:MovieClip = new MovieClip;

        a.addEventListener(MouseEvent.MOUSE_DOWN,objectA);
        b.addEventListener(MouseEvent.MOUSE_DOWN,objectB);

        if (object.hitArea(c) == true)
        
                c.x = 300;
                   

        function objectA():void
                   
            object = a;             
            object.addEventListener(MouseEvent.MOUSE_OVER,objectFun);
        

        function objectB():void
        
            object = b;
            object.addEventListener(MouseEvent.MOUSE_OVER,objectFun);
               


        function objectFun(event:MouseEvent):void
        

            object.addEventListener(MouseEvent.MOUSE_DOWN,drag);
            object.addEventListener(MouseEvent.MOUSE_UP,sDrag);
        
        function drag(event:MouseEvent):void
        
            object.startDrag();
        
        function sDrag(event:MouseEvent):void
        
            object.stopDrag();

        

    

【问题讨论】:

首先:这一切都在构造函数中还是只是复制粘贴错误? c 是什么?什么调用 hitArea 函数? objectA()objectB() 在哪里调用? 【参考方案1】:

你试过 getBounds() 吗? 我建议条件:

if (c.getBounds(c.parent).containsRect(a.getBounds(c.parent))
 || c.getBounds(c.parent).containsRect(b.getBounds(c.parent))) 
    c.x = 300;

IMO 最好的方法是检查它是否由 ENTER_FRAME 事件触发,附加到任何对象。

【讨论】:

问题已解决,使用了stage.addEventListener(Event.ENTER_FRAME, applicationloop);不断检查碰撞

以上是关于如何让命中检测在 Flash 中工作?的主要内容,如果未能解决你的问题,请参考以下文章

UITextView:链接检测在模拟器中工作,而不是在设备上

我无法悬停在 Bootstrap 轮播中工作

让网络摄像头在 OpenCV 中工作

如何检测当前按下的键?

flash 对象映射如何在 grails 框架中工作

cookie 中的访问令牌,但验证无法在 react.js(axios) 中检测到它,在邮递员中工作