【发布时间】:2011-02-02 13:23:47
【问题描述】:
我一直在研究一个问题,其中涉及定位与鼠标 x y 坐标相关的最接近的电影剪辑,我附上了一个漂亮的小伴随图形。
添加到舞台的每个 mc 都有自己的子类 (HotSpots),它使用 Pythag 来测量与鼠标的距离。在这个阶段,我可以从我的 Main 类中确定最接近的值,但无法弄清楚如何将它引用回影片剪辑......希望这是有道理的。下面是两个类。
alt text http://design.camoconnell.com/images/example.jpg
我的主类,它附加 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”到底是什么意思?一旦我知道我认为应该有一个简单的解决方案。
-
刚刚根据您的最后解释编辑了我的答案...
标签: flash actionscript-3