0

我的 Flash 应用程序中有一个列表组件,我不想在抛出 event.RESIZE 时动态缩放以适应不同的分辨率。

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

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

和类似的高度。

问题来自列表内部的文本字段。文本不随列表缩放。是否有任何内置的 ActionScript 方法来处理这个问题?

我尝试通过以类似于上面的代码片段的最小比率方式设置 textFields 的 fontSize 和列表的 rowHeight 来手动执行此操作。我遇到了问题,因为不能简单地从一维确定文本的大小。当舞台宽度增加时增加字体的大小也会增加字体的高度。

如果这可以通过 actionscript 以我不知道的方法在内部处理,那就太棒了,但如果不是,我会很感激一些关于如何手动处理的技巧或方程式。

4

1 回答 1

0

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

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

mlist.transform.matrix = matrix;

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

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

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

于 2012-09-10T08:30:42.657 回答