1

我有以下动作脚本:

package {
    import flash.display.Sprite;

    public class Application extends Sprite {
        public function Application(){
            width=1000;
            height=500;
        }
    }
}

我用mxmlc Application.as. 我注意到的是 Application 不是舞台对象,就像我想象的那样,因为舞台的宽度和高度没有改变。

你如何进入舞台Application

4

1 回答 1

1

您巧妙地误解了“舞台”的含义。阶段是对 Flash 必须使用的显示区域的最低级别的引用,因此它的大小最终由Flash 正在执行的容器决定。

因此,当您在独立的 Flash 播放器中查看内容时,要调整舞台大小,您会调整播放器本身的大小,并且当您查看嵌入在 HTML 页面中的内容时,只有当浏览器更改嵌入 Flash 元素的大小时,舞台才会调整大小进入(例如,通过 Javascript)。同样,如果您的闪存嵌入到 .NET 应用程序中,则 .NET 逻辑可以控制舞台的大小,等等。

由于这些原因,通常不可能从应用程序逻辑中调整阶段的大小,除非容器公开了一种方法来做到这一点。大多数浏览器确实通过 JavaScript 公开了此类功能,因此在浏览器中,您通常可以通过调用 JS 挂钩来更改 Flash 嵌入元素的大小来调整舞台大小。相比之下,独立播放器没有公开此类挂钩,因此无法调整舞台大小(当然,您可以切换全屏除外)。

作为旁注,正如 Joel Hooks 指出的那样,您可以在您的项目中包含以下形式的声明:[SWF(width=1000,height=500)]. 这会导致编译的 SWF 包含规定大小的元数据。然而,该元数据只是一个建议,是否接受它完全取决于容器。独立播放器将尊重此类元数据(对于初始容器大小),但浏览器将完全忽略它。

于 2009-08-25T06:28:04.987 回答