我陷入了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)
答案 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)
_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