2013-05-16 2 views
3

Я пытаюсь получить globalPoint в применении титана iPhone, когда происходит событие TouchMove, я использую следующий код, чтобы получить globalPointКак получить e.globalPoint в Titanium 3.1.0 GA

var x = parseInt(e.globalPoint.x, 10); 

Он отлично работает, пока не обновлен Titanium 3.0.2 GA к 3.1.0 GA, после обновления запуске приложения я получил следующую ошибку

«неопределенными» не является объектом (оценка «e.globalPoint.x»)

Я используя этот код для оккупации окна

var animateLeft = Ti.UI.createAnimation({ 
    left : 250, 
    curve : Ti.UI.ANIMATION_CURVE_EASE_OUT, 
    duration : 150 
}); 

var animateRight = Ti.UI.createAnimation({ 
    left : 0, 
    curve : Ti.UI.ANIMATION_CURVE_EASE_OUT, 
    duration : 150 
}); 

var touchStartX = 0; 
var touchStarted = false; 

$.innerwin.addEventListener('touchstart', function(e) { 
    touchStartX = parseInt(e.x, 10); 
}); 

$.innerwin.addEventListener('touchend', function(e) { 
    touchStarted = false; 
    if ($.win.left >= 150) { 
     $.win.animate(animateLeft); 
     hasSlided = true; 
    } else { 
     $.win.animate(animateRight); 
     hasSlided = false; 
    } 
}); 

$.innerwin.addEventListener('touchmove', function(e) { 
    var x = parseInt(e.globalPoint.x, 10); 
    var newLeft = x - touchStartX; 
    if (touchStarted) { 
     if (newLeft <= 250 && newLeft >= 0) { 
      $.win.left = newLeft; 
     } 
    } 
    if (newLeft > 30) { 
     touchStarted = true; 
    } 
}); 

$.button.addEventListener('singletap', function(e) { 
    $.toggleSlider(); 
}); 

var hasSlided = false; 
exports.toggleSlider = function() { 
    if (!hasSlided) { 
     $.win.animate(animateLeft); 
     hasSlided = true; 
    } else { 
     $.win.animate(animateRight); 
     hasSlided = false; 
    } 
} 

ответ

3

This has been deprecated:

Вместо этого вы должны сделать это (в этом очень надуманный пример), и использовать convertPointToView метод:

var baseview = Ti.UI.createView({width : Ti.UI.FILL, height : Ti.UI.FILL}); 
var view = Ti.UI.createView({ width : 20, height : 20 }); 
view.addEventListener('touchmove', function(e) { 
    var globalPoint = convertPointToView({x : e.x, y : e.y}, baseview); 
}); 
+0

Спасибо, я попробую это ... –

Смежные вопросы