动态缩放“列表组件”及其“文本”内容



我的flash应用程序中有一个列表组件,当发生事件时,我不想动态缩放以获得不同的分辨率。RESIZE被抛出。

缩放实际列表很容易。我可以将列表设置为最小预期分辨率的静态大小,然后将其放大为当前分辨率与最小分辨率的比率。类似于:

if(stage.stageWidth > MIN_WIDTH_RESOLUTION)
    m_list.width = MIN_LIST_WIDTH * (stage.stageWidth / MIN_WIDTH_RESOLUTION)

高度也差不多。

问题来自列表内部的textField。文本未随列表按比例缩放是否有任何内置的ActionScript方法来处理此问题

我尝试手动设置textFields的fontSize和列表的rowHeight,其方式与上面的代码片段类似。我遇到了一些问题,因为文本的大小不能简单地从一个维度来确定。当阶段的宽度增加时,增加字体的大小也会增加字体的高度。

如果这可以通过actionscript以一种我不知道的方法在内部处理,那将是非常棒的,但如果不能,我将感谢一些关于如何手动处理的技巧或公式。

您可以使用列表的transform属性来缩放或调整它(以及它的子项)。你需要做的是,只需进行缩放计算,并将其分配到矩阵中,然后将该矩阵分配给变换。

示例:如果mlist是您的列表,矩阵

mlist.transform.matrix = matrix;

以下链接可帮助您设置矩阵

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/geom/Matrix.html

我相信这条信息正是你想要的。

最新更新