onLoad () { radius = _height/2; tock = ticks(); h = _parent._height; w = _parent._width; oldx = _X; oldy = _Y; vx = 0; vy = 0; dragging = false; } onEnterFrame(includingFirstFrame) { tick = ticks(); delta = tick-tock; tock = tick; if (dragging) { newvx = (_X-oldx)/delta; newvy = (_Y-oldy)/delta; oldx = _X; oldy = _Y; } else { if (_root.gravity >= 100) { _root.gravity = 99.9; } if (_root.gravity < 0) { _root.gravity = 0; } gravity = _root.gravity; if (_root.bounce > 1.0) { _root.bounce = 1; } if (_root.bounce < 0) { _root.bounce = 0; } Move(delta,_root.bounce); } } function Move(delta,bounce) { vy += gravity/100; x = _X+vx*delta; y = _Y+vy*delta; if (x < radius || x > w-radius) { vx = -vx; vx *= bounce; vy *= bounce; if (x < radius) { x = radius; } else { x = w-radius; } } if (y < radius || y > h-radius) { vy = -vy; vx *= bounce; vy *= bounce; if (y < radius) { y = radius; } else { y = h-radius; } } _X = x; _Y = y; } onSelfEvent (press) { startDragUnlocked(); dragging = true; vx = 0; vy = 0; } onSelfEvent (release,releaseOutside) { stopDrag(); dragging = false; vx = newvx; vy = newvy; }