Использование 2 разных событий мыши в flex
Работаю над проектом flex
Я стремлюсь обеспечить некоторые функциональные возможности пользовательского интерфейса с помощью мыши - у меня есть два различных события пользовательского интерфейса, которые должны быть достигнуты с помощью мыши а) изменить значение б) удалить объект
Кажется, у меня недостаточно событий щелчка мышью для обоих. Я избегаю использования правого клика, поскольку у него есть некоторые параметры по умолчанию (выход которых повлияет на весь проект, а не только на это). У меня есть щелчок мыши, используемый для изменения значения - как использовать двойной щелчок, так как кажется, что события одиночного щелчка вызывались раньше?
Какие-нибудь мысли?
2 ответа
private var doubleClickOccurred:Boolean = false;
private var timer:Timer = new Timer(100, 1);
protected function application1_creationCompleteHandler(event:FlexEvent):void
{
myLabel.addEventListener(MouseEvent.CLICK, checkSingleOrDoubleClick);
myLabel.addEventListener(MouseEvent.DOUBLE_CLICK, checkSingleOrDoubleClick);
timer.addEventListener(TimerEvent.TIMER_COMPLETE, handleClick);
}
private function checkSingleOrDoubleClick(event:MouseEvent):void
{
if(event.target == myLabel && event.type == MouseEvent.DOUBLE_CLICK)
{
// set the flag and let the timer complete event
// take care of the click handling
doubleClickOccurred = true;
trace(" double clicked");
}
else if( event.type == MouseEvent.CLICK)
{
// start timer to wait till the double click event
// gets called
timer.start();
trace("Starting timer");
}
}
private function handleClick(event:Event):void
{
if(doubleClickOccurred)
{
// handle double click event
trace("Yes");
}
else
{
// handle single click
trace("No");
}
// reset flag for capturing future events
doubleClickOccurred = false;
}
]]>
</fx:Script>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:Label id="myLabel" text="Click Me" doubleClickEnabled="true" />
Вывод: 1) Если a имеется один щелчок мышью на ярлыке, вызывается вход в систему с одним щелчком, т. Е. Трассировка ("Нет")
2) В случае двойного щелчка на ярлыке вызывается трассировка ("да").
Я надеюсь, что этот фрагмент кода ответит на ваш вопрос об обработке одиночного и двойного щелчка по компонентам Flex.
Не могу сказать слишком много, не зная, что вы редактируете, каковы значения и т. Д.
Распространенной идиомой является отображение значка "X", скажем, на краю выбранного элемента, при котором щелчки только по этому значку вызывают удаление.