Здравствуйте. Есть код:

Код AS3:
package
{
import flash.display.*;
import flash.events.*;
import flash.text.*;
import flash.utils.*;
import flash.net.*;
import flash.media.*;
import flash.geom.*;
public class list extends Sprite
{
public function list()
{
var list_new1:MiniList_new1 = new MiniList_new1();
var list_new2:MiniList_new2 = new MiniList_new2();
var list_new3:MiniList_new3 = new MiniList_new3();
var list_new4:MiniList_new4 = new MiniList_new4();
var list_new5:MiniList_new5 = new MiniList_new5();
addChild(list_new1);
list_new1.y = 0;
addChild(list_new2);
list_new2.y = 778.5;
addChild(list_new3);
list_new3.y = 1557;
addChild(list_new4);
list_new4.y = 2335.5;
addChild(list_new5);
list_new5.y = 3114;
}
}
}

Код AS3:
import flash.display.*;
import flash.events.*;
import flash.text.*;
import flash.utils.*;
import flash.net.*;
import flash.media.*;
import list;
var l:Boolean = false;
var mcList:list = new list();
var mouse_y:int;
var speed:Number = 0;
var dd:Number = new Number();
mcList.x = stage.stageWidth / 2;
mcList.y = 450;
addChild(mcList);
stage.addEventListener(Event.ENTER_FRAME, _enterFrame);
stage.addEventListener(MouseEvent.MOUSE_DOWN, mcListDown);
stage.addEventListener(MouseEvent.MOUSE_UP, mcListUp);
stage.addEventListener(MouseEvent.MOUSE_MOVE, mcListMove);
function _enterFrame(e:Event)
{
if (mcList.y > 895)
{
mcList.y = 895;
}
if (mcList.y < -3088)
{
mcList.y = -3088;
}
}
function mcListDown(e:MouseEvent)
{
l = true;
}
function mcListUp(e:MouseEvent)
{
l = false;
for (var d:int = 0; d < 5; d++)
{
if (mcList.y > (450 + (-779 * d)) - 450 && mcList.y < (450 + (-779 * d)) + 450)
{
speed = 0;
if (mcList.y < 450 + (-779 * d))
{
speed = 20;
}
if (mcList.y > 450 + (-779 * d))
{
speed = -20;
}
dd = d;
stage.addEventListener(Event.ENTER_FRAME, _enterFrame);
function _enterFrame(e:Event)
{
mcList.y += speed;
if (speed == 20)
{
if (mcList.y > 450 + (-779 * dd))
{
speed = 0;
mcList.y = 450 + (-779 * dd);
}
}
if (speed == -20)
{
if (mcList.y < 450 + (-779 * dd))
{
speed = 0;
mcList.y = 450 + (-779 * dd);
}
}
}
}
}
}
function mcListMove(e:MouseEvent)
{
if (l == true)
{
mcList.y += stage.mouseY - mouse_y;
}
mouse_y = stage.mouseY;
e.updateAfterEvent();
}
Здесь на сцену добавляются 5 квадратов 745х745. Реализовывается перетаскивание контейнера в котором они находятся и квадрат который находится ближе всех к центру двигается к центру(то есть контейнер двигается так что бы нужный квадрат находился по центру).
Но вот в чём проблема здесь скорость движения 20 пикселей, но потом (через несколько перемещений) они ускоряются и перемещаются мнгновенно. Я не могу понять почему. Помогите.