在AS3中运行时更改舞台大小

时间:2012-03-23 05:15:54

标签: actionscript-3

我们可以在运行时更改舞台大小吗?

当swf从html页面收到flashvar时,我需要在运行时动态地更改舞台的大小。可以这样做吗?

2 个答案:

答案 0 :(得分:3)

如果您调整HTML中<object> / <embed>元素的大小,则会调整SWF的舞台大小。

然而,除非您指定在AS3中没有缩放,否则SWF的内容将缩放:

stage.scaleMode = StageScaleMode.NO_SCALE;

使用可扩展的SWF时,同样重要的是要注意,默认情况下,导出的舞台尺寸将始终位于调整大小的区域中心,例如

enter image description here

当从调整大小的区域的左上角测量所有内容时,我发现更容易,这也可以通过添加它来完成:

stage.align = StageAlign.TOP_LEFT;

答案 1 :(得分:0)

可以使用flash.external.ExternalInterface

if (ExternalInterface.available) {
    ExternalInterface.call('JSResizeBlockFunction');
}

JSResizeBlockFunction应该是在与运行swf相同的页面上的顶级定义的javascript函数。

在此功能中,您应该更改包含<object> / <embed>的div的大小。 但是你的页面上的swf应该有百分比的大小来接收RESIZE事件。