[url]http://bbs.9ria.com/viewthread.php?tid=72702&extra=page%3D1%26amp;orderby%3Ddateline%26amp;filter%3D86400[/url]
内附fb4的工程,可以用上下左右来控制人物的走动。
写的不是很好,第一次丢东西上来和大家分享,大家多多拍砖吧。
内附fb4的工程,可以用上下左右来控制人物的走动。
写的不是很好,第一次丢东西上来和大家分享,大家多多拍砖吧。
package
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Loader;
import flash.events.Event;
import flash.events.EventDispatcher;
import flash.geom.Point;
import flash.geom.Rectangle;
import flash.net.URLRequest;
/**
* 基础位图人模
* @author Administrator
*
*/
public class BasePeopleModel extends EventDispatcher
{
private var l:Loader;
private var bitmapArr:Array;
private var bitmap:Bitmap;
public var status:uint;
private var index:uint;
public var thisbitmapdata:BitmapData;
//
private var stand0Arr:Array;
private var stand2Arr:Array;
private var walk0Arr:Array;
private var walk1Arr:Array;
private var walk2Arr:Array;
private var walk3Arr:Array;
private var walk4Arr:Array;
public var locX:uint;
public var locY:uint;
private var MAX_FRAMES:uint = 8; //6帧加一帧
private var frames:uint; //帧频控制
public function BasePeopleModel()
{
l=new Loader();
stand0Arr = new Array();
stand2Arr = new Array();
walk0Arr = new Array();
walk1Arr = new Array();
walk2Arr = new Array();
walk3Arr = new Array();
walk4Arr = new Array();
}
public function init():void
{
l.contentLoaderInfo.addEventListener(Event.COMPLETE , onHandler);
l.load(new URLRequest("../peopleRes.png"));
}
private function onHandler(e:Event):void
{
var bdd:BitmapData = (l.content as Bitmap).bitmapData;
for(var i:int=0;i<6;i++)
{
var bd:BitmapData = new BitmapData(54,94);
bd.copyPixels(bdd,new Rectangle(i*54,0,54,94),new Point(0,0));
stand0Arr.push(bd);
}
for(var i:int=0;i<6;i++)
{
var bd:BitmapData = new BitmapData(54,94);
bd.copyPixels(bdd,new Rectangle(i*54,94,54,94),new Point(0,0));
stand2Arr.push(bd);
}
//
for(var i:int=0;i<8;i++)
{
var bd:BitmapData = new BitmapData(50,98);
bd.copyPixels(bdd,new Rectangle(i*50,200,50,98),new Point(0,0));
walk0Arr.push(bd);
bd = new BitmapData(50,98);
bd.copyPixels(bdd,new Rectangle(i*50,300,50,98),new Point(0,0));
walk1Arr.push(bd);
bd = new BitmapData(50,98);
bd.copyPixels(bdd,new Rectangle(i*50,400,50,98),new Point(0,0));
walk2Arr.push(bd);
bd = new BitmapData(50,98);
bd.copyPixels(bdd,new Rectangle(i*50,500,50,98),new Point(0,0));
walk3Arr.push(bd);
bd = new BitmapData(50,98);
bd.copyPixels(bdd,new Rectangle(i*50,600,50,98),new Point(0,0));
walk4Arr.push(bd);
}
dispatchEvent(new Event(Event.COMPLETE));
}
public function onUpdate(xx:Number,yy:Number):void
{
locX = uint(xx);
locY = uint(yy);
frames++;
if(frames < MAX_FRAMES)
{
return;
}
else
{
frames = 0;
}
index ++;
if(status <5)
{
if(index < 8)
{
}
else
{
index = 0;
}
}
else
{
if(index < 6)
{
}
else
{
index = 0;
}
}
switch(status)
{
case 0:
thisbitmapdata = walk0Arr[index] as BitmapData;
break;
case 1:
thisbitmapdata = walk1Arr[index] as BitmapData;
break;
case 2:
thisbitmapdata = walk2Arr[index] as BitmapData;
break;
case 3:
thisbitmapdata = walk3Arr[index] as BitmapData;
break;
case 4:
thisbitmapdata = walk4Arr[index] as BitmapData;
break;
case 5:
thisbitmapdata = stand0Arr[index] as BitmapData;
break;
case 6:
thisbitmapdata = stand2Arr[index] as BitmapData;
break;
}
}
}
}