【问题标题】:Flex app extends Sprite not using entire Browser width (Flash/Flex)Flex 应用扩展 Sprite 不使用整个浏览器宽度 (Flash/Flex)
【发布时间】:2009-02-22 13:19:15
【问题描述】:

我在 FlexBuilder 中完成了一个简单的 HelloWorld 应用程序。它只是一个扩展 Sprite 的简单类。在专用的 Flash 播放器中,SWF 会占据整个屏幕。然而,在 Firefox 中,无论是在 HTML 中还是单独在 Firefox 中,它都会显示在右侧。 有没有简单的治疗方法?

代码只是一个构造函数(其中 stage.stageWidth 和 stageHeight 被正确读取,奇怪),它将 TextField 添加到 Sprite 并将大小设置为 stage.stageWidth 和 stage.stageHeight。

编辑:无济于事,我尝试将构造函数的内容移动到 Event.ADDED_TO_STAGE 事件处理,但我认为整个调查线已经死了。

编辑:现在我知道 Theo 的答案是正确的,我找到了this link。不错!

【问题讨论】:

    标签: apache-flex flash firefox


    【解决方案1】:

    HTML Flash 嵌入

    首先确保您的嵌入标签没问题(宽度和高度设置为 100%,CSS 等)。这应该不是问题,但正如您所说,仅显示在浏览器中的 swf 也会出现错误。

    对齐

    检查您是否已在构造函数中将舞台对齐设置为左上角:

    stage.align = StageAlign.TOP_LEFT;
    

    缩放

    通常,如果您让 Flash 扩展您的整个应用程序,它可能看起来很难看(字体太大等)。最好的用途是将舞台缩放设置为“无缩放”并监听舞台 RESIZE 事件以缩放和定位需要它的对象。

    stage.scaleMode = StageScaleMode.NO_SCALE;
    stage.addEventListener(Event.RESIZE, stageResizeHandler);
    stageResizeHandler();
    

    还有类似(伪代码):

    private function stageResizeHandler(event:Event=null):void
    {
        backgroundShape.width = stage.stageWidth;
        backgroundShape.height = stage.stageHeight;
    
        footer.y = stage.stageHeight - footer.height;
    
    }
    

    【讨论】:

    • 很好,这行得通:stage.scaleMode = StageScaleMode.EXACT_FIT;感谢您的帮助!
    猜你喜欢
    • 2010-10-09
    • 2018-03-24
    • 1970-01-01
    • 2020-04-24
    • 1970-01-01
    • 2016-05-01
    • 2019-09-10
    • 2011-11-09
    • 2017-01-11
    相关资源
    最近更新 更多