MC 子级上的 hitTestObject

发布于 2024-10-11 22:39:03 字数 342 浏览 3 评论 0原文

我有一个名为“playerP”的 MC,里面有 7 个不同的 MC。我似乎无法对子 MC 进行测试,它总是显示 [objectposition_2]

private function cMove(e:MouseEvent):void
        {
            trace(MovieClip(playerP.RR), playerP.PT)
            if (e.currentTarget.hitTestObject(playerP.PT))
            {
                trace("hit la");
            }
        }

I have a MC called 'playerP" and inside of it with 7 different MC. I can't seems to hit test on the children MC, it always show [object position_2]

private function cMove(e:MouseEvent):void
        {
            trace(MovieClip(playerP.RR), playerP.PT)
            if (e.currentTarget.hitTestObject(playerP.PT))
            {
                trace("hit la");
            }
        }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

摘星┃星的人 2024-10-18 22:39:03

我正在尝试引用一个具有 2 个图层和 2 个实例引用的影片剪辑。
一个叫埃里克,另一个叫热门。目前较大的Erik正在工作,我怎样才能使“命中”成为目标。

for (var ii : uint = 0; ii < target.numChildren; ++ii) {
    if (e.currentTarget.hitTestObject(target.getChildAt(ii))){
        trace("hit la");
    }
}

这有效,但对 Erik 来说是有效的

public function Catcher(stageRef:Stage, target:Erik) : void

,因为 Erik 是一个类对象。

I am trying to reference a movieclip that has 2 layers and 2 instance references.
One is called Erik, the other hit. Currently the larger Erik is working, how can I make 'hit' be the target.

for (var ii : uint = 0; ii < target.numChildren; ++ii) {
    if (e.currentTarget.hitTestObject(target.getChildAt(ii))){
        trace("hit la");
    }
}

This works but on Erik which is set by

public function Catcher(stageRef:Stage, target:Erik) : void

as Erik is a class object.

情徒 2024-10-18 22:39:03

尝试明确地迭代子级。

private function cMove(e:MouseEvent):void
    {
        for (var ii : uint = 0; ii < playerP.numChildren; ++ii)
        {
            if (e.currentTarget.hitTestObject(playerP.getChildAt(ii)))
            {
                trace("hit la");
            }
        }
    }

Try explicitly iterating through the children.

private function cMove(e:MouseEvent):void
    {
        for (var ii : uint = 0; ii < playerP.numChildren; ++ii)
        {
            if (e.currentTarget.hitTestObject(playerP.getChildAt(ii)))
            {
                trace("hit la");
            }
        }
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文