用Bitmap/BitmapData 实现人物行走

原创 2011年01月20日 13:33:00

///////////////////////////////////////main.as

package flash023{

import flash.display.BitmapData;

import flash.geom.Rectangle;

import flash.display.Loader;

import flash.net.URLRequest;

import flash.display.Bitmap;

import flash.events.Event;

import flash.display.Sprite;

import flash.geom.Point;

//import flash023.JPEGMovieClip;

public class Main extends Sprite {

private var loader:Loader;

public function Main():void {

loader=new Loader;

loader.contentLoaderInfo.addEventListener(Event.COMPLETE ,onJPEGLoaderComplete);

try {

loader.load(new URLRequest("mode.jpg"));

} catch (_e:Error) {

trace(_e);

}

}

public function onJPEGLoaderComplete(_evt:Event):void {

var _bmp:Bitmap =_evt.target.content as Bitmap;

var main_bmd:BitmapData = _bmp.bitmapData.clone();

loader.unload();

createBmdArray(main_bmd);

}

public function createBmdArray(_bmd:BitmapData):void{

var posW:uint = _bmd.width / 6;

var posH:uint = _bmd.height / 8;

for (var _h:uint = 0; _h < 2; _h++) {

var _mc:JPEGMovieClip=new JPEGMovieClip;

_mc.x = Math.random()*900;

_mc.y = Math.random()*500;

addChild(_mc);

for (var _w:uint = 0; _w < 6; _w++) {

var _temp:BitmapData = new BitmapData(posW, posH);

var _rec:Rectangle = new Rectangle(1 + _w * posW, _h * posH, posW, posH);

_temp.copyPixels(_bmd,_rec,new Point());

_mc.pushFrame(_temp);

}

}

}

}

}

////////////////////////JPEGMovieClip.as

package flash023{

import flash.display.Bitmap;

import flash.display.BitmapData;

import flash.display.Sprite;

import flash.events.Event;

public class JPEGMovieClip extends Sprite {

private var bmd_array:Array;

private var total:uint;

private var current:uint;

private var bitmap:Bitmap;

private var d:int = 0;

public function JPEGMovieClip() {

this.scaleX = 0.5;

this.scaleY = 0.5;

bmd_array=new Array  ;

total=1;

current=0;

bitmap=new Bitmap;

addChild(bitmap);

addEventListener(Event.ENTER_FRAME,show_func);

}

public function get totalframes():uint {

return total;

}

public function get currentframe():uint {

return current + 1;

}

private function show_func(_evt:Event):void{

d++;

if(d==3){

current%= total;

bitmap.bitmapData=bmd_array[current++];

d = 0;

this.x +=5;

// this.y +=2;

if(this.x > 920){

if(this.y > 560){

this.y = 10;

}

this.x = -10;

}

}

}

public function pushFrame(_bmd:BitmapData):void{

bmd_array.push(_bmd);

total=bmd_array.length;

}

}

}

 

相关文章推荐

unity之人物行走的实现

在3D游戏中,人物的行走是非常频繁的。但也有很多种不同的方式。                  1:A,D键只控制旋转,W,S键控制向前进,还是向后退。适合第一人称的控制运动。       ...

Cocos2d-x 3.2 大富翁游戏项目开发-第十部分实现人物轮流行走

现在只能让我方角色行走,对手并没有行动,如何实现轮流行走呢? 有2种方法,一种是采用刷帧控制器在update进行,另一种采用消息机制的形式实现,我们尽量避免使用刷帧控制器。就采用第二种消息机制吧 ...

Bitmap序列化(将BitmapData保存为原生Binary/ByteArray),AS3保存图像的方法

当应用程序需要将位图图像保存到本地或发送到服务端时, 通常的方法是在发送数据前将图像通过PNG或JPEG编码。如果只是想保存位图图像,只要序列化BitmapData即可,将图像转换为JPEG/PNG是...

Flex 利用bitmap和bitmapData改变图片为黑白画

Bitmap类和BitmapData类

Bitmap类和BitmapData类    在影片中使用数字图像时会遇到两种不同类型的图形:位图和矢量图。Graphics类中提供了绘制矢量图的方法,对于位图,可以使用Loader类由外部导入,...
  • ppy909
  • ppy909
  • 2016年03月27日 19:12
  • 54

Bitmap 和 BitmapData 类

转自:http://help.adobe.com/zh_CN/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-...
  • zjhhust
  • zjhhust
  • 2012年10月07日 11:02
  • 211

Bitmap与BitmapData整理

Flex中Bitmap和BitmapData类的资料整理 源地址:http://www.javaeye.com/topic/676016

flex中针对Image、Bitmap、BitmapData相互转化

flex中针对Image、Bitmap、BitmapData的操作支持非常灵活,简单整理下: 1、  设置Image组件的source(指定图片路径)属性引入图片,当图片加载完成后,Image....

改写《魔塔》前篇03:点击按钮控制人物行走

这篇文章的代码与原书的代码会有一些不同的地方,因为我按照原书的方法进行编写后,运行会有内存访问冲突之类的错误。所以我进行了一些修改,在修改的地方我会进行指明。 首先我们看一下修改后的HelloWor...
  • jukai7
  • jukai7
  • 2013年03月30日 05:48
  • 1661
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用Bitmap/BitmapData 实现人物行走
举报原因:
原因补充:

(最多只允许输入30个字)