Хорошо, у меня все работает ...
Но я очень устала и полагаю, что, скорее всего, я переоценила решение.
Я воспользовался вашим советом, спасибо Тео, и добавил метод set в класс Hotspot и запустил цикл for, который 'устанавливает первую точку доступа в isClosest = true, а остальные в false ..'
Проблема, с которой я столкнулся, заключалась в том, что второй массив (который я теперь назвал «sortArray») удерживал только расстояние «горячих точек» от мыши, поэтому, как только я отсортировал массив в порядке возрастания (от кратчайшего до длинного dist) у меня была только строка расстояния и ничего для ссылки (как в индексе) на nodeArray. Чтобы противостоять этому, я поместил объект в sortArray, который содержит параметр расстояния и параметр индекса. затем с помощью метода sortOn () я мог бы отсортировать параметр расстояния, а затем использовать соответствующий параметр индекса, чтобы найти подходящий mc в nodeArray.
Кажется, очень долго ...
Main.as
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 sortArray:Array = [];
for(var i:int = 0; i < 4; i++)
{
this['tf'+[i]].text = String(nodeArray[i].dist);
var ob:Object = {}
ob.dist = String(nodeArray[i].dist);
ob.arrayPos = i;
sortArray.push(ob);
}
sortArray.sortOn("dist",Array.NUMERIC);
var minValue:int = sortArray[0];
for(var j:int = 0; j < 4; j++){
(nodeArray[j] as HotSpots).isClosest = (j == sortArray[0].arrayPos);
}
}
}
}