我正在使用FlashDevelop在as3中制作游戏。
我有一个按钮类,当玩家与它发生碰撞时会被点击。没问题。点击检测工作正常,点击工作正常,这不是问题。我的按钮类的这个特定扩展名在它上面有一个标签(具体来说是TextField
),包含一个短字符串。
问题在于,当我将标签添加为子项时,它会更改按钮的hitArea
。 TextField
有一个更大的hitArea
,我认为它会覆盖按钮本身的hitArea
。
我正在寻找的解决方案(任何,不一定全部):
告诉hitTestObject
忽略按钮子女的hitArea
的方法
一种不会出现问题的标签
重新覆盖按钮hitArea
*的方法。
我已经编程了大约两年了,所以我可以很好地理解建议,但我只是在一个月之内教我自己。
*我知道在某些Flash IDE中,更改hitArea
非常容易,因为通常有一个简单的窗口可以执行此操作。 FlashDevelop更注重代码,意味着所有MovieClip()
和Frame
恶作剧都被抽象掉了。我看到通过代码更改hitArea
的唯一方法是将其分配给Sprite
,但这对我没有意义,特别是在这种情况下,因为按钮位于它的基础,扩展Sprite
先谢谢大家。
我一起快速截图。值得庆幸的是,我可以TextField.border = true;
并显示确切的hitArea
答案 0 :(得分:0)
最简单的方法是在升级内部创建一个透明(0%alpha)精灵,这是精灵测试的特定尺寸。然后从那里开始对这个对象进行测试而不是父对象。 if(player.hitTestObject(upgrade.hitBox)) {