【问题标题】:Missing Class EventResize缺少类事件调整大小
【发布时间】:2015-12-12 01:05:27
【问题描述】:

我使用的是 AS3 Flex 4.6.0 / Air 3.1,但我找不到 ResizeEvent

我添加了以下代码:

stage.addEventListener(Event.RESIZE, onStageResize);

又想拥有这个功能

private function onStageResize(ev:Event) : void //Here i want to use ev:ResizeEvent instead of ev:Event
{

}

我需要ev.OldWidthev.OldHeight 属性,但我不知道为什么我不能使用

 import flash.event.ResizeEvent;

有人有想法吗? 谢谢!

【问题讨论】:

  • import mx.events.ResizeEvent 虽然我认为舞台不会调度它 - 只有弹性组件。

标签: actionscript-3 apache-flex air flex4


【解决方案1】:

Event.RESIZE 的导入是:

import flash.events.Event

请记住,只有在设置了 StageScaleMode.NO_SCALE 时才会触发该事件。

package {

    import flash.display.Sprite;
    import flash.display.StageScaleMode;
    import flash.events.Event

    public class Main extends Sprite {

        var swfWidthPrev:int;
        var swfHeightPrev:int;

        function resizeDisplay(event:Event):void
        {
            trace("~~~ resize event ~~~");
            trace("swfWidthPrev: " + swfWidthPrev);
            trace("swfHeightPrev: " + swfHeightPrev);
            trace("swfWidthCur: " + stage.stageWidth);
            trace("swfHeightCur: " + stage.stageHeight);
            swfWidthPrev = stage.stageWidth;
            swfHeightPrev = stage.stageHeight;
        }

        public function Main() {
            if(stage){
                stageReady();
            }else{
                this.addEventListener(Event.ADDED_TO_STAGE, stageReady);
            }
        }

        private function stageReady(e:Event = null):void {
            swfWidthPrev = stage.stageHeight;
            swfHeightPrev = stage.stageWidth;
            stage.scaleMode = StageScaleMode.NO_SCALE
            stage.addEventListener(Event.RESIZE, resizeDisplay);
        }
    }
}

【讨论】:

  • 感谢您的信息和代码!我会像上图那样做,
猜你喜欢
  • 1970-01-01
  • 2012-04-23
  • 2011-01-13
  • 2019-02-01
  • 2022-10-01
  • 2015-10-04
  • 2020-03-07
  • 2014-04-06
  • 2011-07-24
相关资源
最近更新 更多