我有一个大小为1280x720的电影剪辑,里面有一些图像、按钮和文本。
运行时我需要将此影片剪辑的大小更改为1280x300,这样做之后,影片剪辑中的图像、按钮和文本将被垂直压缩。
如何在不干扰容器大小的情况下显示具有不同大小的图像和文本的相同移动剪辑。
新的编辑/更新:
在另一种情况下,我将列表放在电影剪辑中。
我想归档的是我想保持列表项的大小不变,如果父级改变大小,它不应该改变。如果在flash中不可能,那么我如何重新调整列表中的所有项目的大小。我不知道为什么列表没有正确地使用滚动属性来根据大小显示它的内容。例如,如果列表大小是600px,那么它应该在列表中显示7个项目,然后提供其他项目的滚动,如果我们将列表大小调整到假设300,它应该显示4个项目并提供滚动。剩余项目
谢谢。
发布于 2011-07-14 18:11:48
如果此MovieClip是主文档类,请设置stage的以下属性:
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;如果此MovieClip存在于swf/timeline/display堆栈中的其他位置,则可以覆盖宽度/高度设置器并编写一些自定义代码来组织您的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
}还有更复杂的解决方案(只渲染一次更改,而不是每次调用setter ),对于这些解决方案,我会看看Keith Peters在他的MinimalComponents库中是如何处理这个问题的。
发布于 2011-07-14 22:46:18
据我所知,您有一个带有图像、一些文本字段和按钮的影片剪辑。您正在调整影片剪辑的大小,这会扭曲其所有子显示对象。
相反,您想要做的是覆盖宽度/高度设置器(如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
}https://stackoverflow.com/questions/6690681
复制相似问题