Flash AS2 hitTest 无法正常工作

Posted

技术标签:

【中文标题】Flash AS2 hitTest 无法正常工作【英文标题】:Flash AS2 hitTest not working properly 【发布时间】:2017-07-25 09:49:23 【问题描述】:

希望这里还有一些人和我一样,根本离不开Flash(和Actionscript 2)。 :)

我正在尝试在 Flash 中进行一些小冒险,但我的 hitTest 似乎无法正常工作。我有一个影片剪辑“播放器”和各种影片剪辑作为游戏场,例如“平原”。如果“玩家”点击“平原”,我的场景应该“gotoAndStop”到相应的帧,也称为“平原”。 “玩家”通过指南针进行控制(点击东方,玩家 x 移动 +20),与运动场的碰撞由 hitTest 完成。请参阅下面的屏幕截图。

我的问题:不幸的是,hitTest 查询仅适用于其中一个游戏字段(屏幕截图中的底部)。有没有人知道为什么会这样?我没有绝望,已经度过了整个周末,根本找不到解决办法。

提前致谢 krake82

Screenshot

【问题讨论】:

信息不足。不知道哪个对象是玩家,哪个是 feld_plains,以及对象的层次结构是什么。 感谢您的意见,Organis。紫色圆圈是“玩家”,两个绿色字段都是“feld_plains”,实例名称也为“feld_plains”。右下角的星星是指南针,它控制着玩家的移动。当玩家点击其中一个“feld_plains”闪光灯时,应该跳转到第 10 帧,名为“plains”。如果玩家没有点击“feld_plains”,它应该跳回第一帧,名为“start”。希望这有助于澄清。亲切的问候。 你有两个同名的不同对象,我理解了吗? 是的,有问题吗?我想用这些对象构建一张地图,当然会有“feld_plains”、丛林、水等的多个副本。我认为使用变量和 if 查询应该可以工作,不是吗? 嗯,你有两个朋友,都叫 Fred。你叫“弗雷德!”他们中的哪一个回应?您可以拥有一个库对象的多个副本,但您应该有一种方法可以直接处理其中的每一个。如果您为它们提供相同的实例名称,则只有其中一个可供您使用。 【参考方案1】:

已经有一段时间了 (AS2) 仍在使用 AS3 - 但您不能在屏幕上显示 2 个具有相同名称的电影剪辑并调用所有这些剪辑 - 就像您有一个僵尸一样 - 您将不得不使用僵尸[1],zombie[2] - 你可以从一个数组中做到这一点。

另一种方法(不一定是最好但有效)是创建一个带有“其中”代码的影片剪辑,从而使其有点“自给自足”,剪辑中的代码可以在不使用外部代码的情况下做出反应(在大多数情况下)例)。

【讨论】:

以上是关于Flash AS2 hitTest 无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

使用 Graphics.lineTo/curveTo 时,HitTest 无法正常工作

Adobe Flash CC 发布到 AS2

防止在 Flash AS2 事件处理程序中使用箭头键更改焦点?

在openX中无法访问Flash横幅链接?

减少 hitTest 调用以提高 Flash 游戏性能的最佳实践

使用 AS2 在 flash 上引入 php 变量的简单方法