### 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打不开了,说是涉及违规内容被举报?