我一直在研究一個問題一段時間,其中涉及到針對與鼠標的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