如何在不调整其子项大小的情况下禁用大小调整MovieClip(ActionScript3)

时间:2011-03-06 10:18:51

标签: flash actionscript-3

我正在创建一个Flash库(第一次使用flash)并发现了一个问题。当我调整(容器)MovieClip的大小时,它会调整剪辑的子项的大小,因此我无法将它们大小调整为我需要的尺寸。

如何禁用动画片段子项的大小调整?

4 个答案:

答案 0 :(得分:2)

简单回答:你做不到。

如果您想要有不同的行为,则需要创建自己的调整大小的机制(例如使用调整大小事件侦听器根据容器大小放置“子”MovieClip,而不是将它们添加到容器的显示中列表)。

答案 1 :(得分:1)

这听起来像是你的设计问题是什么。继承量表的重点是,当您将某些项目放在父MC中,并开始缩放父项时,所有子项都会效仿。 也许您需要创建一些非MC数据对象容器来存储您的子MC?或者做任何事情你正在扩展其他项目的兄弟。 在不了解您的具体项目目标的情况下,很难说您需要什么。但乍一看,我希望将那些(不可调整的)孩子变成他们自己的元素。

答案 2 :(得分:1)

如果你将你的容器(让我们称之为背景)和它的子(我们称之为图片)分开并将它们放在一个新的(不可见的)容器精灵中,就有可能。

背景和图片都是新容器的子项,因此如果您缩放新容器,那么一切都会缩放。

但是,如果你将背景锁定在零子索引(因此它总是出现在图片后面)并使其成为新容器的公共属性,你可以自己缩放它而不用缩放图片,因为它们会是兄弟姐妹,而不是孩子。

因为图片,背景和容器将是同一个类对象,当背景缩放时通知图片(如果你想实现实时布局)甚至不需要自定义事件,尽管你可以创建/发送/如果你想要听一个。

答案 3 :(得分:1)

myChild.scaleX = 1/myParent.scaleX;
myChild.scaleY = 1/myParent.scaleY;

或者如果孩子的比例不是100%,你可以在初始化时或每当它改变时定义他们的targetScale。

myChild.scaleX = myChild.targetScale/myParent.scaleX;
myChild.scaleY = myChild.targetScale/myParent.scaleY;