Actionscript 3 AS3:父对象之外的子对象
Im使用以下代码将对象放置在容器中:Actionscript 3 AS3:父对象之外的子对象,actionscript-3,Actionscript 3,Im使用以下代码将对象放置在容器中: testParent = new MovieClip(); testParent.graphics..beginFill(0x0000FF); testParent.graphics.drawRect(50, 50, 300, 300); testParent.graphics.endFill(); addChild(testParent); testChild = new MovieClip(); testChild.graphics..beginFil
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。是什么导致了这种情况?..您正在将testChild添加到testParent,而不是添加到testParent中的矩形对象 因此testChild相对于testParent将处于0,0(而不是矩形,它是一个单独的对象) 或者换句话说,在testParent中绘制一个矩形并没有给它这样的“边距” 您可以尝试使用第三个对象来表示矩形,然后将testChild添加到矩形(并将矩形添加到testParent) 或者,只需设置testChild的x和y,使其位于您想要的位置
注意:我现在手头没有AS3来测试这个,但我想这就是正在发生的事情,谢谢,我不知道。现在我明白了。。 对于将来的信息,这是有效的:
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);
事实上,从技术上讲应该是这样的 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); testParent=新的MovieClip(); testParent.graphics.beginll(0x0000FF); testParent.graphics.drawRect(50,50300300); testParent.graphics.endFill(); addChild(testParent); testChild=新的MovieClip(); testChild.graphics.beginll(0xFF0000); testChild.graphics.drawRect(0,01000100); testChild.graphics.endFill(); testChild.x=50; testChild.y=50; testParent.addChild(testChild);