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

FLASH AS3网站分辨率自适应StageScaleMode

发布时间:2020-12-15 17:54:18 所属栏目:百科 来源:网络整理
导读:控制舞台缩放比例 当调整呈现 Flash Player 或 AIR 的屏幕部分的大小时,Flash Player 或 AIR 会自动调整舞台内容来加以补偿。Stage 类的 scaleMode 属性可确定如何调整舞台内容。此属性可以设置为四个不同值,如 flash.display. StageScaleMode 类中的常量

控制舞台缩放比例

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

对于三个 scaleMode 值(StageScaleMode.EXACT_FITStageScaleMode.SHOW_ALLStageScaleMode.NO_BORDER),Flash Player 和 AIR 会缩放舞台的内容以使其容纳在舞台的边界内。这三个选项的不同之处在于确定执行缩放的方式:

  • StageScaleMode.EXACT_FIT 按比例缩放 SWF。

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

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

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

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

在制作FLASH全站的时候,有一些是必须要掌握的。舞台放大元件不变形,那是必须的。

只要在第一帧加上一句:stage.scaleMode=StageScaleMode.NO_SCALE???? 即可不变形。在帮助里可以得到舞台的这个属性更多的解释。这时,舞台始终是居中显示的。这对我们定位元件达到自适应是一个麻烦,因为X、Y轴的0坐标并不是在显示的最左上角,而是在舞台的左上角。而舞台是居中的,所以当元件的X、Y轴为0时,左上角还会空出一些位置。

我们必须让舞台左上角对齐:stage.align=StageAlign.TOP_LEFT? 同样,如果想右上角对齐或右下角对齐,可以查看它的帮助得到更多的信息。最后把FLASH插入到HTML中,记得宽高都设成100%。还有HTML的页边距也要设成0。切记!

AS3对舞台的改变有一个侦听事件:Event.RESIZE,当舞台大小发生改变时则触发这个事件。不明白欢迎留言,互相交流。


示例代码:使A、B、C、D四个矩形的MC使终保持位于浏览器的左上,右上,左下,右下
?
?? //不变形处理
?? stage.scaleMode=StageScaleMode.NO_SCALE
?? //左上角对齐
?? stage.align=StageAlign.TOP_LEFT
? //自定义一个函数来控制四个MC的位置
? function myfunction(){
? //A的位置
??? A.x=0
??? A.y=0
? //B的位置
?? B.x=stage.stageWidth-B.width
?? B.y=0
? //C的位置
?? C.x=0
?? C.y=stage.stageHeight-C.height
?? //D的位置
??? D.x=stage.stageWidth-D.width
??? D.y=stage.stageHeight-D.height
??? }
//对舞台的改变进行侦听
stage.addEventListener (Event.RESIZE,test);

function test (e:Event):void { //舞台改变时,重新设置MC的位置 myfunction (); } //设定MC位置 myfunction ()

(编辑:李大同)

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

    推荐文章
      热点阅读