Показать сообщение отдельно
Старый 24.02.2006, 15:14
meiciuc вне форума Посмотреть профиль Отправить личное сообщение для meiciuc Найти все сообщения от meiciuc
  № 2  
Ответить с цитированием
meiciuc

Регистрация: Nov 2005
Сообщений: 149
на всех клипах одновременно срабатывает событие, вот они все вместе и таскаются.
Код:
onClipEvent(mouseDown)
рекомендую изучить способ из макромедиевских классов. например class mx.containers.Window
Код:
function startDragging(Void) : Void
	{
		if (this.modalWindow == undefined)
		{
			var o = this._parent.createChildAtDepth("BoundingBox", DepthManager.kTop, {_visible:false});
			this.swapDepths(o);
			o.removeMovieClip();
		}
		regX = _xmouse;
		regY = _ymouse;
		onMouseMove = dragTracking;
	}

	function stopDragging(Void) : Void
	{
		delete onMouseMove;
	}

	function dragTracking() : Void
	{
		var newX = _parent._xmouse - regX;
		var newY = _parent._ymouse - regY;
		var slop = 5;
		var scr = mx.managers.SystemManager.screen;
		
		if (newX < scr.x -regX + slop)
			newX = scr.x -regX + slop;
		if (newX > scr.width + scr.x - (regX + slop))
			newX = scr.width + scr.x - (regX + slop);
			
		if (newY < scr.y -regY + slop)
			newY = scr.y -regY + slop;
		if (newY > scr.height + scr.y - (regY + slop))
			newY = scr.height + scr.y - (regY + slop);
			
		move(newX, newY);
		updateAfterEvent();
	}
да и на будущее - очень многие вопросы отпадают сами собой при изучении наработок действительно крутых программистов.

для конкретного же случая, следует изменить следующее. Обрабатывать событие не нажатия мыши, а тот-же onPress и делегировать событие уже на обработчик. Естественно, все это было бы на много проще и дешевле по ресурсам реализовать в классах, чтоб не вешать обработчик на каждый перетаскиваемый объект.