只是为了自己备份下写过的功能而已,如果谁有兴趣也可以去checkout下来.注释和文档很完整的.
名叫astrois,会不断更新:
http://code.google.com/p/astrois/
IE支持在线文档地址:
http://astrois.googlecode.com/svn/trunk/docs/index.html
Archive for December, 2008
搞了一个as3的开源项目到google code上
Wednesday, December 24th, 2008flash里的背景平铺
Monday, December 1st, 2008其实有很多方法实现,这里就按播放器的版本从低到高的实现方法来说好了:
1.载入位图后duplicateMovieClip
如果播放器必须发布成<=7,就只能使用以下方法,原理就是载入一个swf,它的库里有个包含linkID的位图movieclip,attachMovie后遍历duplicateMovieClip到舞台上。
- var a:Number = Math.floor(Stage.width / img_width);
- var b:Number = Math.floor(Stage.height / 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();