2007年1月17日星期三

3.6.缩放影片


3.6. 缩放影片

问题
我想让影片适应屏幕大小
解决办法
使用 stage.scaleMode 属性
讨论

这里有几种缩放模式:exactFit, noBorder, noScale, 和 showAll。为了避免编写上错误,这些字符串都成为了flash.display.StageScaleMode 类的静态属性:EXACT_FIT, NO_BORDER, NO_SCALE, 和 SHOW_ALL.
Flash 播放器默认的缩放模式是showAll。这种模式会按照影片原始比例进行缩放以适应播放器大小。这样如果播放器的比例和影片的比例不一致就会导致电影边框的出现。设置应用程序的缩放模式:
stage.scaleMode = StageScaleMode.SHOW_ALL;
注意到 stage 并不是个全局对象,但是它是任何可视化对象的一个属性,因此这个语句在sprite类或继承自 DisplayObject 类里都可以。
noBorder 模式在保持原始比例下进行缩放以适应播放器,但是,如果播放器和影片比例不匹配,影片显示不下的会被剪切掉,使用下面的语句设置:
stage.scaleMode = StageScaleMode.NO_BORDER;
exactFit 模式缩放影片适应播放器,它改变了电影原始比例,如果必要,它会匹配播放器,这样电影总是填充整个播放器,但是这样电影中的元素可能会扭曲,代码如下:
stage.scaleMode = StageScaleMode.EXACT_FIT;
noScale 模式即不进行缩放,保持原始比例。使用该模式不要忘了设置对齐方式(看 3.7 节):
stage.scaleMode = StageScaleMode.NO_SCALE;
scaleMode 属性值并不影响右键菜单里功能,不过你可以禁用菜单里的缩放功能,看3.8 节。


没有评论: