6

有没有办法使用 Actionscript 或其他方法来调整整个 Flash 项目的大小?

我创建了一个 1024x768 Flash CS3 应用程序,但在仔细检查规格后,我现在意识到它必须是 800x600。我不想手动缩小所有内容,而是想调整窗口的大小,就好像有人在拖动外边缘一样。或者添加一个允许在 1024x768 和 800x600 之间切换的按钮。这可能吗?

我的意思是这样的:

stage.stageWidth = 800;
stage.stageHeight = 600;
4

4 回答 4

4

是的 stageWidth 和 stageHeight 是只读的,尽管有文档。但如果 SWF 嵌入在网页中,那么更改其元素宽度和高度将改变舞台大小,而 scaleMode 将决定如何处理。我Enjoy3D 网站上的所有SWF 都会在调整窗口大小时执行此操作...

于 2009-03-08T21:47:47.720 回答
1

如果您愿意,您可以只编辑 SWF 的 HTML 包装器并判断新尺寸是否,尽管我担心光栅化的媒体即使在缩小时也会被像素化。最好缩小所有内容,即使您不想这样做。

如果您真的需要在 Flash 中执行此操作,请使用 flash.external 包的 ExternalInterface 类来调用 HTML 中的 JavaScript 函数。确保您的 swf 在 div 内并设置为 div 的高度和宽度的 100%。现在您只需通过 JavaScript 通过 Actionscript 更改 div 的大小。

确保你有 stage.scaleMode 设置你想要的方式。

干杯

于 2009-03-10T17:00:37.753 回答
0

您无法从 Actionscript 更改舞台宽度和高度,这些属性是只读的。

难道你不能在编译你的 swf 之前将舞台属性的大小(我假设你在这里使用 Flash)设置为 800 x 600 吗?

于 2009-03-08T21:34:23.820 回答
0
  1. 您可以在 xxx-app.xml 文件中设置宽度和高度属性
  2. 如果要动态执行此操作,可以使用 FlexGlobals.topLevelApplication.width 和 height 属性或已弃用的 Application.application.width 和 height 属性
  3. 或者,如果您有一个纯 ActionScript 项目,因此您不能执行 FlexGlobals 或 Application,您可以从您的主动作脚本文件 (Sprite) 执行以下操作(注意,在执行此操作之前必须初始化阶段)

    width = WIDTH;
    height = HEIGHT;
    stage.stageWidth = WIDTH;
    stage.stageHeight = HEIGHT;
    stage.nativeWindow.width = WIDTH;
    stage.nativeWindow.height = HEIGHT;
    
于 2013-02-06T06:33:42.453 回答