onLoad () { tock = ticks(); } onEnterFrame(includingFirstFrame) { tick = ticks(); delta = tick-tock; tock = tick; bounce = _root.bounce; i = 1; while (i <= 3) { a = "/Ball"+i; j = i+1; while (j <= 3) { b = "/Ball"+j; dx = (a)._X-(b)._X; dy = (a)._Y-(b)._Y; adx = abs(dx); ady = abs(dy); d = dx*dx+dy*dy; hit = d <= (a)._width*(b)._width; if (hit) { fx = dx/(adx+ady); afx = adx/(adx+ady); fy = dy/(adx+ady); afy = dy/(adx+ady); avx = (a).vx; avy = (a).vy; bvx = (b).vx; bvy = (b).vy; vx = afx*(bvx-avx)+fy*(bvy-avy); vy = afy*(bvy-avy)+fx*(bvx-avx); (a).vx = (avx+vx)*bounce; (b).vx = (bvx-vx)*bounce; (a).vy = (avy+vy)*bounce; (b).vy = (bvy-vy)*bounce; n = 0; while (hit && n < 10) { (a)._X += (a).vx*delta; (a)._Y += (a).vy*delta; (b)._X += (b).vx*delta; (b)._Y += (b).vy*delta; dx = (a)._X-(b)._X; dy = (a)._Y-(b)._Y; adx = abs(dx); ady = abs(dy); d = dx*dx+dy*dy; hit = d <= (a)._width*(b)._width; n++; } } j++; } i++; } }