gpt4 book ai didi

actionscript-3 - MovieClip 调整大小,但其子项的高度和宽度没有改变?

转载 作者:行者123 更新时间:2023-12-04 15:37:06 25 4
gpt4 key购买 nike

更改父 MovieClip 的宽度和高度不会改变内部 MovieClip 的宽度和高度。父影片剪辑放置在舞台上并手动调整大小。当我通过代码将父 MovieClip 的维度分配给内部 MovieClip 时,父 MovieClip 维度发生了变化。我希望两个 MovieClip 在运行时具有相同的宽度和高度。但是,我在设计时更改了父 MovieClip 尺寸。

例子:

有两个 MovieClip,一个在另一个里面。现在父影片剪辑在设计时放置在舞台上,其尺寸为 (50,50),而位于父影片剪辑内的子影片剪辑也具有相同的尺寸 (50,50)。现在,我通过按 Q 并用鼠标拉伸(stretch)它来手动更改父 MovieClip 尺寸,父 MovieClip 的尺寸现在是 (100,150) 或任何我喜欢的。现在双击父 MovieClip 并检查内部 MovieClip 尺寸是否保持不变,即 (50,50)
现在在 AS3 代码中,我像这样更改内部 MovieClip 的宽度和高度:

saveheight = parentmc.height;
savewidth = parentmc.width;

现在我根据父 MovieClip 的尺寸更改子 MovieClip,如下所示:
parentmc.inner_mc.width = parentmc.width;
parentmc.inner_mc.height = parentmc.height;

但这会带来 parentmc 的变化也因此我将值重新分配给 parentmc像这样:
parentmc.height = saveheight;
parentmc.width = savewidth;

在上述情况下, parentmcinne_rmc尺寸应该相同,即 (100 ,150)。通过交换上述值,我得到 parentmcinner_mc要具有相同的尺寸,但对象大小永远不是(100、150),我已经用像素完美的空气应用程序检查了它。

最佳答案

在您的代码中,您忽略了在创作环境中使用“Q”工具对父级进行的转换。 childmc 的宽度和高度以 parentmc 的变换坐标空间表示。如果您希望将内部剪辑缩放到舞台坐标空间中的特定大小,则需要考虑由变换产生的父级的比例:

   parentmc.inner_mc.width = parentmc.width/parentmc.scaleX;
parentmc.inner_mc.height= parentmc.height/parentmc.scaleY;

此外,如果剪辑未对齐(例如,通过其左上角注册并且子项位于 0,0),则放大子项可能会超出父项的边界。

如果您更喜欢使用 scaleX 和 scaleY,也可以使用父级的变换矩阵。

更新 4.8.11:您是否可能要求这样做(运行时删除创作时转换)?
saveheight = parentmc.height;
savewidth = parentmc.width;

parentmc.scaleX = 1.0; // Undo authoring-time scale transform
parentmc.scaleY = 1.0; // Undo authoring-time scale transform

parentmc.inner_mc.width = savewidth;
parentmc.inner_mc.height = saveheight;

parentmc.width = savewidth;
parentmc.height = saveheight;

注意:我没有在安装了 Flash 的计算机上进行测试,所以如果这没有达到您的预期,请给我留言,我会很乐意检查我的工作并跟进。

关于actionscript-3 - MovieClip 调整大小,但其子项的高度和宽度没有改变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5135656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com