所以我有两个不同父母的对象,我想在它们之间画一条线,我该怎么做?我知道我需要使用 localToGlobal 但我不确定如何让它为此工作。基本上我需要两个对象相对于其中一个对象的 x 和 y 坐标,当它们有不同的父对象时,如何获得一个对象相对于另一个对象的 x 和 y 坐标?谢谢。
问问题
4051 次
3 回答
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()
于 2013-05-13T03:29:47.163 回答
0
您可以获得一个孩子的孩子的任何孩子的绝对坐标(实际上,它相对于舞台)......然后在舞台上在它们之间绘制:)这样,两个孩子的深度无关紧要。
于 2013-05-13T18:57:39.830 回答
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);
于 2013-05-13T04:28:45.120 回答