Pergunta

Estou tendo dificuldade em descobrir como obter coordenadas de toque do objeto tapEvent, que é passado para meu manipulador personalizado (de qualquer maneira, não encontrei sua especificação).Há também o evento singleTap, que passa variáveis ​​personalizadas "X" como "Y", que são coordenadas, eu acho, mas não posso invocar essa no Emulator.

A questão é que estou trabalhando em um aplicativo, onde tenho um grande elemento e preciso saber exatamente onde o usuário tocou (talvez a coordenada global da tela ou a coordenada relativa do meu elemento).

Aqui está um exemplo de código:

//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?
}

Muito obrigado por qualquer sugestão.

Foi útil?

Solução

As coordenadas xey do evento tap estão na propriedade "down" do evento.

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);
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top