Search code examples
eventswebospalm-premojotap

Mojo.Event.tap - how to get tap coordinates?


I am having difficulty with finding out how to get tap coordinates from tapEvent object, which is passed to my custom handler (I didn't find it's specification anyway). There is also singleTap event, which passes custom variables "X" as "Y", which is coordinates, i guess, but I can't invoke that one in Emulator.

The point is that I am working on one application, where I have big element and I need to know where exactly user tapped (it maybe global screen coordinate or relative coordinate of my element).

Here is example code:

//inside of assistant's setup method:
Mojo.Event.listen(this.controller.get('elem'), Mojo.Event.tap, this.listenSingleTap.bindAsEventListener(this));

//custom handler:
SomeAssistant.prototype.listenSingleTap = function(singleTapEvent){
    this.someOtherMethod(singleTapEvent.x, singleTapEvent.y); //This is wrong and doesn't work - how I suppose to get tap coordinates?
}

Thank you very much for any suggestions.


Solution

  • The x and y coordinates for the tap event are in the "down" property of the event.

    Ex.

    MyAssistant.prototype.setup = function() {
        Mojo.Event.listen(this.controller.get('elem'), Mojo.Event.tap, this.handleTap.bind(this));
    }
    
    MyAssistant.prototype.handleTap = function(event) { 
        Mojo.Log.info("tap down at x: " + event.down.x + " y: " + event.down.y);
    }