动画问题:Titanium

时间:2014-02-01 19:44:23

标签: javascript titanium titanium-mobile titanium-alloy

我是钛的新手,我对动画有一个奇怪的问题,代码是这样的。

var animateRight = Ti.UI.createAnimation({
    left : 150,
    curve:Titanium.UI.ANIMATION_CURVE_EASE_IN_OUT
});

var animateStart = Ti.UI.createAnimation({
    left : 0,
    curve:Titanium.UI.ANIMATION_CURVE_EASE_IN_OUT
});


$.menu.addEventListener('click', function(){
    if($.container.left >= 10){
        //$.container.left = 0;
        $.container.animate(animateStart);  
    }
else{
    //$.container.left = 150;
    $.container.animate(animateRight);
}
});

菜单是一个按钮,当我触摸它时,菜单应该向右移动,如果再次触摸它,菜单应该向左移动,所以如果使用“$ .container.left = 150;”,则动作在菜单中运行良好,但如果使用动画,菜单永远不会返回原始位置。

我认为这个问题适用于动画,但我不确定,有人可以帮助我吗?

感谢。

2 个答案:

答案 0 :(得分:0)

动画非常好。我认为您的情况有问题。通过显示警报来检查这两种情况是否有效

由于

答案 1 :(得分:0)

您可以使用Boolean变量控制动画,例如:

var is_container_change = false;

var animateRight = Ti.UI.createAnimation({
   left : 150,
   curve:Titanium.UI.ANIMATION_CURVE_EASE_IN_OUT
});

var animateStart = Ti.UI.createAnimation({
   left : 0,
   curve:Titanium.UI.ANIMATION_CURVE_EASE_IN_OUT
});

$.menu.addEventListener('click', function(){
   if(is_container_change){
      $.container.animate(animateStart);
   }
   else{
      $.container.animate(animateRight);
   }
   is_container_change = !is_container_change
});