Мой оригинальный ответ был неверным: вот обновленная версия.
Свойство globalpoint в объекте события содержит координаты на экране, по которым щелкнул пользователь, а свойства x и y - это координаты в представлении, по которому щелкнул пользователь. Отводя одно от другого (и, в зависимости от того, есть ли на вашем экране строка состояния, учитывая это тоже), вы можете обработать верх / лев объекта после завершения анимации.
Я собрал демонстрационную версию, которая работает в 1.6.0, которая демонстрирует это (просто создайте новый проект и замените app.js следующим кодом)
// Windows
var window = Ti.UI.createWindow();
var image = Ti.UI.createImageView({
url: 'KS_nav_ui.png',
width: 100,
height: 100,
top: 0,
left: 0,
backgroundColor: '#f00'
});
image.addEventListener('touchstart', function (e) {
var left = e.globalPoint.x - e.x,
top = e.globalPoint.y - e.y - 20; // The 20 accounts for status bar
Ti.API.info('Starting left: ' + left);
Ti.API.info('Starting top: ' + top);
});
image.addEventListener('touchmove', function(e) {
var newX = e.x + image.animatedCenter.x - image.width/2;
var newY = e.y + image.animatedCenter.y - image.height/2;
image.animate({center:{x:newX,y:newY}, duration:1});
});
image.addEventListener('touchend', function (e) {
var left = e.globalPoint.x - e.x,
top = e.globalPoint.y - e.y - 20; // The 20 accounts for status bar
Ti.API.info('Finishing left: ' + left);
Ti.API.info('Finishing top: ' + top);
});
window.add(image);
window.open();