控制舞台缩放比例
当调整呈现 Flash Player 或 AIR 的屏幕部分的大小时,Flash Player 或 AIR 会自动调整舞台内容来加以补偿。Stage 类的scaleMode属性可确定如何调整舞台内容。此属性可以设置为四个不同值,如 flash.display.
在制作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
()