在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。我的想法是创建父视图,将图像视图添加到此父视图,然后为父视图设置动画。
不幸的是,只要我将儿童添加到视图中,就不能再动画了这个。
任何想法为什么以及如何解决它? 您对一组视图实施拖放的建议是什么?
答案 0 :(得分:1)
我猜你的孩子的意见正在干扰你的触摸事件。要尝试的一件事是为每个子视图将touchEnabled
设置为false,然后将makeDraggable
方法应用于父视图。