我想在我的网站/ webapp上整合一堆“边缘动画”,但所有<edgeid>_edgePreload.js
都令人头疼。总而言之,我真正想做的是:
<egde_id_egde.js
个文件
这样我就可以在需要时启动/停止/暂停它们,而根本不使用预加载器脚本。
简而言之:
如何»注册«组合定义,如此处生成的定义文件中所述:
Edge.registerCompositionDefn(compId, symbols, fonts, resources, opts);
这样
Edge.getComposition(<id>)
确实会返回合成,而不使用预加载器?
顺便说一句: 我稍微踩过源代码,发现构图定义没有okToPlay
属性,是什么造成了边缘拒绝返回作文。
答案 0 :(得分:3)
根据我的经验,您无法真正做到这一点,但您可以使用Coordinated Preloading来模拟效果。
如果要加载合成,请先将其添加到您的头部:
<script> window.AdobeEdge = window.AdobeEdge || {}; window.AdobeEdge.bootstrapLoading = true; </script>
现在bootstrapLoading
已启用,当您要插入某个comp时,请创建一个div,其中包含您在Edge中设置的类,例如,假设您有一个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));
});
}});
现在您可以稍后使用
访问您的comp loadedComps["edge_my_comp1"].play()
根据我的经验,您仍然需要为您的&lt;添加一个预加载器。头&gt; (例如,一个空的虚拟预加载器),否则AdobeEdge.bootstrapCallback
- 回调永远不会触发,从而使您隐藏stage
,但不会为(reference)设置动画。
加载合成后,请注意您无法再次加载它:相反,您需要停止并隐藏合成,然后再次显示并再次播放它时。