钛:来回动画视图(返回原始位置)

时间:2014-12-04 14:59:00

标签: android ios animation titanium titanium-alloy

我正在研究一个简单的Alloy应用程序。我有一个视图我想要水平来回移动(因此移动然后返回其原始位置)。

我写了这个函数

function move(view) {

  var origin = view.getCenter();

  console.log("origin ", origin);
  console.log("rect ", view.getRect());

  var forth = Titanium.UI.createAnimation();
  forth.duration = 700;
  forth.center = {
    x: 0
  };
  forth.addEventListener('complete', function() {
    view.animate(back);
  });

  var back = Titanium.UI.createAnimation();
  back.duration = 300;
  back.center = {
    x: origin.x
  };
  back.addEventListener('complete', function() {
    alert('completed');
  });

  view.animate(forth);
}

我运行它,它在x: origin.x崩溃,因为origin未定义。此外,view.centerview.rect都未定义,因此我无法存储原始位置。

任何帮助?

由于

PS:代码已经在iOS模拟器上进行了测试,虽然它与Android和iOS兼容。

1 个答案:

答案 0 :(得分:0)

为什么不直接为左侧位置设置动画并使用view.getRect()?

var origin = view.getRect();

//console.log("origin ", origin);
console.log("rect ", view.getRect());

var forth = Titanium.UI.createAnimation();
forth.duration = 5000;
forth.left = 0;

forth.addEventListener('complete', function() {
   view.animate(back);
});

var back = Titanium.UI.createAnimation();
back.duration = 5000;
back.left = origin.x;


back.addEventListener('complete', function() {
  alert('completed');
});

view.animate(forth);