儿童干扰hitTestObject(AS3)

时间:2013-08-10 00:01:16

标签: actionscript-3

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

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

问题在于,当我将标签添加为子项时,它会更改按钮的hitAreaTextField有一个更大的hitArea,我认为它会覆盖按钮本身的hitArea

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

  1. 告诉hitTestObject忽略按钮子女的hitArea的方法

  2. 一种不会出现问题的标签

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

  4. 我已经编程了大约两年了,所以我可以很好地理解建议,但我只是在一个月之内教我自己。

    *我知道在某些Flash IDE中,更改hitArea非常容易,因为通常有一个简单的窗口可以执行此操作。 FlashDevelop更注重代码,意味着所有MovieClip()Frame恶作剧都被抽象掉了。我看到通过代码更改hitArea的唯一方法是将其分配给Sprite,但这对我没有意义,特别是在这种情况下,因为按钮位于它的基础,扩展Sprite

    先谢谢大家。

    我一起快速截图。值得庆幸的是,我可以TextField.border = true;并显示确切的hitArea

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

1 个答案:

答案 0 :(得分:0)

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