그래서 키보드/아래 스피너 클릭을 트리거하도록 요청했지만, 이벤트를 전달하기 위해 어디에서스파크 회 트리거를 클릭
이 난 시도 것입니다 ... 찾을 수 없습니다 :
var item:Object=spinner.skin;
item.incrementButton.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_DOWN));
item.incrementButton.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_UP));
item.incrementButton.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
item.decrementButton.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_DOWN));
item.decrementButton.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_UP));
item.decrementButton.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
아이디어가 있으십니까?
편집 : DataGrid 행 스와핑에 대한 바로 가기를 만들어야했습니다.
if(e.keyCode==Keyboard.NUMPAD_ADD){
spnOrder.value++;
spnOrder.incrementButton.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
}
else if(e.keyCode==Keyboard.NUMPAD_SUBTRACT){
spnOrder.value--;
spnOrder.decrementButton.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
}
스피너 클릭 내게 깨끗한 용액 같았 파견 스피너의 결과 값과 데이터 그리드 행 스왑 범용 처리기를 갖는다.
EDIT2 :
클릭 처리기 :
private function spnOrder_clickHandler(e:MouseEvent):void{
var toIndex:int=spnOrder.value;
var index:int=grid.selectedIndex;
if(toIndex>-1 && toIndex<list.length && index>-1 && toIndex!=index){
if(toIndex<index)
list.addItemAt(list.removeItemAt(index-1),index)
else
list.addItemAt(list.removeItemAt(index+1),index);
grid.setFocus();
grid.setSelectedIndex(toIndex);
}
else{
grid.setFocus();
spnOrder.value=index;
}
}
회 전자 :
<s:Spinner
id="spnOrder"
value="{grid.selectedIndex}"
skinClass="skins.SpinnerInvertedSkin"
click="spnOrder_clickHandler(event)" />
값을 증가 및 감소시킬 수없는 이유는 무엇입니까? –
나는 이미 만들어진 코드를 어디서나 복사/붙여 넣기하는 대신 재사용하려고합니다. 값을 변경하면 클릭 핸들러가 트리거되지 않습니다. – Ziul
클릭 핸들러에 관여해서는 안됩니다! –