如何为 Appcelerator Ti.Paint 1.4 版创建事件侦听器?

How do I create event listeners for version 1.4 of Appcelerator Ti.Paint?

我正在使用 Titanium SDK 4.1。0.GA 并且最初为 iOS 使用 Ti.Paint 模块的 1.2 版。这个版本在 iOS 8 上不能正常工作,因为绘制的线条断断续续。

然后我将 Ti.Paint 模块升级到 1.4(目前是最新版本)。 canvas 上的线条图现在可以完美运行,但由于某些原因,Ti.Paint 对象没有事件侦听器,而在以前的模块版本中有。

现在如何检查是否有人真的在 canvas 上画画?一个很好的例子是,如果您想使用 Ti.Paint 让用户提供他们的签名,并且您想要验证 Canvas 上发生的交互。

在 iOS 上,尝试 documentation 中的每个标准 Ti.UI.View 事件,我发现从 createPaintView 返回的视图始终响应:

  • postlayout 正在加载
  • singletapdoubletap,以及
  • swipe 大多数绘图手势

我还没有看到 PaintView 的任何事件文档。其他事件确实触发了,但并不一致。

这是我用来测试事件的代码。有些事件可能会干扰其他事件。

var Paint = require('ti.paint');
var paintView = Paint.createPaintView({
    top: 0,
    right: 0,
    bottom: 80,
    left: 0,
    // strokeWidth (float), strokeColor (string), strokeAlpha (int, 0-255)
    strokeColor: '#0f0',
    strokeAlpha: 255,
    strokeWidth: 10,
    eraseMode: false
});
paintView.addEventListener('click', getHandler('click'));
paintView.addEventListener('dblclick', getHandler('dblclick'));
paintView.addEventListener('doubletap', getHandler('doubletap'));
paintView.addEventListener('longpress', getHandler('longpress'));
paintView.addEventListener('postlayout', getHandler('postlayout'));
paintView.addEventListener('singletap', getHandler('singletap'));
paintView.addEventListener('swipe', getHandler('swipe'));
paintView.addEventListener('touchcancel', getHandler('touchcancel'));
paintView.addEventListener('touchend', getHandler('touchend'));
paintView.addEventListener('touchmove', getHandler('touchmove'));
paintView.addEventListener('touchstart', getHandler('touchstart'));
paintView.addEventListener('twofingertap', getHandler('twofingertap'));

function getHandler(name) {
    return function() {
        console.log('event triggered:', name);
    };
}