【问题标题】:Scale to fit a Flex 4 - Flash application缩放以适应 Flex 4 - Flash 应用程序
【发布时间】:2011-11-08 17:42:47
【问题描述】:

所以我有一个 Flash 应用程序,它可以根据舞台的高度和宽度动态地改变它自身和组件的高度和宽度。

这个应用程序将在屏幕上单独运行,屏幕的高度和宽度可以是任何东西(测试和应用程序完美运行并在屏幕上调整其组件和所有必需的对象)

在为该应用程序提供其 flashvars 和来自窗口的文本信息时.. 该窗口连接到具有固定宽度和高度的预览窗口(在查看应用程序时),但它会自行调整为该固定窗口的宽度和高度.

我确实有应用程序实际要在屏幕上查看的宽度和高度。

如何缩放应用程序(缩放以适合预览窗口)如果它在顶部和底部或左右有空白,取决于实际的宽度和高度。

【问题讨论】:

  • 用于将 SWF 放置在 HTML 页面中的 embed 标记可以控制应用程序的缩放方式。我假设您想让应用占据整个屏幕并流畅地调整自身大小?
  • 根据我的说法,一个更好的方法是给你的内部组件一个百分比宽度和高度,而不是像素。
  • 这样你就不需要在每次调整大小时更改每个内部组件的高度/宽度。以编程方式,您可以使用 percentWidth 和 percentHeight 属性更改百分比宽度和高度

标签: flash flex4 scale


【解决方案1】:

您需要使用 stage.stageWidth/stage.stageHeight 来获取嵌入的大小。并使用 Event.RESIZE 事件来处理运行时舞台大小发生变化的情况。然后你只需要一些相当简单的缩放逻辑来保持你的纵横比是检查的。

类似:

// disables streching
stage.scaleMode = StageScaleMode.NO_SCALE;

// listen to stage being resizes
addEventListener(Event.RESIZED, handleResized);

// adjust UI to original size
setSize(stage.stageWidth, stage.stageHeight);

// handle the resized event, and update your UI's dimension
function handleResized(evt:Event):void
{
    setSize(stage.stageWidth, stage.stageHeight);
}

// updates your UI
function setSize(wid:int, hgt:int):void
{
    container.width = wid;
    container.height = hgt;
}

会将您的应用缩放到舞台大小。如果您需要保持应用程序的纵横比,那么您可以调整嵌入 SWF 的方式,也可以在 setSize 函数中自己处理纵横比逻辑。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-21
    • 2011-08-04
    • 1970-01-01
    • 2011-07-15
    • 2011-05-02
    相关资源
    最近更新 更多