我们可以在运行时更改舞台大小吗?
当swf从html页面收到flashvar时,我需要在运行时动态地更改舞台的大小。可以这样做吗?
答案 0 :(得分:3)
如果您调整HTML中<object>
/ <embed>
元素的大小,则会调整SWF的舞台大小。
然而,除非您指定在AS3中没有缩放,否则SWF的内容将缩放:
stage.scaleMode = StageScaleMode.NO_SCALE;
使用可扩展的SWF时,同样重要的是要注意,默认情况下,导出的舞台尺寸将始终位于调整大小的区域中心,例如
当从调整大小的区域的左上角测量所有内容时,我发现更容易,这也可以通过添加它来完成:
stage.align = StageAlign.TOP_LEFT;
答案 1 :(得分:0)
可以使用flash.external.ExternalInterface
if (ExternalInterface.available) {
ExternalInterface.call('JSResizeBlockFunction');
}
JSResizeBlockFunction应该是在与运行swf相同的页面上的顶级定义的javascript函数。
在此功能中,您应该更改包含<object>
/ <embed>
的div的大小。
但是你的页面上的swf应该有百分比的大小来接收RESIZE事件。