2016-07-21 2 views
0

다음 토글이 있다고 가정 해 봅니다. http://docs.sencha.com/touch/2.4/2.4.2-apidocs/#!/api/Ext.field.Toggle터치 이벤트 깨기

터치하거나 스 와이프하여 전환 할 수 있습니다. 화면을 스 와이프하지 않고 왼쪽에서 오른쪽으로 손가락으로 스 와이프하면 토글이 계속 움직입니다. 터치 이벤트를 '중단'할 수있는 방법이 있습니까? 원하는 동작이 나는 스 와이프됩니다. 그런 다음 아무 것도 스 와이프하지 않으면 손가락과 스크린 사이의 접촉이 없어졌습니다 ( ).

나는 무엇을 했는가 : 나는 toggle 's scope에서 그것을 할 수있다 - 나는 'change'에서 그것을 불가능하게하고, 'touchend'를 다시 가능하게한다. 좋지 않습니다. 왜냐하면 예를 들어 가면 모든 토글을 화면에서 전환하기를 원하기 때문입니다. 대부분은 분명히 만져지지 않기 때문에 다시 돌아 오지 않을 것입니다.

답변

0

왜 터치하여 배열로 전환합니다 (배열에서 삭제할 때까지). 마스킹하면 배열의 모든 항목을 통해 실행되는 이벤트를 뷰에서 실행하고 터치 이벤트를 '중단'합니다.

컨트롤러 :

config: { 
    refs: { 
     view: '#my-view' 
     toggles: '.togglefield' 
    }, 
    control: { 
     view: { maskstart: 'hereIBreakTouch'} 
     toggles: {touchstart: 'hereIAddToggleToArray' 
        touchend: 'hereIRemoveToggleFromArray'} 
    } 
}, 
activeToggles: [] 

hereIBreakTouch: function() { 
    // might want to loop 
    var oActiveToggle = this.activeToggles[0]; 
    oActiveToggle.setEnabled(false); 
    //oActiveToggel.fireEvent('touchend'); 
    Ext.defer(function() {oActiveToggle.setEnabled(true);}, 50, this); 
} 

이 문제를 해결해야한다.

+0

위대한! 질문을 제외하고 나는 어떻게 BREAK 터치, 그리고 'hereIBreakTouch'는 함수가 아니다 :) –

+0

나는 함수를 추가했다. 나는 너 자신이 이것을하고 싶다고 생각했다. 나는 그것을 시험하지 않았다. 그것이 효과가 있는지 알려주기 바란다. – Dinkheller

+0

터치를 깨는 것은 화면에서 손가락을 들어 올리는 것처럼 에뮬레이트하므로 더 이상 손가락으로 토글을 변경할 수 없습니다. 이벤트를 실행 한 이유는 무엇 이었습니까? 화면을 터치하지 않으면 왼쪽/오른쪽으로 계속 스 와이프 토글을 할 수 있습니다. –