2011-05-05 105 views
0

有沒有加載時掩蓋圖表的方法? LineChart事件'afterrender',商店有'負載',但它不是我所需要的。 我看到他們和最終的圖表渲染之間有足夠的延遲。 tnxExtjs圖表加載掩碼

Env:extjs 3.3.1。 flash

var chart = new Ext.chart.LineChart({ 
        id: 'chart1', 
        store: store, 
        xField: 'name', 
        yField: 'visits', 
        listeners: { 
        'afterrender': function() { 
         Ext.getCmp('chart1').getEl().unmask(); 
        } 
       } 
      }); 

回答

0

嘗試使用render或beforerender事件掛鉤。

0

我認爲這將解決您的問題

store.load({ 
     scope: this, 
     callback: function(records, operation, success) { 

Ext.getCmp('chart1').getEl().unmask(); 

} 
}); 

否則你可以用圖表的激活事件揭露它。

1

爲什麼你會在該組件的事件中使用getCmp?該函數的參數:

listeners: { 
    afterrender: function(chart) { 
     chart.getEl().unmask(); 
    } 
} 

另外,還要留意內存泄露的,因爲這會保持這個圖表上的監聽,直到它被摧毀,但它僅呈現一次

listeners : { 
    afterrender : { 
     single : true, 
     fn  : function(chart) { 
      chart.getEl().unmask(); 
     } 
    } 
} 

使用單= true,則將在事件首次發射後自行消失。你也可以放入延遲並傳遞一個數字(以毫秒爲單位)來延遲觸發,緩衝區(不用於afterrender)並傳遞一個數字(以毫秒爲單位),並且所有在毫秒數內的相同事件將被放入一個事件發射,範圍改變功能的範圍。其他一些,但這些是前4個選項。