作者cjcat2266 (CJ Cat)
看板Flash
标题Re: [问题] 物件稍微跟着滑鼠移动
时间Mon Dec 15 21:48:55 2008
1F:→ cjcat2266:中心点 + factor * (目标物 - 中心点) 12/15 20:55
2F:→ cjcat2266:factor介於0和1之间 12/15 20:55
3F:→ cjcat2266:如果你是要慢慢飘过去,就把以上算式设为X 12/15 20:57
4F:→ cjcat2266:然後 位置 += chaseFactor * (X - 位置) 12/15 20:58
5F:→ cjcat2266:chaseFactor同样界於0和1之间 12/15 20:58
假如我场景上面有一个物件叫做box_mc
然後场景尺寸是640X400
//中心点
var centerX:Number = 320;
var centerY:Number = 200;
//部分偏移程度,越靠近1表示最终位置越接近滑鼠位置
var posFactor:Number = 0.5;
//逼近速度,越靠近1表示逼近速度越快,1表示瞬间移动至定点
var chaseFactor:Number = 0.2;
//持续呼叫的主回圈
addEventListener(Event.ENTER_FRAME, loop);
function loop(e:Event):void {
//计算目标座标
var targetX:Number = centerX + posFactor * (mouseX - centerX);
var targetY:Number = centerY + posFactor * (mouseY - centerY);
//使用chaseFactor去慢慢逼近
box_mc.x += chaseFactor * (targetX - box_mc.x);
box_mc.y += chaseFactor * (targetY - box_mc.y);
}
以上code写法为方便理解原理
真正要增进效能与节省记忆体的话可以自行简化
--
CJ Cat = Croa'J Cat = Cockroach Cat = 西街凯特 = 蜚蠊猫 = 蟑螂猫
Blog
http://cjcat.blogspot.com
Gallery
http://cjcat2266.deviantart.com
ptt2 Board CJWorkshop - 阿多比闪光(Adobe Flash)研讨区
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.228.88.104
6F:推 cheerme:非常谢谢你!! 12/15 22:14
7F:推 cheerme:但在第12行 出现错误显示无法载入类别'Event'是为什麽呢 12/15 22:17
8F:→ cjcat2266:看来你是用AS2,那我等等回文 12/15 22:21