flash背景平铺

其实有很多方法实现,这里就按播放器的版本从低到高的实现方法来说好了:

1.载入位图后duplicateMovieClip
如果播放器必须发布成<=7,就只能使用以下方法,原理就是载入一张位图,然后遍历duplicateMovieClip到舞台上。

var w = Stage.width;
var h = Stage.height;
var a:Number = Math.floor(w/img_width);
var b:Number = Math.floor(h/img_height);
for (var i:Number = 0; i<=b; i++) {
for (var j:Number = 0; j<=a; j++) {
bg_mc.duplicateMovieClip("bg_"+i+"_"+j, bg_mc.getNextHighestDepth(), {_x:j*img_width, _y:i*img_height});
}
}
2.载入位图draw后,生成bitmap平铺。
如果播放器可以发布成8,就可以使用以下方法。其实原理和1差不多,不过8开始引入了Bitmap,因为平铺的是bitmap,所以肯定比1更节约资源。

var bmpData:BitmapData = new BitmapData(img_width, img_height);
bmpData.draw(img_target);
for(var i:Number = 0;i<Math.ceil(h/img_height);i++)
{
for(var j:Number = 0;j<Math.ceil(w/img_width);j++)
{
var bmp:Bitmap = new Bitmap(bmpData);
bmp.y = img_height*i;
bmp.x = img_width*j;
}
}
3.载入位图draw后,通过位图填充功能填充graphic子对象。
如果播放器可以发布成9,就可以使用以下方法。9开始引入了位图填充,所以根本不用考虑什么平铺,直接就和Photoshop里的自定义图案填充一样方便。

var bmpData:BitmapData = new BitmapData(img_width, img_height);
bmpData.draw(img_target);
var graphic:Graphics = shell.graphics;
graphic.beginBitmapFill(bmpData);
graphic.drawRect(0,0,w,h);
graphic.endFill();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值