更改动画片段大小字体/图像后Flash-CS5受到挤压

时间:2011-07-14 08:51:10

标签: actionscript-3 flash-cs5

我有一个大小为1280 x 720的影片剪辑,里面有一些图像,按钮和文字 运行时我需要将此影片剪辑的大小更改为1280 x 300,这样,影片剪辑中的图像,按钮和文本会被垂直挤压。

如何使用不同大小的图像和文本显示相同的移动剪辑,而不会影响包含的大小。

新编辑/更新:
在另一种情况下,我在影片剪辑中有列表 我想要存档的是我想保持列表项大小是静态的,如果父级重新调整大小,它不应该改变。如果在闪存中不可能,那么我该如何重新调整列表中的所有项目。我不知道为什么列表没有正确使用滚动属性来显示它的大小包含。例如,如果列表大小为600px,那么它应该在列表中显示7个项目,然后为其他项目提供滚动,如果我们将列表重新调整为假设300,它应该显示4个项目并提供滚动。剩余项目

感谢。

2 个答案:

答案 0 :(得分:0)

如果此MovieClip是主文档类,则设置阶段的以下属性:

stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;

如果此MovieClip存在于swf / timeline / display stack中的其他位置,则可以覆盖宽度/高度设置器并编写一些自定义代码来组织MovieClip

override public function set width(value:Number):void
{
    //organise your MovieClips images/buttons/text horizontally
}

override public function set height(value:Number):void
{
    //organise your MovieClips images/buttons/text vertically
}

有更复杂的解决方案(只渲染一次,而不是每次设置调用),对于那些我会看看Keith Peters如何在他的MinimalComponents库中处理它。

答案 1 :(得分:0)

据我所知,你有一个带有图像,一些文本字段和按钮的影片剪辑。您正在调整movieclip的大小,这会扭曲其所有子显示对象。

你要做的是覆盖宽度/高度设置器(如Hawks建议的那样)或者添加一个新的方法(例如resize( newHeight:int )),它可以执行以下操作:

function resize( newHeight:int ):void
{
    // resize the image
    image.height = newHeight;
    image.scaleX = image.scaleY; // this will maintain the aspect

    // re-position the other elements
    button.y = newHeight - button.height - 5; // where 5 is the margin

    textField1.y = button.y - textField1.height; // if you want the text field to be positioned above the button
}