2011-09-14 43 views
1

我想讓我自己的加載屏幕。
它就像加載屏幕,分機號3.3.1文檔確實,但使用EXT 4爲核心...如何在ext4.0.2a中製作隊列動畫功能?

因爲EXT4文件說shift動畫已被棄用。所以我用puff替換shift和滑出動畫...

到目前爲止,我可以做到這一點.. 這裏的代碼;

var loading = Ext.get('loading'); 
var mask = Ext.get('loading-mask'); 

loading.puff({duration: 500}); //first fn 

Ext.defer(function(){ 
    mask.slideOut('b',{duration : 500});//second fn 

    Ext.defer(function(){ 
     mask.destroy(); 
     loading.destroy();//third fn 
    }, 750); 

}, 750); 

但是,上面的代碼看起來很尷尬,因爲我使用了延遲使它排隊。
是否有另一種排隊功能?
在ext3中,它們使用回調函數來使其工作,但我無法在ext4文檔中找到它。
我甚至嘗試過,仍然沒有運氣。

回答

2

您可以指定callback配置:

loading.puff({duration: 500}).animate({callback: function(){ 
    mask.slideOut('b',{duration : 500, callback: function(){ 
     mask.destroy(); 
     loading.destroy();//third fn 
    }});//second fn 
}}); //first fn 

通知的loading.puff({duration: 500}).animate(建設。這是一種特殊的解決方法。這是必要的,因爲粉撲的參數是有限的。並且callback(由於某種錯誤,我很嚴重,必須在那裏)不包括在內。

Here is demo

UPDATE

由於callback被稱爲沒有當動畫完全結束最好是在某些情況下使用afteranimate事件(特別是具有爲loading.destroy();的情況下,回調被調用):

loading.puff({duration: 500}).animate({callback: function(){ 
    mask.slideOut('b',{duration : 500, listeners: { 
     afteranimate: function(){ 
      mask.destroy(); 
      loading.destroy();//third fn 
     } 
    }});//second fn 
}}); //first fn 
+0

感謝您的回覆,但它仍然顯示我的錯誤,...你在Chrome或FF(不是在JSfiddle.net)嘗試它? mybe這就是爲什麼他們不包括對文檔的回調??但是,我會將其標記爲正確的,因爲您的解決方案正好適用於.. –

+0

我也嘗試在http://jsfiddle.net/molecule/上的代碼片段6xvr9/embedded /(結果一)。同樣的錯誤 –

+0

@Warung,我只在JSfiddle.net的Chrome上試過。我認爲錯誤是由於'loading.destroy();'在動畫實際結束之前被調用引發的。這裏是[另一個演示](http://jsfiddle.net/molecule/6xvr9/2/),它使用'afteranimate'事件而不是'callback'。 –