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