Flash AS3:调整SWF的大小,但保持元素的大小不变



我正在尝试使用Flash AS3创建一个全屏聊天程序,到目前为止,一切都很顺利,除了调整窗口大小时,整个程序都按比例调整了大小。

我希望它只调整聊天文本区域的大小,当垂直调整大小时,保持控件的高度一致,而且我希望发送聊天的按钮保持其大小,当水平增加大小时,输入框的宽度会增加。

显然,SWF的大小调整将由JavaScript/jQuery.onResize()完成,因此我将能够为SWF设置最小宽度和高度,从而保持可用性。

有办法做到这一点吗?

Stage的resize事件在每次swf更改大小时都会触发,因此您不需要使用ExternalInterface(它不太可靠,而且增加了复杂性)。此外,您应该将stage.scaleMode设置为"noScale",将stage.align设置为"TL",这样元素就不会缩放(您将手动执行此操作),并且它们将对齐到左上角(以保持与显示列表的一致性)。

然后,在每次调整大小事件中,您可以检查新的维度(stage.stageWidth和stage.stage.height),并单独调整/重新定位元素(例如,chatBox.height=stage.stage-height)

最新更新