所以我有两个父母不同的对象,我想在它们之间画一条线,我该怎么做?我知道我需要使用localToGlobal,但我不确定如何让它适用于此。基本上我需要两个对象相对于其中一个的x和y坐标,当他们有不同的父母时,如何获得对象相对于另一个的x和y坐标?感谢。
答案 0 :(得分:3)
从概念上讲,你基本上需要这样做(绘制破折号,但是作为实线)
parent
| \
child1--child2
[一些代码(键入但未测试)]
var start:Point = parent.globalToLocal(child1.localToGlobal(new Point()));
var end:Point = parent.globalToLocal(child2.localToGlobal(new Point()));
parent.graphics.lineStyle(1);
parent.graphics.moveTo(child1.x,child1.y);
parent.graphics.lineTo(child2.x,child2.y);
[另一种选择]
var start:Point = child1.getRect(parent).topLeft;
var end:Point = child2.getRect(parent).topLeft;
parent.graphics.lineStyle(1);
parent.graphics.moveTo(child1.x,child1.y);
parent.graphics.lineTo(child2.x,child2.y);
http://help.adobe.com/en_US/AS2LCR/Flash_10.0/help.html?content=00001308.html http://help.adobe.com/en_US/AS2LCR/Flash_10.0/help.html?content=00001320.html
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/DisplayObject.html#localToGlobal() http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/DisplayObject.html#globalToLocal()
答案 1 :(得分:0)
它是:
var object1Pos:Point = object1.localToGlobal(new Point());
var object2Pos:Point = object2.localToGlobal(new Point());
现在你必须画线
var line:Shape = new Shape();
var g:Graphics = line.graphics;
g.lineStyle(2, 0x000000);
g.moveTo(object1Pos.x, object1Pos.y);
g.lineTo(object2Pos.x, object2Pos.y);
然后,当然,将该行添加到舞台
stage.addChild(line);
答案 2 :(得分:0)
你可以得到孩子孩子的任何孩子的绝对坐标(实际上,它相对于舞台)...并且只是在他们之间画画,在舞台上:)这样一来,重要的不是两者有多深孩子们。