Показать сообщение отдельно
Старый 07.07.2009, 20:12
litebox вне форума Посмотреть профиль Отправить личное сообщение для litebox Найти все сообщения от litebox
  № 1  
Ответить с цитированием
litebox
 
Аватар для litebox

Регистрация: Jul 2008
Адрес: Украина, Киев
Сообщений: 253
Question Drag & drop реагирует на дочерних элементах

Есть экземпляр Panel, на нем размещены элементы управления. В приведенном ниже примере Drag & drop срабатывает всегда, даже когда юзер сделал клик на кнопке или текстовом поле. А хочется, чтобы панель перетаскивалась только за заголовок. Вариант добавить на все элементы событие mouseDown и душить его, чтобы оно не обрабатывалось панелью нравится не очень Наверное же есть способ по-красивее?

Код AS3:
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" >
	<mx:Script><![CDATA[
		import flash.net.URLLoader;
		import flash.net.URLRequest;
		import flash.net.URLVariables;
 
		import flash.events.Event;
		import flash.events.IOErrorEvent;
		import flash.events.MouseEvent;
 
 
 
		private function eventPanelStartDrag(e:MouseEvent):void
		{
			if (e.currentTarget == panel)
			{
				panel.startDrag();
 
 
			}
 
			txtLog.text += "\n" + e.target.toString();
			txtLog.text += "\n" + e.currentTarget.toString();
		}
 
		private function eventPanelStopDrag(e:MouseEvent):void
		{
			panel.stopDrag();
 
			txtLog.text += "\n" + "stop";
		}
 
        private function onSendData(e:MouseEvent):void
        {
 
        }    
    ]]></mx:Script>
	<mx:Panel id="panel" width="500" height="300" title="test" layout="vertical" 
		horizontalAlign="center" paddingTop="8" paddingBottom="8" paddingLeft="8" paddingRight="8"
		mouseDown="eventPanelStartDrag(event)" mouseUp="eventPanelStopDrag(event)" >
		<mx:TextInput id="txtParams" width="100%" text="g_ind=2" />
		<mx:Button id="btnSendData" label="Send data" click="onSendData(event)" />
		<mx:TextArea id="txtLog" width="100%" height="100%" text="log:" editable="false" />
	</mx:Panel>
</mx:Application>