无论出于何种原因,此代码无法正常运行。有人可以成为一双新鲜的眼睛,找到我做错的事吗?老实说,我不知道是怎么回事。这是代码:
import flash.geom.Point;
var upperPoint:Point = new Point(monster.animation2.upper.attackMarker.x,monster.animation2.upper.attackMarker.y);
var animationPoint:Point = new Point(monster.animation2.upper.localToGlobal(upperPoint).x,monster.animation2.upper.localToGlobal(upperPoint).y);
var monsterPoint:Point =new Point(monster.animation2.localToGlobal(animationPoint).x,monster.animation2.localToGlobal(animationPoint).y);
var globalPoint:Point = new Point(monster.localToGlobal(monsterPoint).x,monster.localToGlobal(monsterPoint).y);
trace(globalPoint);
以下是movieClips中父母关系的快速图表:
monster [animation [upper [attackMarker]]]
如果我要将movieClip从其所有父项中删除,Flash应该跟踪attackMarker
的确切位置。有人能弄清楚我做错了吗?
答案 0 :(得分:1)
在尝试查找显示对象的全局坐标时,您只需要在对象的直接父级上调用localToGlobal
一次(在您的示例中,怪物) .animation2.upper):
var attackMarkerPoint:Point = new Point(monster.animation2.upper.attackMarker.x, monster.animation2.upper.attackMarker.y);
var globalPoint:Point = monster.animation2.upper.localToGlobal(attackMarkerPoint);