2014-02-15 91 views
2

我想在我的網站/ webapp上集成一串»邊緣動畫«,但所有的<edgeid>_edgePreload.js都會導致頭痛。總之,我真正希望做的是:Adob​​e Edge-no preloader

  1. 包括jQuery和邊緣本身一次,
  2. 負荷<egde_id_egde.js通過Ajax文件和
  3. 終於動態創建的組成,

這樣我就可以在需要時啓動/停止/暫停它們,根本不使用預加載器腳本。

簡而言之:

我怎樣才能»註冊«組成定義,在生成的定義文件進行在這裏:

Edge.registerCompositionDefn(compId, symbols, fonts, resources, opts);

使

Edge.getComposition(<id>)做不使用預加載器就返回組合作品?

順便說一句。:我是通過源代碼加強了一下,發現組成定義沒有一個okToPlay財產,是什麼讓邊緣拒絕退貨組成。

回答

3

從我的經驗來看,你不能這麼做,但你可以使用Coordinated Preloading來模擬效果。

如果要加載的組成,第一添加到您的頭上:

<script> window.AdobeEdge = window.AdobeEdge || {}; window.AdobeEdge.bootstrapLoading = true; </script> 

既然bootstrapLoading啓用,當你想插入一定的補償,創建一個類一個div您設置在邊緣,例如說你有一個my_comp1.html其中有階段,edge_my_comp1類(默認爲類似EDGE-28326120的東西)

<div id="Stage" class="edge_my_comp1"> </div> 

現在使用yepnope或其他有條件的JavaScript加載器加載按需組成:

var loadedComps = {}; 
yepnope({load: "my_comp1_edgePreload.js", 
        callback: function(url, result, key){  
       //when the script is loaded, run these:  
         AdobeEdge.loadResources(); 
         AdobeEdge.playWhenReady(); 

         AdobeEdge.bootstrapCallback(function(compID){ 
          //then 
          loadedComps[compID] = (AdobeEdge.getComposition(compID)); 
         }); 
      }}); 

現在您可以訪問你的補償後與

loadedComps["edge_my_comp1"].play() 

從我的經驗,你還需要一個預加載器添加到您的<頭>(例如,一個空的虛擬預加載器),因爲否則AdobeEdge.bootstrapCallback回調永遠不會火災,從而讓你隱藏stage,不動畫(reference)

加載合成後,請注意,您不能再次加載它:相反,您需要停止並隱藏合成,然後再次顯示並再次播放。