Stage.RESIZE:是否可以在浏览器中运行此示例?

时间:2016-04-25 11:46:16

标签: actionscript-3 browser resize local

是否可以在浏览器中运行这个简单的代码? 在.swf中所有似乎都工作正常,但我无法在浏览器中调整.swf的大小... 该阶段未在HTML页面中调整大小。 通过.swf flile,它就像一个魅力。 有人对这个问题有所了解吗?

package com{
    import flash.display.Graphics;
    import flash.display.MovieClip;
    import flash.display.Stage;
    import flash.display.StageAlign;
    import flash.display.StageQuality;
    import flash.display.StageScaleMode;
    import flash.events.Event;
    import flash.text.TextField;

public class Main extends MovieClip{
    private static const ORANGE:int = 0xff9900;
    var bg:MovieClip;
    var bg_mask:MovieClip;
    var marginx:int = 10;
    var marginy:int = 10;
    var display:MovieClip;
    var displayTextField:TextField;
    var ellipseWidth:int = 90;
    var ellipseHeight:int = 90;
    public function Main(){
        super();
        bg = new MovieClip();
        bg_mask = new MovieClip();
        display = new MovieClip();
        displayTextField = new TextField();
        this.addChild(bg);
        this.addChild(bg_mask);
        this.addChild(display);
        this.display.addChild(displayTextField);
        displayTextField.text = "";
        displayTextField.x = ellipseWidth/Math.PI;
        displayTextField.y = ellipseHeight/Math.PI;
        stage.align = StageAlign.TOP_LEFT;  // or StageAlign.TOP
        stage.scaleMode = StageScaleMode.NO_SCALE;
        drawBackground();
        display.mask = bg_mask;
        addListeners();
    }
    private function drawBackground(thickness:int=1,lineColor:int=0x000000,lineAlpha:Number=0.5,fillColor:int=ORANGE,fillAlpha:Number=0.5):void{
        var g:Graphics = bg.graphics;
        g.clear();
        g.lineStyle(thickness,lineColor,lineAlpha);
        g.beginFill(fillColor,fillAlpha);
        g.drawRoundRect(marginx,marginy,this.stage.stageWidth-marginx*2,this.stage.stageHeight-marginy*2,ellipseWidth,ellipseHeight);
        g.endFill();
    }
    private function drawMask():void{
        var g:Graphics = bg_mask.graphics;
        g.clear();
        g.lineStyle(1,0x000000,0.3);
        g.beginFill(0xcccccc,0.1);
        g.drawRoundRect(marginx,marginy,this.stage.stageWidth-marginx*2,this.stage.stageHeight-marginy*2,90,90);
        g.endFill();
    }
    private function addListeners():void{
        stage.addEventListener(Event.ADDED,updateLabel);
        stage.addEventListener(Event.RESIZE,updateLabel);
    }
    private function updateLabel(e:Event):void{
        updateDisplay();
        drawBackground();
        drawMask();
    }
    private function updateDisplay():void{
        var tf:TextField = displayTextField;
        tf.text = ("{" + this.stage.stageWidth + ";" + this.stage.stageHeight + "}");
    }
}

}

1 个答案:

答案 0 :(得分:2)

在在线上下文中,Flash文档包含在HTML父元素(object / embed)中。

您的AS3代码控制如何在该元素中显示您的Flash内容。除了它的容器之外,它什么都不知道。

很可能,您的问题是HTML容器。如果它具有固定的大小,那么无论你在AS3中做什么,它都不会扩展到它的容器之外。

尝试为您的HTML容器提供流体尺寸(例如,100%宽度,100%高度)以及任何祖父母html元素,以使您的尺寸更具动感。

相关问题