as3 movieclip位置调整大小的movieclip

时间:2014-07-07 22:43:10

标签: actionscript-3 flash resize stage

我想知道如何将一个movieClip(my_mcB)嵌套在一个调整大小的movieClip(my_mcA)中;

my_mcA最初是1080宽。

my_mcA设置为根据舞台宽度调整大小,并按照与其加载的设备宽度成比例缩放。以下是可正常工作的调整大小代码:

my_mcA.width = stage.stageWidth;
my_mcA.scaleY = my_mcA.scaleX;

我正在500宽的舞台上进行测试。 my_mcA重新调整好了。但是,如果我尝试重新定位my_mcA中的my_mcB,它似乎使用1080的旧值。如果我使用此代码:

my_myA.my_mcB.x = stage.stageWidth; // NEED HELP WITH THIS LINE

my_mcB应该在舞台上,但它会在屏幕中间显示一半。

在我的项目中,我将使用屏幕滑动和许多补间,所以我需要让公式将对象放在屏幕上的正确位置以及补间中的移动长度...... 如何在已调整大小的movieClip中正确定位嵌套的movieClip?

1 个答案:

答案 0 :(得分:1)

尝试

my_mcA.my_mcB.x = 1080;

如果缩放外部容器(my_mcA)以适合屏幕,则不应影响my_mcB的内部坐标系。 500宽度大约是1080的中间,听起来就像你看到的那样。

编辑:你问过如何获得内部显示对象的原始宽度。您可以通过访问内部movieclip的width属性来获取它。这里是一个示例,说明内部显示对象宽度如何通过使用缩放或宽度属性来缩放外部显示对象:

trace("unscaled my_mcA.my_mcB.width="+mcA.my_mcB.width);
my_mcA.scaleX=0.5;
my_mcA.scaleY=0.5;
trace("scaleX scaled my_mcA.my_mcB.width="+my_mcA.my_mcB.width);
my_mcA.width=250;
my_mcA.scaleY=my_mcA.scaleX;
trace("width scaled my_mcA.my_mcB.width="+my_mcA.my_mcB.width);

这应该是脚本的输出:

unscaled my_mcA.my_mcB.width=550
scaleX scaled my_mcA.my_mcB.width=550
width scaled my_mcA.my_mcB.width=550

编辑2:如果你想要实际显示的宽度,你需要将内部显示对象的width属性与外部显示对象的x scale(scaleX)相乘:

trace("display width="+(my_mcA.my_mbB.width*my_mcA.scaleX));

这只是一个简单的例子。使用多个嵌套的动画片段,您需要应用整个嵌套链的缩放因子。