我正在研究一个简单的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.center
和view.rect
都未定义,因此我无法存储原始位置。
任何帮助?
由于
PS:代码已经在iOS模拟器上进行了测试,虽然它与Android和iOS兼容。
答案 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);