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

标签 actionscript-3 flash-cs6

我尝试了很多命中检测,但似乎没有一个对我有用。我试过 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();

        }

    }
}

最佳答案

你试过 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 事件触发,附加到任何对象。

关于actionscript-3 - 如何让命中检测在 Flash 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13423436/

相关文章:

actionscript-3 - ActionScript 3.0 : Addition of Document Class causes errors

actionscript - 错误1046 :Type was not found or was not a compile-time constant

actionscript-3 - 当给定角度和速度时,计算物体的轨迹

json - 如何使用 Adob​​e Flex 发布 JSON

actionscript-3 - AS3 - 为什么将 DisplayObject 的 alpha 设置为 0.7 实际上会导致 alpha 被设置为 0.69921875?

actionscript-3 - AS3 中准确的 BPM 事件监听器

javascript - Actionscript 2 Setinterval向计时器添加毫秒

flash - 如何使用 as3 (Flash CS5) 自动保存(无对话框)图像

flash - 更改已编译 SWF 文件中变量值的最佳方法