2009-09-17 24 views
2

J'ai du mal à trouver comment obtenir les coordonnées de tap à partir de l'objet tapEvent, qui est passé à mon gestionnaire personnalisé (je n'ai pas trouvé sa spécification de toute façon). Il y a aussi l'événement singleTap, qui passe les variables personnalisées "X" comme "Y", ce qui est des coordonnées, je suppose, mais je ne peux pas invoquer celui-ci dans l'émulateur. Le point est que je travaille sur une application, où j'ai un gros élément et j'ai besoin de savoir exactement où l'utilisateur a tapé (c'est peut-être la coordonnée globale de l'écran ou la coordonnée relative de mon élément).Mojo.Event.tap - comment obtenir des coordonnées de prise?

Voici un exemple de 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? 
} 

Merci beaucoup pour toutes les suggestions.

Répondre

4

Les coordonnées x et y pour l'événement de prise sont dans la propriété "bas" de l'événement.

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); 
} 
+0

Impressionnant, exactement ce que je cherche toute la journée. C'est bizarre que je n'ai pas trouvé de documentation sur l'objet événement. Merci. –

+1

Il y a * beaucoup * de choses actuellement manquantes dans la documentation du SDK. –