package com.aswing2.cn
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
public class MultiSpring extends Sprite
{
private var ball:Ball;
private var handle:Array=[];
public var numhandle:int=3;
private var spring:Number=0.1;
private var fri:Number=.8;
public function MultiSpring()
{
super();
init();
}
private function init():void
{
ball=new Ball;
this.addChild(ball);
for (var i:int=0; i < numhandle; i++)
{
var hand:Ball=new Ball;
hand.x=Math.random() * stage.stageWidth;
hand.y=Math.random() * stage.stageHeight;
this.addChild(hand);
handle.push(hand);
hand.addEventListener(MouseEvent.MOUSE_DOWN, onDown);
}
addEventListener(Event.ENTER_FRAME, onEnterFrame);
addEventListener(MouseEvent.MOUSE_UP, onUp);
}
private function onEnterFrame(e:Event):void
{
for (var i:int=0; i < numhandle; i++)
{
var hand:Ball=handle[i] as Ball;
var dx:Number=hand.x - ball.x;
var dy:Number=hand.y - ball.y;
ball.vx+=dx * spring;
ball.vy+=dy * spring;
}
ball.vx*=fri;
ball.vy*=fri;
ball.x+=ball.vx;
ball.y+=ball.vy;
graphics.clear();
graphics.lineStyle(1);
for (i=0; i < numhandle; i++)
{
graphics.moveTo(ball.x, ball.y);
graphics.lineTo(handle[i].x, handle[i].y);
}
}
private function onDown(e:MouseEvent):void
{
e.target.startDrag(true);
}
private function onUp(e:MouseEvent):void
{
e.target.stopDrag();
}
}
}