2013-03-19 2 views
2

BB10 계단식 네이티브 응용 프로그램을 개발 중입니다. 일부 컨테이너를 버튼으로 사용하고 있는데 사용자 정의 모양이 필요합니다. 따라서 나는 '누르기'를 다루기 위해 onTouch 이벤트 을 사용하고 있습니다. 내가하고 싶은 것은 '버튼'을 누를 때 소리를 내고 '단추'를 놓으면 소리를 멈추는 것입니다.BB10 계단식 터치 이벤트

다음은 코드

Container { 

property alias image: imagev.imageSource 
id: dialbutton 
signal onTouch() 
signal onTouchExit() 
background: Color.create("#ff0000FF") 

ImageView { 
    id: imagev 
    scalingMethod: ScalingMethod.AspectFit 
    horizontalAlignment: HorizontalAlignment.Center 
    verticalAlignment: VerticalAlignment.Center 
} 

onTouch: { 


    if (event.touchType == TouchType.Down) { 

     dialbutton.background = Color.Blue; 
     dialbutton.onTouch(event); 
    } 
    else if (event.touchType == TouchType.Up) 
    { 
     dialbutton.background = Color.create("#ff00FF00"); 

    } 

} 

onTouchExit: 
    { 
    dialbutton.background = Color.create("#ff00FF00"); 
    dialbutton.onTouchExit(); 
    } 
} 

나는 '버튼 색상 BLUE 로 변경 한 다음 발표 때 다시 되돌려 야 탭 때입니다 가지고있는 문제입니다. 그러나 버튼을 탭한 다음 계속 누르고 있으면 파란색으로 유지됩니다. onTouchExit이 해결해야 할 것이지만 버튼을 누르고 버튼에서 벗어나지 않아도 onTouchExit 이벤트가 발생하면 실제로는 작동하지 않습니다. 또한 음색 (코드는 표시되지 않음)을 연주하고 싶지만 먼저 색상 변경을 제대로 수행해야합니다.

어느 하나 내가이 당신의 "다른 경우"를 onTouch 블록 내부도 TouchType.Cancel을 처리하기 위해 변경 제대로

감사

답변

6

을 작업을 진행하게 변경해야 할 것을 알고있다. TouchType.Cancel은 손가락을 움직이면 버튼이받는 이벤트입니다. 변경 후에는 onTouchExit 코드가 필요하지 않습니다.

onTouch: { 

    if (event.touchType == TouchType.Down) { 

     dialbutton.background = Color.Blue; 
     dialbutton.onTouch(event); 
    } 
    else if (event.touchType == TouchType.Up || event.touchType == TouchType.Cancel) 
    { 
     dialbutton.background = Color.create("#ff00FF00"); 

    } 

} 
+0

감사합니다. – tech74