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

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

我的意思是这样的:

stage.stageWidth = 800;
stage.stageHeight = 600;
有帮助吗?

解决方案

是stageWidth和stageHeight是readonly,尽管有文档。但是如果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乘600?

  1. 您可以在xxx-app.xml文件中设置width和height属性
  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;
    
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top