Тема: Стрелочки
Показать сообщение отдельно
Старый 20.04.2008, 20:09
Vertax вне форума Посмотреть профиль Отправить личное сообщение для Vertax Найти все сообщения от Vertax
  № 6  
Ответить с цитированием
Vertax

Регистрация: Oct 2005
Сообщений: 207
На базе все того же кода.
Есть клипы clip1 и clip2
Код:
updateArrow = function (X1, Y1, X2, Y2)
{
	this.clear();
	this.lineStyle(1, 0xFF0000);
	angle = Math.floor(180 * Math.atan2((X2 - X1), (Y2 - Y1)) / Math.PI);
	len = Math.sqrt((X2 - X1) * (X2 - X1) + (Y2 - Y1) * (Y2 - Y1));
	for (i = 0; i < 150; i++) if (!clip2.hitTest(SIN(angle) * (len - i) + X1, COS(angle) * (len - i) + Y1, true))break;
	this.arrowTo(X1, Y1, SIN(angle) * (len - i) + X1, COS(angle) * (len - i) + Y1);
}

clip1.onPress = clip2.onPress = function ()
{
	startDrag(this);
	updateArrow(clip1._x + clip1._width / 2, clip1._y + clip1._height / 2, clip2._x + clip2._width / 2, clip2._y + clip2._height / 2);
	onMouseMove = function (){updateArrow(clip1._x + clip1._width / 2, clip1._y + clip1._height / 2, clip2._x + clip2._width / 2, clip2._y + clip2._height / 2);}
}

clip1.onRelease = clip2.onRelease = clip1.onReleaseOutside = clip2.onReleaseOutside = function ()
{
	stopDrag();
	delete onMouseMove;
}

updateArrow(clip1._x + clip1._width / 2, clip1._y + clip1._height / 2, clip2._x + clip2._width / 2, clip2._y + clip2._height / 2);


Последний раз редактировалось Vertax; 21.04.2008 в 22:01.