我使用以下代码将对象放在容器中:
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。是什么导致这个?...
答案 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);