FLASH8新技术实现横向卷轴

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

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打开。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航