我一直在研究一个问题一段时间,其中涉及到针对与鼠标的xy坐标相关的最接近的影片剪辑,我附加了一个很好的小小的acompanying图形。寻找距离鼠标最近的对象坐标
添加到舞台上的每个mc都有它自己的子类(HotSpots),它使用Pythag来测量与鼠标的距离。在这个阶段,我可以确定从我的Main类最接近的值,但不知道如何将其引回到动画片段中......希望这是有道理的。以下是两个类。
alt text http://design.camoconnell.com/images/example.jpg
我的主类,其attachs的MCS,并监视鼠标移动和迹线最接近的值预先
package {
import flash.display.*;
import flash.text.*;
import flash.events.*;
public class Main extends MovieClip
{
var pos:Number = 50;
var nodeArray:Array;
public function Main(){
nodeArray = [];
for(var i:int = 0; i < 4; i++)
{
var hotSpot_mc:HotSpots = new HotSpots;
hotSpot_mc.x += pos;
hotSpot_mc.y += pos;
addChild(hotSpot_mc);
nodeArray.push(hotSpot_mc);
// set some pos
pos += 70;
}
stage.addEventListener(MouseEvent.MOUSE_MOVE,updateProxmity)
}
public function updateProxmity(e:MouseEvent):void
{
var tempArray:Array = new Array();
for(var i:int = 0; i < 4; i++)
{
this['tf'+[i]].text = String(nodeArray[i].dist);
tempArray.push(nodeArray[i].dist);
}
tempArray.sort(Array.NUMERIC);
var minValue:int = tempArray[0];
trace(minValue)
}
}
}
我的热点类
package {
import flash.display.MovieClip;
import flash.events.Event;
import flash.text.TextField;
public class HotSpots extends MovieClip
{
public var XSide:Number;
public var YSide:Number;
public var dist:Number = 0;
public function HotSpots()
{
addEventListener(Event.ENTER_FRAME, textUp);
}
public function textUp(event:Event):void
{
XSide = this.x - MovieClip(root).mouseX;
YSide = this.y - MovieClip(root).mouseY;
dist = Math.round((Math.sqrt(XSide*XSide + YSide*YSide)));
}
}
}
感谢
究竟你通过“引用它回到了MovieClip”是什么意思?一旦我知道我认为应该有一个简单的解决方案。 – debu 2010-03-30 16:28:12
刚刚编辑我的回答后,你最后的解释... – 2010-03-30 19:30:44