有没有办法使用 Actionscript 或其他方法来调整整个 Flash 项目的大小?
我创建了一个 1024x768 Flash CS3 应用程序,但在仔细检查规格后,我现在意识到它必须是 800x600。我不想手动缩小所有内容,而是想调整窗口的大小,就好像有人在拖动外边缘一样。或者添加一个允许在 1024x768 和 800x600 之间切换的按钮。这可能吗?
我的意思是这样的:
stage.stageWidth = 800;
stage.stageHeight = 600;
有没有办法使用 Actionscript 或其他方法来调整整个 Flash 项目的大小?
我创建了一个 1024x768 Flash CS3 应用程序,但在仔细检查规格后,我现在意识到它必须是 800x600。我不想手动缩小所有内容,而是想调整窗口的大小,就好像有人在拖动外边缘一样。或者添加一个允许在 1024x768 和 800x600 之间切换的按钮。这可能吗?
我的意思是这样的:
stage.stageWidth = 800;
stage.stageHeight = 600;
是的 stageWidth 和 stageHeight 是只读的,尽管有文档。但如果 SWF 嵌入在网页中,那么更改其元素宽度和高度将改变舞台大小,而 scaleMode 将决定如何处理。我Enjoy3D 网站上的所有SWF 都会在调整窗口大小时执行此操作...
如果您愿意,您可以只编辑 SWF 的 HTML 包装器并判断新尺寸是否,尽管我担心光栅化的媒体即使在缩小时也会被像素化。最好缩小所有内容,即使您不想这样做。
如果您真的需要在 Flash 中执行此操作,请使用 flash.external 包的 ExternalInterface 类来调用 HTML 中的 JavaScript 函数。确保您的 swf 在 div 内并设置为 div 的高度和宽度的 100%。现在您只需通过 JavaScript 通过 Actionscript 更改 div 的大小。
确保你有 stage.scaleMode 设置你想要的方式。
干杯
您无法从 Actionscript 更改舞台宽度和高度,这些属性是只读的。
难道你不能在编译你的 swf 之前将舞台属性的大小(我假设你在这里使用 Flash)设置为 800 x 600 吗?
或者,如果您有一个纯 ActionScript 项目,因此您不能执行 FlexGlobals 或 Application,您可以从您的主动作脚本文件 (Sprite) 执行以下操作(注意,在执行此操作之前必须初始化阶段)
width = WIDTH;
height = HEIGHT;
stage.stageWidth = WIDTH;
stage.stageHeight = HEIGHT;
stage.nativeWindow.width = WIDTH;
stage.nativeWindow.height = HEIGHT;