2013-05-09 7 views
5

カルーセルを使用していて、ボタンをクリックするまでカルーセルをロックしたいと思います。これを行う簡単な方法はありますか?ありがとう!Sencha Touchでカルーセルをロックするには

これまでの私のコード:

Ext.define('BabyBen.view.MainCarousel', { 
    extend: 'Ext.carousel.Carousel', 
    xtype: 'maincarousel', 

    config: { 
     fullscreen: true, 

     activeItem: 1, 
     indicator: false, 

     scrollable: { 
      direction: 'vertical', 
      directionLock: true 
     }, 

     items: [{ 
      xtype: 'whatscreen' 
     }, { 
      xtype: 'startscreen' 
     }, { 
      xtype: 'whenscreen' 
     }] 
    } 
}); 
+0

のようなあなたのコードを見て何をしますか?私は、この今のところ持って@cclerville – cclerville

+0

:Ext.define( 'MyApp.view.MainCarousel' を、{ 拡張: 'Ext.carousel.Carousel'、 XTYPE: 'maincarousel' を、 設定:{ フルスクリーン:真、 activeItem:1、 インジケータ:偽、 スクロール:{
方向: '垂直'、 directionLock:真 }、 アイテム:[{ XTYPE 'whatscreen' }、{ XTYPE。 'startscreen' }、{ xtype: 'whenscreen' }] } }); – bnrq

+0

あなたはあなたの質問にそれを置くことができますか?その読みやすい。 – cclerville

答えて

5

あなたがロック可能なカルーセルのカスタムビューを作成する必要があります:

Ext.define("myApp.view.LockableCarousel",{ 
    extend: 'Ext.Carousel', 
    initialize: function() { 
     this.onDragOrig = this.onDrag; 
     this.onDrag = function (e) { if(!this.locked){this.onDragOrig(e);} } 
      }, 
    locked: false, 
    lock: function() { this.locked = true; }, 
    unlock: function() { this.locked = false; } 
}); 

次にあなたが同様にあなたがする必要があるとして、どこでもextendを使用してこのカスタムカルーセルを拡張することができます

Ext.define("myApp.view.CustomCarousel",{ 
    xtype: 'CustomCarousel', 
    extend: 'myApp.view.LockableCarousel', 

    config: { 
     id: 'LockableCarousel', 
     title: 'Example4', 
     iconCls: 'cloud', 
     indicator: false,   

     items: [ 

      { 
       html : 'Item 1', 
       style: 'background-color: #5E99CC' 
      }, 

      { 
       items: [ 
        { 
         xtype : 'button', 
         text: 'Lock', 
         handler:function() { 
          Ext.getCmp('LockableCarousel').lock(); 
         } 
        }, 
        { 
         xtype : 'button', 
         text: 'Unlock', 
         handler:function() { 
          Ext.getCmp('LockableCarousel').unlock(); 
         } 
        } 
       ] 
      } 



     ] 
    } 
}); 
を使用して、カスタム lockunlock関数を適用してください。

Working Demo

+1

ありがとうございました!カルーセルをロックすることができました。私はあなたの時間を感謝します。 – bnrq

関連する問題