AS2到AS3 hitTest Migration

时间:2009-11-20 05:31:54

标签: flash actionscript-3 actionscript actionscript-2

我陷入了as3 hit test问题。这是我在as2中编写的代码。请帮我把它迁移到as3

target.hitTest((_x - _width / 2) * (1 / (100 / _root.game._xscale)) + _root.game._x, 
  _y * (1 / (100 / _root.game._yscale)) + _root.game._y, true)

2 个答案:

答案 0 :(得分:1)

在AS3中,许多变量的名称已更改。您是否声明了变量 _x _width _root _xscale _y _yscale

如果没有,那么这就是你的问题,你所要做的就是为正确的新变量更改这些变量: x width root stage 会更好), scaleX y scaleY

此外,不再使用 hitTest 方法,而应使用 hitTestObject hitTestPoint

您还应该查看此网址:http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/migration.html

干杯, CaioToOn!

答案 1 :(得分:1)

AS3中确实存在

_root,_levelX等。您需要将_root替换为包含“game”对象的对象的引用。如果“游戏”对象处于阶段级别,则可以使用game.stage.prop / meth来处理大多数事情。

另一个重要的事情是,_xscale / _yscale接受百分比为1到100,依此类推,而scaleX和scaleY接受0到1,依此类推。

target.hitTestPoint ((x - width/2) * (1/rootApp.scaleX) + rootApp.game.x, y * (1/rootApp.game.scaleY) + rootApp.game.y, true);

其中“rootApp”是对象的引用,它包含“game”displayobject(movieclip,sprite或其他)。

希望有所帮助。

-abdul