【问题标题】:How do I create event listeners for version 1.4 of Appcelerator Ti.Paint?如何为 Appcelerator Ti.Paint 1.4 版创建事件监听器?
【发布时间】:2015-09-10 10:29:50
【问题描述】:

我使用的是 Titanium SDK 4.1.0.GA,最初使用的是 iOS 版 Ti.Paint 模块的 1.2 版。这个版本在 iOS 8 上不能正常工作,因为画的线会断断续续。

然后我将 Ti.Paint 模块升级到 1.4(当前是最新版本)。画布上的线条绘制现在可以完美地工作,但由于某种原因,没有用于 Ti.Paint 对象的事件侦听器,而在以前的模块版本中存在。

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

【问题讨论】:

    标签: canvas titanium titanium-mobile appcelerator appcelerator-mobile


    【解决方案1】:

    在 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);
        };
    }
    

    【讨论】:

    • 嗨乔。我可以确认滑动、单击和双击确实会触发谢谢。但是,它只能在 99% 的时间内工作,具体取决于添加签名的方式,因为作为示例,滑动会触发向左、向右、向上、向下。倾斜绘制时不会触发。
    猜你喜欢
    • 2020-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-22
    相关资源
    最近更新 更多