//by haiyibo 20081022 /*使用说明: 使用效果:1.使flash播放器窗口全屏 2.全屏后舞台属性的缩放设置 方法: var newScreen:SetScreen=new SetScreen();//定义控制屏幕的实例 newScreen.SetScale(stage,4); //设置舞台是否进行缩放 newScreen.SetFull(stage);//设置全屏时,因为FlashPlayer安全沙箱问题, 此句必须写在一个侦听器中执行,简单的说就是写在一个按纽的触发动作中.只有这样才能执行 */ package com{ import flash.display.*; import flash.geom.Rectangle; import flash.events.Event; //此类只用了一个 rightScale();在初始时根据网页窗口大小确定相应的缩放设置,全屏效果相同文件夹中FullScreen.as单独设置 public class SetScreen { private var _stage:Object; public function SetScreen(stage:Object){ _stage=stage; _stage.addEventListener(Event.RESIZE, resizeHandler);//当窗口改变大小时执行 rightScale();//这一句代码(在CS4版本中)放到上句代码上面,在初始化进,不执行,不知道什么原因. } //全屏设置 public function SetFull(){ //_stage为形参,传递stage if(_stage.displayState==StageDisplayState.NORMAL){ _stage.displayState = StageDisplayState.FULL_SCREEN; }else{ _stage.displayState = StageDisplayState.NORMAL; } } //退出全屏 public function SetNormal(){ if(_stage.displayState==StageDisplayState.FULL_SCREEN){ _stage.displayState = StageDisplayState.NORMAL; }else{ //不是全屏,不需要退出全屏状态 } } //注,如果同一个按纽控制"全屏"和"非全屏"状态下切换,将退出全屏的代码整合到全屏设置代码的else部分,即可。 /* StageScaleMode.EXACT_FIT -- 整个 Flash 应用程序在指定区域中可见,但不尝试保持原始高宽比。 可能会发生扭曲。 StageScaleMode.SHOW_ALL -- 整个 Flash 应用程序在指定区域中可见,且不发生扭曲,同时保持应用程序的原始高宽比。 应用程序的两侧可能会显示边框。 StageScaleMode.NO_BORDER -- 整个 Flash 应用程序填满指定区域,不发生扭曲,但有可能进行一些裁切,同时保持应用程序的原始高宽比。 Sta geScaleMode.NO_SCALE -- 整个 Flash 应用程序的大小固定,因此,即使播放器窗口的大小更改,它也会保持不变。 如果播放器窗口比内容小,则可能进行一些裁切。 */ //设置缩放形式 public function SetScale(N:Number=4){ //如果没有指定N的值,那么N为默认值4 switch (N) { case 1: _stage.scaleMode=StageScaleMode.EXACT_FIT; break; case 2: _stage.scaleMode=StageScaleMode.SHOW_ALL; break; case 3: _stage.scaleMode=StageScaleMode.NO_BORDER; break; case 4: _stage.scaleMode=StageScaleMode.NO_SCALE; break; default: trace("屏幕缩放形式参数设置有错误,范围在1-4"); break; } } //resize private function resizeHandler(event:Event):void { rightScale(); } private function rightScale():void{//相适应的缩放比例 trace("stageWidth: " + _stage.stageWidth + " stageHeight: " + _stage.stageHeight); if(_stage.stageHeight<780){ //判断屏幕大小进行缩放设置 SetScale(2); }else{ SetScale(4); } } } }