init(s)


    private function init():void
    {
     ball0 = new animation_ch08_Ball(20);
     addChild(ball0);
     ball1 = new animation_ch08_Ball(20);
     addChild(ball1);
     ball2 = new animation_ch08_Ball(20);
     addChild(ball2);
     addEventListener(Event.ENTER_FRAME, onEnterFrame);
    }
  

frame(s)


    
    private function onEnterFrame(event:Event):void
    {
     moveBall(ball0, mouseX, mouseY);
     moveBall(ball1, ball0.x, ball0.y);
     moveBall(ball2, ball1.x, ball1.y);
     
     graphics.clear();
     graphics.lineStyle(1);
     graphics.moveTo(mouseX, mouseY);
     graphics.lineTo(ball0.x, ball0.y);
     graphics.lineTo(ball1.x, ball1.y);
     graphics.lineTo(ball2.x, ball2.y);
    }
   

move(s)


    private function moveBall(ball:animation_ch08_Ball, targetX:Number, targetY:Number):void
    {
     ball.vx += (targetX - ball.x) * spring;
     ball.vy += (targetY - ball.y) * spring;
     ball.vy += gravity;
     ball.vx *= friction;
     ball.vy *= friction;
     ball.x += ball.vx;
     ball.y += ball.vy;
    }
   }
  }