日期:2013-12-18  浏览次数:20626 次

  7以前,FLASH游戏,遇到大位图的背景挪动明显会显的比较费劲,会占用比较多的CPU资源。而且在控制挪动速度方面也非常的困难。好一点的处理办法是把位图分割成小块,然后分块挪动,但也是非常的麻烦。

  好在8里提供了BitmapData对象,利用这个对象,为这一问题提供了很好的处理方案。当熟练使用该对象当前,无论多么大的位图都可以流畅的显示出来。

  Flash7和Flash8的大位图挪动方式:点击这里下载源文件

  当然目前的版本非常的简单,只要一个方向的挪动方式,且不支持动态控制速度。(类似双截龙一样的卷轴背景),但一旦你对这些代码理解当前,置信做起来并不难。
这个组件的代码非常简单。

import flash.display.BitmapData;
import flash.geom.Rectangle;
import flash.geom.Point;
logo = flash.display.BitmapData.loadBitmap(pic);
w1= logo.width;
h1= logo.height;
th=h1-h; //th就是要显示的区域的最左上角纵坐标,灵活的控制它的大小可以实现对背景的控制
this.createEmptyMovieClip("holder_mc",1);
var bitmap_1= new BitmapData(w, h , false, 0xFFFFFFFF );
holder_mc.attachBitmap(bitmap_1 ,1);
this.onEnterFrame = function()
 {
  th -=sco;
  if (th<0) {
   sco=0;
   th=0;
  }
 bitmap_1.copyPixels(logo, new Rectangle(0, th, w, h), new Point(0, 0));
// 最次要的就是该句的作用,它的作用是在bitmap_1内填充一个矩形,而矩形区域的颜色来自logo的一个矩形区域,该矩形区域的横坐标为0,高坐标为th,宽为w,高为h.
}

  提示,该组件同样支持拉伸和旋转。希望这个技巧可以帮到大家 以上文件请使用FLASH8.0打开。