actionscript 怎么让背景图片适应浏览器的分辨率?

来源:百度知道 编辑:UC知道 时间:2024/06/07 20:24:31
Stage.scaleMode = "noScale";
Stage.align = "TL";
//
myListenerload = new Object ();
myListenerload.onResize = function () {
//
addBackground ();
};
Stage.addListener (myListenerload);
myListenerload.onResize ();
//
function addBackground () {
//
tileBackgroundWidth = 1000;
tileBackgroundHeight = 650;
//
maximumX = Stage.width / tileBackgroundWidth;
maximumY = Stage.height / tileBackgroundHeight;
//
for (a = 0; a < maximumX; a++) {
for (b = 0; b < maximumY; b++) {
backgroundProps = this.attachMovie ("fill_image", "backgroundProps" + a + b, this.getNextHighestDepth ());
backgroundProps._x = tileBackgroundWidth;
backgroundProps._y = tileBackgroundHeight;
}
}
//
filter = this.attachMovie ("filter_for_image", "filter", this.getNextHighestDepth ());
filter._x = 0

首先要实现覆盖浏览器的分辨率第一步需要网页上插入swf时进行特殊处理,普通插入的SWF是有边框的,不会满浏览器
推荐用一个叫做 swfobject.js的JS脚本来插入FLASH具体方法见
http://farthinker.cn/documents/swfobject-2-documentation/
这样就能实现FLASH铺满页面,并且去除SWF在XP SP2系统下的虚线边框

其次,如果想实现FLASH里面的背景铺满页面,则需要调整FLASH里面背景MC的大小
因为你制作FLASH时候不可能知道所有的浏览器的分辨率,所以,你可以先指定一个场景大小,比如800*600,然后通过对stage大小的侦测,动态的调节那个背景MC的大小,比如制作时候场景大小为800*600,背景实例名为mc,则在帧上加动作

stop();
Stage.scaleMode = "noScale";//不自动缩放场景,因为除了背景MC会被自动缩放外,其他所有场景中的实例都会被缩放。
CS();//初始化mc大小,使刚打开时mc铺满全屏幕
var myListener:Object = new Object();//新建监听器对象
myListener.onResize = function () {//监听大小改变事件
CS();
}
function CS(){
mc._x=-(Stage.width-800)/2;//通过原来的Stage宽度,与现在的Stage宽度比较,计算得出,屏幕最左上角的绝对坐标
mc._y=-(Stage.height-600)/2;//同上
mc._width=Stage.width;//铺满全屏幕
mc._height=Stage.height;//同上
}
Stage.addListener