【问题标题】:Access stage from the "main" class“主”类的访问阶段
【发布时间】:2009-08-25 03:48:58
【问题描述】:

我有以下 ActionScript:

package {
    import flash.display.Sprite;

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

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

你如何从Application进入舞台?

【问题讨论】:

    标签: actionscript-3 mxmlc


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-10
      • 1970-01-01
      • 2016-09-01
      • 1970-01-01
      • 2012-12-09
      • 1970-01-01
      相关资源
      最近更新 更多