加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

自己看的傻瓜笔记:循环中前后两者相差

发布时间:2020-12-15 06:22:00 所属栏目:百科 来源:网络整理
导读:? ? ? ? ? ? 在flash里面经常要使用到循环,在一个循环里面可以做很多很多事情。今天看回之前写的笔记,细心想想,想将一种想法记下来。要是你说跟算法导论那些知识面比较起来,今天记录的真是不能叫算法,只是小技巧。 ? ? ? ? ? ? ? ? ? ? ? ? ? 今天可以

? ? ? ? ? ? 在flash里面经常要使用到循环,在一个循环里面可以做很多很多事情。今天看回之前写的笔记,细心想想,想将一种想法记下来。要是你说跟算法导论那些知识面比较起来,今天记录的真是不能叫算法,只是小技巧。

? ? ? ? ? ?

? ? ? ? ? ? ? 今天可以利用这个小技巧来做一下跟随的效果。这个效果是怎样做的?我们知道在一个循环里面可以遍历一个数组里面的对象。我们利用两者之间的关系,如两者差值来算出一些坐标值。


这个算法基础是在于每遍历一次,需要跟前者进行相减,计算出两者之间的差值,如此类推。于是使用这个小技巧就能制作移动鼠标,对象会一个接一个跟随的缓动效果。

function onRender(event:Event):void
{


	list[0].x +=  (mouseX - list[0].x) / 2;
	list[0].y +=  (mouseY - list[0].y) / 2;


	//一个循环递增,来执行这种差值
	for (var i:int=1; i<=99; i++)
	{

		var dx:Number = list[i - 1].x - list[i].x;
		var dy:Number = list[i - 1].y - list[i].y;

		list[i].x +=  dx / 5;
		list[i].y +=  dy / 5;
	}

}

var list:Array = [];
var per:Number = 2 * Math.PI / 100;
for (var i:int=0; i<100; i++)
{
	var circle:Sprite=new Sprite();
	circle.graphics.lineStyle(0,0x0099FF);
    circle.graphics.drawCircle(0,10);
	circle.x=275;
	circle.y=220;
	list.push(circle);
	addChild(circle);
}

addEventListener(Event.ENTER_FRAME,onRender);
function onRender(event:Event):void
{


	list[0].x +=  (mouseX - list[0].x) / 2;
	list[0].y +=  (mouseY - list[0].y) / 2;


	//一个循环递增,来执行算出前后两者的差,
	for (var i:int=1; i<=99; i++)
	{

		var dx:Number = list[i - 1].x - list[i].x;
		var dy:Number = list[i - 1].y - list[i].y;

		list[i].x +=  dx / 5;
		list[i].y +=  dy / 5;
	}

}


利用这个小技巧,可以制作跟随或者其他的应用。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读