tec*_*h74 2 blackberry-10 blackberry-cascades
我正在开发一个BB10 Cascades原生应用程序.我使用一些容器作为按钮,因为我需要自定义外观.因此我使用onTouch事件来处理'press'.我想要做的是按下"按钮"时播放音调,并在释放"按钮"时停止音调.
这是代码
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();
}
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,当按下"按钮"时,颜色应变为蓝色,然后在释放时恢复.但是,如果我点击按钮然后按住按钮并从按钮上移开它会保持蓝色.这就是onTouchExit应该解决的问题,但它并没有真正起作用,因为即使按下按钮而不是移动按钮,onTouchExit事件也会被触发.我也想播放音调(代码未显示),但我需要先让颜色变化正常.
任何人都知道我需要改变以使其正常工作
谢谢
小智 6
更改onTouch块内的"else if"以处理TouchType.Cancel.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");
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1531 次 |
| 最近记录: |