Appcelerator: поиск текущей позиции изображения - PullRequest
1 голос
/ 14 марта 2011

Я нахожу текущую позицию X и Y в событии touchend .Теперь скажите, что исходная позиция ImageView такова; слева = 100 и top = 100 .На touchend он просто дает значение в 2 цифры, которое составляет 8,10 или 9,11 и т. Д. Теперь я не уверен, каково смещение вида изображения.Если это lastLeft + x и lastTop + y, то это вообще не сработает.Что все, что я хочу, чтобы сохранить текущую позицию изображения в TouchEnd в Db, чтобы я мог восстановить его позже.

Пожалуйста, помогите мне

1 Ответ

1 голос
/ 15 марта 2011

Мой оригинальный ответ был неверным: вот обновленная версия.

Свойство 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();
...