Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 AS3:父对象之外的子对象_Actionscript 3 - Fatal编程技术网

Actionscript 3 AS3:父对象之外的子对象

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

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..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);