1

我正在使用钛应用加速器设计一个抽认卡应用程序,最终目标是使用可滚动视图来显示“包”中的每张卡片,然后点击一张卡片(即视图中的卡片),这应该围绕它的轴旋转(即翻转)以显示反面。

您可以从下图中看到我希望实现的目标。

在此处输入图像描述

不幸的是,当点击其中一个面板时,它不是子视图动画,而是滚动视图中的最后一个子动画。

我知道这与我在循环中分配变量的事实有关,但是如果有人可以查看我的代码并告诉我我做错了什么,那就太好了。

在 JQuery 中它看起来像这样

$(FrontView).click(function(){

$(this).parent().flip() //how do I access $(this) and $(this).parent() in Appcelerator?

});

这是我的应用加速器代码:

while(rows.isValidRow()){

         var FrontView = Ti.UI.createView({

          backgroundImage: '/global/card_bg.png',
          width: 295,
         height:297

    });  

         var BackView = Ti.UI.createView({

          backgroundImage: '/global/card_bg.png',
          width: 295,
          height:297

    });  


 var ControlView = Titanium.UI.createView({
 backgroundColor:"#333",
 bubbleParent : false,
 width: 295,
 height:297,
 top : 100

}); 

FrontView.addEventListener('singletap', function() {
        Ti.API.info('singletap');
        ControlView.animate({view:BackView,transition:Ti.UI.iPhone.AnimationStyle.FLIP_FROM_RIGHT});

    });

BackView.addEventListener('singletap', function() {
        Ti.API.info('singletap');
ControlView.animate({view:FrontView,transition:Ti.UI.iPhone.AnimationStyle.FLIP_FROM_LEFT});

    });


  $.scrollable_view.addView(ControlView);
  ControlView.add(BackView);  
  ControlView.add(FrontView);  

 rows.next();

} //endwhile

有人可以帮忙吗?

4

2 回答 2

1

如果您在事件回调中放置一个返回变量,您可以访问点击源。试试这个,看看它是否有效:

FrontView.addEventListener('singletap', function(e) {
    Ti.API.info('singletap');
    e.source.animate({view:BackView,transition:Ti.UI.iPhone.AnimationStyle.FLIP_FROM_RIGHT});
});

BackView.addEventListener('singletap', function(e) {
    Ti.API.info('singletap');
    e.source.animate({view:FrontView,transition:Ti.UI.iPhone.AnimationStyle.FLIP_FROM_LEFT});
});
于 2013-02-01T21:44:13.087 回答
0

我发现当您在 Scrollable View 的 EventListener 中翻转卡片时它可以工作。看看这个:https ://gist.github.com/4683264

于 2013-01-31T14:43:32.057 回答