钛触摸位置

时间:2014-03-15 09:31:42

标签: titanium titanium-mobile titanium-alloy

我在视图index.xml中有这个:

<Alloy>
    <Window class="container" fullscreen="true">
        <View id="accueil">
            <ImageView id="button_way"></ImageView>
        </View>
    </Window>
</Alloy>

,这在控制器index.js

$.accueil.addEventListener("touchmove", function(e){
    Ti.API.info(e.y);
}); 

我的问题是,如果我开始在图像视图中单击并且我将绝对位置移动到图像视图而不是视图。

我不是为什么......

你能帮助我,谢谢你,对不起我的英语。

1 个答案:

答案 0 :(得分:4)

touchmove事件的坐标are always relative to the view in which the initial touch occurred.

您需要将图片中的点转换为包含视图中的点,谢天谢地Titanium provides a helper method for that: convertPointToView

我不确定您要完成的是什么,但这里有一个使用此功能的示例,将其应用于您需要做的事情:

$.accueil.addEventListener("touchmove", function(e){
    // If the points are in the image, convert them to the containing view 
    if(e.source == $.button_way) {
        var imageViewPoint = { x e.x, y : e.y };
        // Translate from button_way to accueil point of view
        var accueilViewPoint = $.button_way.convertPointToView(imageViewPoint, $.accueil);  
        Ti.API.info(accueilViewPoint);   
    } else {
        // Otherwise just leave them
        var accueilViewPoint = { x e.x, y : e.y };
        Ti.API.info(accueilViewPoint);
    }
});