>  기사  >  위챗 애플릿  >  WeChat 애플릿이 제스처의 다양한 요구 사항을 어떻게 인식하는지 간략하게 설명하세요.

WeChat 애플릿이 제스처의 다양한 요구 사항을 어떻게 인식하는지 간략하게 설명하세요.

巴扎黑
巴扎黑원래의
2017-03-18 17:30:001787검색

제스처는 휴대폰 사용자, 특히 효과를 원하는 사람들의 작동 경험에 여전히 매우 중요합니다. 우리는 종종 캔버스, 인터랙티브 및 기타 애플리케이션을 사용합니다. , 오늘은 주로 WeChat 애플릿에서 제스처가 어떻게 구현되는지 살펴보겠습니다. 우리는 주로 다음 두 가지 측면에서 WeChat 미니 프로그램 제스처의 구현을 소개합니다.

  • 1부: 싱글 터치 포인트 및 멀티 터치 포인트: WeChat 애플릿의 제스처 데이터 및 멀티 터치 포인트 지원을 살펴보겠습니다

  • 다음: wxGesture 분석 클래스 작성: 왼쪽 슬라이드, 오른쪽 슬라이드, 위쪽 슬라이드, 아래쪽 슬라이드 및 확장 구문 분석(다음 기사)

데모

미니 프로그램이 여러 손가락을 지원하는지 알아보려면 touchstart, touchmove, touchend를 사용해야 합니다


[AppleScript] 일반 텍스트 보기 코드 복사

// index.wxml


[AppleScript] 일반 텍스트 보기 코드 복사

//index.js
touchstartFn: function(event){
    console.log(event);
  },
  touchmoveFn: function(event){
    console.log(event);
    // console.log("move: PageX:"+ event.changedTouches[0].pageX);
  },
  touchendFn: function(event){
    console.log(event);
    // console.log("move: PageX:"+ event.changedTouches[0].pageX);
  }

우선 싱글 터치 포인트, 멀티 터치 포인트에 대해

공식 문서:changedTouches:changeTouches의 데이터 형식은 터치와 동일합니다. 무에서 무로 변경(touchstart), 위치 변경(touchmove), 무에서 무로 변경(touchend, touchcancel) 등 변경된 터치 지점을 나타냅니다.


[AppleScript] 일반 텍스트 보기 코드 복사

"changedTouches":[{ 
"identifier":0, "pageX":53, "pageY":14, "clientX":53, "clientY":14
}]
  • 실제 기계 효과

위 데모를 구현한 후 시뮬레이터는 여러 터치 포인트의 데이터를 볼 수 없으므로 테스트하려면 실제 장치가 필요합니다.

실제머신의 로그정보 보기


changeTouches에 터치 포인트 데이터를 순차적으로 저장하여 애플릿 자체가 멀티 터치 포인트 제스처를 지원합니다

  • 결론

상상 : 미니 프로그램의 제스쳐가 멀티터치를 지원하기 때문에 , 해당 경로를 얻을 수 있으면 해당 경로의 계산도 가능합니다.
시나리오 : 멀티 터치 인터랙션 효과, 핑거 드로잉 등

터치 포인트 데이터 저장

터치 포인트의 경로를 분석하려면 최소한 왼쪽 스와이프, 오른쪽 스와이프, 위, 아래 등의 간단한 제스처의 경우 경로의 모든 데이터를 저장해야 합니다.
  • 터치 이벤트

터치 트리거 이벤트는 "touchstart", "touchmove"로 구분됩니다. " , "touchend", "touchcancel" 4개

  • 데이터 저장


[AppleScript] 일반 텍스트 보기 코드 복사

var _wxChanges = [];
var _wxGestureDone = false;
const _wxGestureStatus = ["touchstart", "touchmove", "touchend","touchcancel"];
// 收集路径
function g(e){
    if(e.type === "touchstart"){
        _wxChanges = [];
        _wxGestureDone = false;
    }
    if(!_wxGestureDone){
        _wxChanges.push(e);
        if(e.type === "touchend"){
            _wxGestureDone = true;  
        }else if(e.type === "touchcancel"){
            _wxChanges = [];
            _wxGestureDone = true; 
        }
    }
}

위 내용은 WeChat 애플릿이 제스처의 다양한 요구 사항을 어떻게 인식하는지 간략하게 설명하세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.