as3——影片的缩放,检测显示设置(转)

使用stage.scaleMode属性可以控制影片适应播放器,包括缩放。
    当播放器的尺寸变化时,有不同的缩放模式控制影片的缩放。模式定义成下列字符串:exactFit, noBorder, noScale, 和 showAll。然而,为了避免打字的错误,这些字符串当作静态属性:EXACT_FIT, NO_BORDER, NO_SCALE, 和SHOW_ALL定义在flash.display.StageScaleMode类中。
    flash播放器默认的缩放showAll模式。这种模式下,flash影片会在影片的初始比例缩放以适应播放器的尺寸。如果播放器的外观比例和影片的外观比例不一致会使影片出现边框。在主要的程序中设置影片为showAll模式格式如下(不要忘记置入flash.display.StageScaleMode类)
stage.scaleMode = StageScaleMode.SHOW_ALL;
    注意stage不是一个全局对象,而是任何一个可视化对象的一个属性,因此这个语句仅仅适用于sprite或可视化类的扩展类。
    noBorder模式缩放影片适应播放器会保持原来的外观比例;当然,它会强制播放器显示没有边框的场景。如果播放器的外观比例和影片比例不一致,在边缘的影片的一部分会被切割掉。设置影片为noBorder模式:
stage.scaleMode = StageScaleMode.NO_BORDER;
    exactFit模式缩放影片适应播放器,它会改变影片的外观比例,如果必须,会匹配播放器。结果是影片总是恰好充满播放器,但是影片的元素可能会变形:
stage.scaleMode = StageScaleMode.EXACT_FIT;
    在noScale模式中影片不能缩放,它会保持原来的尺寸和外观比例而不管场景的尺寸。使用noScale模式不要忘记设置影片的对齐排列。
stage.scaleMode = StageScaleMode.NO_SCALE;
    scaleMode属性的值不会阻止用户通过右键菜单缩放影片。然而,你可以关闭菜单中的那些选项。


用system.capabilities对象的screenResolutionX和screenResolutionY 属性可以得知影片运行的显示设置。
你可以利用flash.system.Capabilities对象确定正在运行影片的设备的显示设置。screenResolutionX 和 screenResolutionY 属性返回显示的像素。
// Example output:
// 1024
// 768
trace(flash.system.Capabilities.screenResolutionX);
trace(flash.system.Capabilities.screenResolutionY);
    利用这些值决定如何显示一个影片,或载入哪一个影片。这些判定对于许多支持flashplayer的手持设备日益重要。比如,手机的荧屏尺寸和电脑的桌面显示是不同的,因此需要根据播放设备载入不同的内容。
var resX:int = flash.system.Capabilities.screenResolutionX;
var resY:int = flash.system.Capabilities.screenResolutionY;

// If the resolution is 240 x 320 or less, then load the PocketPC
// movie version. Otherwise, assume the device is a desktop computer
// and load the regular content.
if ( (resX <= 240) && (resY <= 320) ) {
  var url:String = "main_pocketPC.swf";
}
else {
  var url:String = "main_desktop.swf";
}
loader.load(new URLRequest(url));
    也可以利用荧屏的分辨率中心弹出一个浏览器窗口。
var resX:int = flash.system.Capabilities.screenResolutionX;
var resY:int = flash.system.Capabilities.screenResolutionY;

// Set variables for the width and height of the new browser window.
var winW:int = 200;
var winH:int = 200;

// Determine the X and Y values to center the window.
var winX:int = (resX / 2) - (winW / 2);
var winY:int = (resY / 2) - (winH / 2);

// Create the code that, when passed to URLLoader.load(  )
// opens the new browser window.
var jsCode:String = "javascript:void(
         newWin=window.open('http://www.person13.com/'," +
         "'newWindow', 'width=" + winW +
         ", height=" +  winH + "," +
         "left=" + winX + ",top=" + winY + "'));";

// Call the JavaScript function using a URLLoader object
urlLoader.load(new URLRequest(jsCode));
    另外,也可以考虑根据荧屏的分辨率大小是否缩放影片。例如,当用户分辨率设置较高,像1600×1200,有些字体会显示的太小。

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ecitnet/archive/2008/01/24/2063261.aspx

转载于:https://www.cnblogs.com/wtmzy/archive/2009/06/23/1509616.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值