我有一个包含一个按钮和两个标签(都是 Flash 组件)的影片剪辑。单击按钮时,我想通过删除其中一个标签来最小化影片剪辑,然后将影片剪辑的高度更改为仅显示按钮和第一个标签(两者都在影片的顶部)。
我曾尝试更改影片剪辑的高度以及使用 scaleY,但它最终会随影片剪辑一起缩放标签和按钮。
有没有办法只缩放电影的背景而不缩放其子项(按钮和标签)?
谢谢!
我有一个包含一个按钮和两个标签(都是 Flash 组件)的影片剪辑。单击按钮时,我想通过删除其中一个标签来最小化影片剪辑,然后将影片剪辑的高度更改为仅显示按钮和第一个标签(两者都在影片的顶部)。
我曾尝试更改影片剪辑的高度以及使用 scaleY,但它最终会随影片剪辑一起缩放标签和按钮。
有没有办法只缩放电影的背景而不缩放其子项(按钮和标签)?
谢谢!
我同意 weltraumpirat 的观点,即孩子与父母一起缩放是正确的行为。如果您无法将它们移出父级,您可以考虑使用以下伪代码来撤消父级对子级的缩放影响:
public class ParentClip extends MovieClip
{
// Consider moving all of those unscalable clips into this MovieClip so you would not have to process them individually
public var clipsDoNotScale:MovieClip;
public override function set scaleX(value:Number):void
{
var previousValue:Number = super.scaleX;
super.scaleX = value;
if ( previousValue != value && clipsDoNotScale )
{
clipsDoNotScale.scaleX = 1 / value;
//Proportionally move the clip too
clipsDoNotScale.x *= value / previousValue;
}
}
public override function set scaleY(value:Number):void
{
var previousValue:Number = super.scaleY;
super.scaleY = value;
if ( previousValue != value && clipsDoNotScale )
{
clipsDoNotScale.scaleY = 1 / value;
//Proportionally move the clip too
clipsDoNotScale.y *= value / previousValue;
}
}
}
它不会那样工作。缩放父级会影响所有子级 - 这是一件好事,因为它使修改大型显示对象组变得更加容易。
您将不得不更改层次结构,以便您尝试缩放的图形剪辑与标签和按钮位于同一级别 - 只需创建一个新的 MovieClip 并将所有四个元素(图形、按钮、标签)放在其中。