令物体沿着指定路径运动[as3版]


*在舞台中有一个名为fk的movieclip和一个名为line的movieclip。




这是运行之后的效果。


以上程序按着原闪吧文章的思路用as3实现了一遍。


import flash.display.BitmapData;
import flash.geom.Rectangle;
import flash.geom.Point;
import flash.events.MouseEvent;
import flash.events.Event;
import flash.geom.Matrix;
import crawlingtosea.methods.Tick;
import crawlingtosea.events.TickEvent;

var rect:Rectangle=line.getBounds(this);

var bitmapdata:BitmapData=new BitmapData(rect.width,rect.height,false,0);
bitmapdata.draw(line);

var pa:Array=pa?pa:[];

var w:uint=rect.width;
var h:uint=rect.height;

trace(rect);
for(var i:int=0;i<w;i++){
	for(var j:int=0;j<h;j++){
		if(bitmapdata.getPixel(i,j)==Number(0x660000))
		{
			pa.push(new Point(i+rect.x,j+rect.y));
		}
	}
}
trace(pa[0]);
fk.x=pa[0].x;
fk.y=pa[0].y;
//trace(bitmapdata.getPixel(0,50));
//trace(pa)
var tick:Tick=new Tick(1,10);
stage.addEventListener(MouseEvent.CLICK,onClick);
function onClick(e:MouseEvent):void{
	stage.removeEventListener(MouseEvent.CLICK,onClick);
	trace("onClick");
	tick.addEventListener(TickEvent.TICK,onTick);
}

function onTick(e:Event):void{
	fk.x=pa[0].x;
	fk.y=pa[0].y;
	pa.shift();
		  
	if(pa.length==0)
	{
		tick.stop();
		trace("over");
	}
}



其原理是利用bitmapdata的getpixel得到路径所有的坐标值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值