加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flash as3 获取文档场景大小(注意不是舞台)

发布时间:2020-12-15 18:13:45 所属栏目:百科 来源:网络整理
导读:通过测试 this.width1367;stage.stageWidth1366;getrect(x=-1,?y=-1,?w=1367,?h=401);globalToLocal(x=0,?y=0);localToGlobal(x=0,?y=0);this.loaderInfo.width550;this.loaderInfo.content.stage.width1367;this.loaderInfo.content.width1367 根据浏览器缩

通过测试

this.width1367;stage.stageWidth1366;getrect(x=-1,?y=-1,?w=1367,?h=401);globalToLocal(x=0,?y=0);localToGlobal(x=0,?y=0);this.loaderInfo.width550;this.loaderInfo.content.stage.width1367;this.loaderInfo.content.width1367


根据浏览器缩放情况来观察

this.width838.55;stage.stageWidth747;getrect(x=-1,?w=838.55,?y=0);this.loaderInfo.width550;this.loaderInfo.content.stage.width838.55;this.loaderInfo.content.width838.55
this.width838.55;stage.stageWidth747;getrect(x=-1,?y=0);this.loaderInfo.width550;this.loaderInfo.content.stage.width838.55;this.loaderInfo.content.width838.55
this.width840.1;stage.stageWidth1366;getrect(x=-1,?w=840.1,?y=0);this.loaderInfo.width550;this.loaderInfo.content.stage.width840.1;this.loaderInfo.content.width840.1

舞台是变化,但是并没有影响元件本身大小

它应该是使用this.loaderInfo.width来得到.


flash?手册

控制舞台缩放比例

当调整?Flash?Player?屏幕的大小时,Flash?Player?会自动调整舞台内容来加以补偿。Stage?类的?scaleMode属性可确定如何调整舞台内容。此属性可以设置为四个不同值,如?flash.display.StageScaleMode类中的常量所定义。?

对于?scaleMode的三个值(StageScaleMode.EXACT_FIT、StageScaleMode.SHOW_ALL和?StageScaleMode.NO_BORDER),Flash?Player?将缩放舞台的内容以容纳在舞台边界内。三个选项在确定如何完成缩放时是不相同的。

  • StageScaleMode.EXACT_FIT?按比例缩放?SWF。?

  • StageScaleMode.SHOW_ALL?确定是否显示边框(就像在标准电视上观看宽屏电影时显示的黑条)。?

  • StageScaleMode.NO_BORDER?确定是否可以部分裁切内容。?

或者,如果将?scaleMode设置为?StageScaleMode.NO_SCALE,则当查看者调整?Flash?Player?窗口大小时,舞台内容将保持定义的大小。仅在缩放模式中,Stage?类的?width和?height属性才可用于确定?Flash?Player?窗口调整大小后的实际像素尺寸。(在其它缩放模式中,stageWidth和?stageHeight属性始终反映的是?SWF?的原始宽度和高度。)此外,当?scaleMode设置为?StageScaleMode.NO_SCALE并且调整了?SWF?文件大小时,将调度?Stage?类的?resize事件,允许您进行相应地调整。

因此,将?scaleMode设置为?StageScaleMode.NO_SCALE可以更好地控制如何根据需要调整屏幕内容以适合窗口大小。例如,在包含视频和控制栏的?SWF?中,您可能希望在调整舞台大小时控制栏的大小保持不变,而仅更改视频窗口大小以适应舞台大小的更改。以下示例中演示了这一点:


按照这个说法,设置NO_SCALE,放置全局变量然后resize后更新,这是一个比较好的方式

????????????this.stage.addEventListener(Event.RESIZE,?_stageResize);

private?function?_stageResize(e)?{
????????????_SW?=?stage.width;
????????????_SH?=?stage.height;
????????????errorTip('sw'?+?_SW?+?';'?+?stage.stageWidth)
????????}


测试结果:

sw1367;747
sw1367;747
sw1367;691
sw1367;635
sw1367;550

由此,这时可以使用stageWidth来获取实际大小

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读