2013-03-04 18 views
1

我想在容器事件上畫一個組件到容器上,它似乎除了在容器上不可見之外,繪製了它。這是進一步澄清的代碼。將組件拖入一個容器

Ext.define("TapCheck.view.NewTap",{ 
    extend: 'Ext.Container', 
    fullscreen: true, 
    id: 'tappy', 
    initialize: function() { 
     this.callParent(arguments); 
     var padElement = Ext.get('tappy'); 
     padElement.on(['tap'], 
     'onTouchPadEvent', this); 
    }, 
    config: { 
     flex: 1, 
     margin: 10, 
     layout: { 
      type: 'vbox', 
      pack: 'center', 
      align: 'stretch' 
     }, 
     items: [ 
      { 
       html: 'Touch here!' 
      } 
     ] 
     }, 
      onTouchPadEvent: function(e, target, options, eventController) { 
         var component = new Ext.draw.Component({ 
           items: [{ 
            type: 'ellipse', 
            cx: 100, 
            cy: 100, 
            rx: 40, 
            ry: 25, 
            fillStyle: 'blue' 
           }] 
           }); 
     console.log('X: ' + e.getPageX() + ' Y: ' + e.getPageY()); 
    Ext.getCmp('tappy').add([component]); 
    } 
}); 

請讓我知道我錯了,或者這可以做甚麼?

回答

0

我更新了一些你的代碼。最大的變化是:

  • 刪除id配置。不要經常使用它,特別是在定義組件時。
  • 裏面的initialize & onTouchPadEvent功能只是引用組件this
  • 使用Ext.create函數創建組件。

試試這個:

Ext.define("TapCheck.view.NewTap",{ 
    extend: 'Ext.Container', 
    fullscreen: true, 
    initialize: function() { 
     var me = this; 
     me.callParent(arguments); 
     me.on('tap', me.onTouchPadEvent, this); 
    }, 
    config: { 
     flex: 1, 
     margin: 10, 
     layout: { 
      type: 'vbox', 
      pack: 'center', 
      align: 'stretch' 
     }, 
     items: [{ 
      html: 'Touch here!' 
     }] 
    }, 
    onTouchPadEvent: function(e, target, options, eventController) { 
     var component = Ext.create('Ext.draw.Component',{ 
      items: [{ 
       type: 'ellipse', 
       cx: 100, 
       cy: 100, 
       rx: 40, 
       ry: 25, 
       fillStyle: 'blue' 
      }] 
     }); 
     console.log('X: ' + e.getPageX() + ' Y: ' + e.getPageY()); 
     this.add(component); 
    } 
}); 
+0

謝謝您的回答,它沒有然而工作,我想更多的擺弄周圍,並摸索出了容器的佈局應該是一種「適應」,序爲繪製要渲染的組件。 – 2013-03-04 10:04:09

+0

如果您使用的是「VBOX」佈局,則需要爲子項目指定高度;) – A1rPun 2013-03-04 10:11:53

相關問題