使用actionscript 3.0调整窗口大小
-
05-07-2019 - |
题
有没有办法使用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?
- 您可以在xxx-app.xml文件中设置width和height属性
- 如果要动态执行此操作,可以使用FlexGlobals.topLevelApplication.width和height属性或不推荐使用的Application.application.width和height属性
-
或者如果你有一个纯粹的ActionScript项目,你不能做FlexGlobals或Application,你可以从你的主要动作脚本文件(Sprite)执行以下操作(注意在执行此操作之前必须初始化阶段)
width = WIDTH; height = HEIGHT; stage.stageWidth = WIDTH; stage.stageHeight = HEIGHT; stage.nativeWindow.width = WIDTH; stage.nativeWindow.height = HEIGHT;
醇>