Je travaille sur un problème depuis un moment, qui consiste à cibler le MovieClip le plus proche par rapport aux coordonnées xy de la souris, j'ai joint un joli petit fichier graphique.Trouver l'objet le plus près de la souris Coordonnées
Chaque mc ajouté à la scène a sa propre sous-classe (HotSpots) qui utilise Pythag pour mesurer la distance de la souris. À ce stade, je peux déterminer la valeur la plus proche de ma classe principale, mais je n'arrive pas à comprendre comment la renvoyer au MovieClip ... J'espère que cela a du sens. Voici les deux classes.
alt text http://design.camoconnell.com/images/example.jpg
Ma classe principale qui Attachs les mcs, et surveille le mouvement de la souris et des traces valeur la plus proche
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)
}
}
}
Mon HotSpots classe
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)));
}
}
}
merci à l'avance
Que voulez-vous dire par «faire référence à nouveau à la MovieClip? Une fois que je sais que je pense qu'il devrait y avoir une solution facile à cela. – debu
Juste édité ma réponse suite à votre dernière explication ... –