0

我正在使用 FlashDevelop 在 as3 中制作游戏。

我有一个按钮类,当玩家与它发生碰撞时会被点击。没问题。点击检测正在工作,点击正在工作,这不是问题。我的按钮类的这个特定扩展在其TextField上方有一个标签(特别是 a ),其中包含一个短字符串。

问题是当我将标签添加为孩子时,它会更改hitArea按钮的。TextField有一个更大的,hitArea我认为它只是覆盖hitArea了按钮本身。

我正在寻找的解决方案(任何,不一定全部):

  1. 一种告诉hitTestObject忽略hitArea按钮子项的方法

  2. 一种标签,这不会成为问题

  3. 一种重新覆盖hitArea按钮的方法*。

我已经编程大约两年了,所以我可以很好地理解建议,但我只是自学 as3 不到一个月。

*我知道在某些 flash IDE 中,更改 IDE 非常容易hitArea,因为通常有一个简单的窗口可以在其中进行更改。FlashDevelop 更加注重代码,这意味着所有的MovieClip()恶作剧Frame都被抽象掉了。我见过的更改hitArea直通代码的唯一方法是将其分配给 a Sprite,但这对我来说没有意义,尤其是在这种情况下,因为按钮在其底部扩展Sprite

提前谢谢大家。

我拼凑的一个快速截图。谢天谢地,我可以TextField.border = true;准确地展示hitArea

http://i.imgur.com/cd83daV.png

4

1 回答 1

0

最简单的方法是在升级内部创建一个透明的(0% alpha)精灵,这是命中测试的特定维度。然后从那里,你对这个对象而不是像这样的父对象进行测试。if(player.hitTestObject(upgrade.hitBox)) {

于 2013-08-10T00:37:47.977 回答