【问题标题】:Issue with animation : Titanium动画问题:钛
【发布时间】:2014-02-01 19:44:23
【问题描述】:

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

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);
}
});

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

我认为问题出在动画上,但我不确定,有人可以帮我吗?

谢谢。

【问题讨论】:

    标签: javascript titanium titanium-mobile titanium-alloy


    【解决方案1】:

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

    谢谢

    【讨论】:

      【解决方案2】:

      您可以使用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
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-03-20
        • 1970-01-01
        • 1970-01-01
        • 2011-08-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多