### API的應用:Mugeda對象
* * * * *
mugeda對象是整個API的最頂層命名空間。
**mugeda對象的獲取**
在腳本編輯器中,mugeda對象已經注入,可以直接在代碼中寫mugeda使用。
如果將動畫嵌入網頁,按照動畫加載前和動畫加載后,獲取mugeda對象的方式不一樣。
1、動畫加載前
如果需要在動畫加載前獲取mugeda對象,可以通過在動畫所在的document上設置偵聽的方式獲取。
~~~
document.addEventListener('mugedaReady', function(){
var mugeda = window['Mugeda']['currentAni'];
});
~~~
如果網頁中嵌入了多個動畫,每個動畫都會引發上面的回調函數。
2、動畫加載后
如果需要在動畫加載后獲取mugeda對象,如果網頁中只有一個動畫,只需要用下面的代碼就可以了(注:window為動畫所在的window)。
`var mugeda = window['Mugeda']['currentAni'];`
如果頁面中包含多個動畫,需要用下面的方式遍歷找到需要動畫的mugeda對象。
~~~
window['Mugeda']['animations'].forEach(function(mugeda){
// 此時可以通過mugeda的其他屬性,例如mugeda.title找到想要的mugeda對象
});
~~~
其他話題:如何將Mugeda動畫嵌入自己的網頁中?
Mugeda動畫除了可以在手機瀏覽器中全屏播放外,還可以將其作為網頁中的一部分,放在自己的網頁中。目前,在PC端的chrome、firefox、IE11等現代瀏覽器中都能正常播放。
可以通過兩種方式將動畫嵌入網頁。
一、iframe方式
如果您使用的是Mugeda提供的發布功能,得到了發布地址,可以在網頁中,直接加入iframe的方式嵌入動畫。
`<iframe frameborder="0" width="320" height="512" src="發布后的地址"> </iframe>;`
如果您是通過導出動畫包的方式(zip文件),將文件解壓托管到自己的網絡空間中,也可以通過上面的方式,將iframe的src屬性指向導出包中的index.html文件的地址。
二、直接嵌入方式
有些時候,可能不希望通過iframe加載動畫,例如,在早期ios版本中,iframe可能有一些性能或兼容性問題,或者希望擁有更好的可控性,可以將Mugeda直接嵌入網頁中。
1、靜態載入
在每個動畫導出包中,都包含loader.js文件。在html代碼中加入以下的片段,指向這個文件。
~~~
<div style="width:320px;height:512px;position:relative;">
<script>
window._mrmcp = {
"creative_path": "pa5/", // 指向動畫文件夾的位置
"script_id": "box", // 包含動畫script元素的id
"render_mode": "embedded"
}
</script>
<script src="pa5/loader.js" id="box"></script>
</div>
~~~
2、動態插入
在不允許直接修改html的情況下,可以通過代碼的方式,動態的將動畫加到網頁中。假設網頁中存在id為container1和container2的空div:
~~~
<div id="container1" style="width:320px;height:512px;position:relative;"></div>
<div id="container2" style="width:320px;height:512px;position:relative;"></div>
~~~
~~~
// 下面的代碼,動態的將2個動畫插入這兩個空div中。
<script>
var script = document.createElement("script");
script.src = "pa5/loader.js";
script.id = "script1.js";
window._mrmcp = {
"creative_path": "pa5/",
"script_id": "script1",
"render_mode": "embedded"
}
script.onload = function(){
var script = document.createElement("script");
script.src = "pa6/loader.js";
script.id = "script2.js";
window._mrmcp = {
"creative_path": "pa6/",
"script_id": "script2",
"render_mode": "embedded"
}
document.getElementById("container2").appendChild(script);
}
document.getElementById("container1").appendChild(script);
</script>
~~~
**mugeda對象的事件**
mugeda對象包含動畫加載過程中的事件,如下代碼所示:
~~~
var mugeda = window["Mugeda"]["currentAni"];
mugeda.addEventListener("scriptready", function(){
// 當動畫腳本加載完成后引發回調,this指向mugeda對象(下同)。
});
~~~
~~~
mugeda.addEventListener("imageready", function(){
// 當動畫預加載圖片完成后引發回調。
});
~~~
~~~
mugeda.addEventListener("renderready", function(){
// 當動畫準備完成,開始播放前的那一刻引發回調。
});
~~~
~~~
mugeda.addEventListener("click", function(){
// 在舞臺上偵聽點擊事件
});
~~~
其他話題:動畫在顯示加載界面時,到底在加載什么?
動畫需要加載必要的文件后才可以正常播放:
js文件:在腳本窗口中輸入的腳本、通過“導入”,“腳本”對話框加入的腳本,播放器的依賴文件的腳本。
圖片:需要預先加載一部分圖片(目前是預先加載第一頁的圖片),以免渲染開始動畫時,圖片沒有加載而出現空白畫面。
加載時,圖片和腳本并行加載。當所有腳本加載完成,在mugeda對象上引發scriptready事件,此時,可以訪問到所有的腳本;當所有圖片加載完成后,引發imageready事件。當兩個時間都引發后,引發renderready事件。
- 閱讀須知
- 一、Mugeda快速入門
- 平臺介紹
- 快速入門
- 添加預置動畫
- 制作翻頁動畫
- 學會使用Mugeda模板
- 作品創建前必讀
- H5作品相關設置
- 手機屏幕適配方法
- 圖片、聲音及視頻處理
- 二、界面與舞臺
- 界面與舞臺簡介
- 舞臺縮放和物體縮放功能
- 翻頁的相關設置
- 關鍵幀和頁面的命名
- 加載的相關設置
- 物體屬性設置
- 元件界面介紹
- 三、素材處理及媒體使用
- 上傳圖片
- 文本/文本段落
- 插入網頁
- 幻燈片
- 上傳視頻和聲音
- 繪制素材
- 云字體
- 曲線圖表
- 建組
- 全景功能
- 粘貼第三方文字和圖片
- 常用編輯操作
- 導入PSD及注意事項
- 聲音和視頻的壓縮
- 四、動畫類型
- 時間軸和圖層
- 選擇工具
- Mugeda動畫類型
- 分頁/加載頁
- 標尺和輔助線的使用
- 復制幀/圖層
- 五、交互行為
- 行為添加以及觸發事件
- 幀的行為
- 頁的行為
- 播放元件片段
- 改變元素屬性
- 改變圖片
- 設置定時器
- 手機功能
- 跳轉鏈接
- 六、控件使用
- 陀螺儀
- 定時器
- 隨機數
- 擦玻璃
- 點贊
- 繪畫板
- 七、微信功能
- 微信頭像/微信昵稱
- 定制圖片
- 錄制聲音
- 分享信息
- 八、表單
- 自定義表單
- 默認表單
- 定制文字
- 九、關聯綁定及邏輯判斷
- 舞臺動畫關聯
- 元件動畫關聯
- 屬性關聯
- 自動關聯
- 公式關聯
- 條件判斷
- 邏輯表達式判斷
- 十、Mugeda API
- API的應用:在動畫中添加代碼
- API的應用:Mugeda API的整體結構
- API的應用:Mugeda對象
- API的應用:scene對象
- API的應用:aObject對象
- API的應用:工具API
- API的應用:獲取Mugeda后臺數據
- API的應用:使用自定義回調函數
- API的應用:將Mugeda部署在第三方服務器
- 十一、Mugeda新功能
- 連線功能
- 抽獎組件
- 聲音控制更新功能一覽
- 附錄1:常見問題集
- 如何壓縮圖片、聲音和視頻?
- 為什么導入H5里的視頻無法播放?
- Mugeda里的模板如何使用?
- 如何實現H5里可以定制文字和圖片的功能?
- H5作品的文檔信息設置?
- 我想讓一個物體不斷循環動,怎么實現?
- 如何復制幀/圖層?
- 為什么無法導入PSD?
- 邏輯表達式要怎么寫?
- 為什么我的背景音樂無法播放?
- 為什么我的背景音樂只在一頁中播放?
- 為什么打開內容時,會提示素材缺失?
- 為什么我的內容發布后還是會有橙色的廣告條?
- 為什么我做的H5打不開了,說是涉及違規內容被舉報?