我的flash应用程序中有一个列表组件,当抛出event.RESIZE时,我不想为不同的分辨率动态缩放。
缩放实际列表非常简单。我可以将列表设置为静态大小以获得最小预期分辨率,然后将其放大为当前分辨率与最小分辨率的比率。类似的东西:
if(stage.stageWidth > MIN_WIDTH_RESOLUTION)
m_list.width = MIN_LIST_WIDTH * (stage.stageWidth / MIN_WIDTH_RESOLUTION)
和高度类似的东西。
问题来自textField的列表内部。文本未按列表缩放。 是否有任何内置的ActionScript方法来处理此问题?
我尝试通过设置textFields的fontSize和列表的rowHeight以与上面的代码片段类似的最小比例方式手动完成。我遇到了问题,因为无法简单地从一个维度确定文本的大小。当舞台宽度增加时增加字体的大小也会增加字体的高度。
如果可以在一个我不知道的方法中通过actionscript内部处理它会很棒,但如果不是,我会很感激有关如何手动处理这个的一些提示或方程式。
答案 0 :(得分:0)
您可以使用列表的transform属性来缩放或调整其大小(也包括其子项)。您需要做的是,只需进行缩放计算并将其分配到矩阵中,然后将该矩阵分配给变换。
实施例: 如果 mlist 是您的列表,矩阵那么,
mlist.transform.matrix = matrix;
以下链接可帮助您设置矩阵
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/geom/Matrix.html
我相信这条信息正是你想要的。