import flash.display.BitmapData; import flash.display.Sprite; import flash.display.Bitmap; var bd:BitmapData = new BitmapData(20,20,false,0); for (var i:int=0; i<10; i++) { bd.setPixel(i,0,0xff0000); } for (i=10; i<20; i++) { bd.setPixel(i,0,0x00ff00); }
//位图数据的两种显示方式 。给Bitmap或 beginBitmapFill var bitmap:Bitmap = new Bitmap(bd); addChild(bitmap); bitmap.x = 10; bitmap.y = 10; var sp:Sprite=new Sprite(); sp.graphics.beginBitmapFill(bd); sp.graphics.drawRect(0,0,100,100); sp.graphics.endFill(); addChild(sp); sp.x = stage.stageWidth / 2 - sp.width / 2; sp.y = stage.stageHeight / 2 - sp.height / 2;
图形简单,同屏数量不多,渐变色少,移动设备(GPU支持),适用
MC矢量渲染。
图形复杂,同屏数量多,颜色复杂,适用位图渲染。
最新的FlashPlayer已针对位图进行过优化,直接移动bitmap比自己编
写copyPixel效率要高。
MC大量占用内存,而如果是相同的数据,无论对象有多少个,位图渲
染基本不会增加内存。
针对自己的游戏项目,选择一款适合自己的渲染方法,才是正确的做
法。
******************矢量渲染优化********************
cacheAsBitmap
MC不会发生旋转、缩放、变形等,只改变XY坐标
mouseChildren
关闭MC子级的鼠标及键盘相应事件
mouseEnabled
关闭MC本身的鼠标及键盘相应事件
浙公网安备 33010602011771号