Я просто добавляю Flex HSlider в свой диалог. Он позволяет устанавливать продолжительность времени в днях, и я подумал, что было бы здорово, если бы пользователь мог привязываться к неделям, нажимая клавишу SHIFT при перетаскивании ползунка.
К сожалению, событие, переданное обработчику событий, не содержит информации о модификаторе ключа.
Вот мой код:
protected function onDurationSliderChange (event:SliderEvent) : void
{
var durationInDays : int = this.sld_durationInDays.value;
// modifiers
if (event.triggerEvent is MouseEvent) {
var mouseEvt : MouseEvent = event.triggerEvent as MouseEvent;
trace (mouseEvt.ctrlKey + " " + mouseEvt.ctrlKey + " " + event.keyCode);
trace (mouseEvt);
// when using SHIFT, snap to week
if (mouseEvt.shiftKey && !mouseEvt.ctrlKey)
durationInDays = int(durationInDays/7) * 7;
}
this.durationInDays = durationInDays;
}
, который производит следующий вывод:
false false -1
[MouseEvent type="click" bubbles=true cancelable=false eventPhase=2 localX=NaN localY=NaN stageX=NaN stageY=NaN relatedObject=null ctrlKey=false altKey=false shiftKey=false buttonDown=false delta=0]
Кто-нибудь получил идею, как узнать, была ли нажата клавиша SHIFT (или CTRL) при перетаскивании? Спасибо!