1

在 Titanium 项目中,我使用以下代码拖放图像视图

Utils.prototype.makeDraggable = function(view, onDropped) {
    var olt = Titanium.UI.create2DMatrix(), curX=0, curY=0, endX=0, endY=0;
    var animation_in_progress = false;

    view.setTransform(olt);

    view.addEventListener('touchstart', function(e) {
        curX = e.x; curY = e.y;
    });

    view.addEventListener('touchmove', function(e) {
        // update the co-ordinates based on movement since last movement or touch start
        var deltaX = e.x - curX, deltaY = e.y - curY;

        if (!animation_in_progress) {
            olt = olt.translate(deltaX, deltaY);
            animation_in_progress = true;
            view.animate({
                transform : olt,
                duration : 50,
                curve: Titanium.UI.ANIMATION_CURVE_LINEAR
            }, function(e) {
                animation_in_progress = false;
            });
        }
    });

    view.addEventListener('touchend', function(e) {
        if (onDropped) {
            onDropped(e);
        }
    });
}

它在单个 ImageView 上工作正常。

现在我要拖放一组ImageView。我的想法是创建一个父视图,将图像视图添加到这个父视图,然后为父视图设置动画。

不幸的是,一旦我将孩子添加到视图中,这个就不能再动画了。

任何想法为什么以及如何解决它?您对在一组视图上实施拖放有什么建议?

4

1 回答 1

1

我猜你孩子的观点正在干扰你的触摸事件。要尝试的一件事是touchEnabled为每个子视图设置为 false,然后将该makeDraggable方法应用于您的父视图。

于 2013-09-02T16:28:07.460 回答