AS3:父项外部的子对象

时间:2010-04-14 14:55:07

标签: actionscript-3

我使用以下代码将对象放在容器中:

testParent = new MovieClip();
testParent.graphics..beginFill(0x0000FF);
testParent.graphics.drawRect(50, 50, 300, 300);
testParent.graphics.endFill();
addChild(testParent);

testChild = new MovieClip();
testChild.graphics..beginFill(0xFF0000);
testChild.graphics.drawRect(0, 0, 100, 100);
testChild.graphics.endFill();
testParent.addChild(testChild);

这为testParent对象提供了从顶部和左侧50的边距。 testChild对象应该具有相对于stage的相同边距。但不..相对于舞台,子对象在0,0。是什么导致这个?...

3 个答案:

答案 0 :(得分:2)

您正在将testChild添加到testParent,而不是添加到testParent中的矩形对象。

因此testChild将相对于testParent为0,0(而不是矩形,即单独的对象)

或者换句话说,在testParent中绘制一个矩形不会给它'边距'。

您可以尝试使用第三个对象来表示矩形,然后将testChild添加到矩形中(并将矩形添加到testParent)

或者,只需设置testChild的x和y,使其处于您想要的位置。

注意:我现在没有AS3方便测试,但我认为这是最新的

答案 1 :(得分:0)

谢谢,不知道。现在我懂了.. 对于将来的信息,这有效:

testParent = new MovieClip();
testParent.graphics.beginFill(0x0000FF);
testParent.graphics.drawRect(0, 0, 300, 300);
testParent.graphics.endFill();
testParent.x = 50;
testParent.y = 50;
addChild(testParent);

testChild = new MovieClip();
testChild.graphics.beginFill(0xFF0000);
testChild.graphics.drawRect(0, 0, 100, 100);
testChild.graphics.endFill();
testParent.addChild(testChild);

答案 2 :(得分:0)

实际上,技术上应该是

testParent = new MovieClip();
testParent.graphics.beginFill(0x0000FF);
testParent.graphics.drawRect(50, 50, 300, 300);
testParent.graphics.endFill();
addChild(testParent);

testChild = new MovieClip();
testChild.graphics.beginFill(0xFF0000);
testChild.graphics.drawRect(0, 0, 100, 100);
testChild.graphics.endFill();
testChild.x = 50;
testChild.y = 50;
testParent.addChild(testChild);