【问题标题】:Flash AS3: Resize SWF but keep elements the same sizeFlash AS3:调整 SWF 大小但保持元素大小相同
【发布时间】:2012-01-29 18:10:42
【问题描述】:

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

我希望它只调整聊天文本区域的大小,当垂直调整大小时,保持控件一致的高度,我也希望发送聊天的按钮保持它们的大小,输入框增加横向增加尺寸时的宽度。

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

有什么办法吗?

【问题讨论】:

  • 看舞台规模。将其设置为 noScale,它将停止调整大小,但您需要根据您可能需要通过 flashvars 拉入的电影宽度手动调整您想要的 mc 的大小
  • 但是如果用户调整窗口大小,swf的大小可能会改变,那么使用ExternalInterface不是最好吗?
  • 您不需要通过 ExternalInterface 在您的 swf 中调用某些内容,swf 仍然会获取所有调整大小的事件,因此通过 ExternalInterface 调用设置某些内容是多余的。

标签: flash actionscript-3


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-28
    • 1970-01-01
    • 2016-02-23
    • 2022-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多