# 使用自定义回调函数 [想要了解更多Mugeda功能?>>>猛戳我,学习更多教程](Mugeda百科全书——文本教程目录.md) * * * * * Mugeda提供完善的交互行为功能,能够无需代码即可方便的添加丰富的交互行为,例如对动画的控制(播放、暂停、跳转等),提交表单,播放视频,上传图片等 在一些特殊情况下,用户可能希望能够编写自定义函数来处理交互逻辑。比如,在一些小游戏内容中,用户可能希望能够实现较为复杂的自定义逻辑来满足游戏的需要。这时候,就可以考虑通过自定义的回调函数来进行处理。本教程将会说明如何定义自己的回调函数来添加自己的代码。 使用自定义的回调函数的基本流程是在创作的动画内容中为一个指定的元素添加名为“回调函数”的行为,并为行为指定一种触发方式。然后,就可以在代码编辑器中添加回调函数的定义了。 下面举例说明一下。在下面的例子中,我们为一个矩形添加一个点击后移动一个圆形的回调函数。首先生成一个包含有圆形和矩形的一个内容,并将圆形命名为"circle"。如下图所示: ![](https://box.kancloud.cn/757a4dafd26255301bedd6e6dd637170_752x617.png) 然后选中矩形,并点击矩形右下角的添加行为按钮。 ![](https://box.kancloud.cn/7c5388caadc668ccf670096984ee51e2_651x403.png) 在出现的“编辑行为”对话框中,选择“回调函数”条目。在右侧的“触发条件”中,默认的触发条件即为“点击”。也可以用其它合适的触发条件,比如“向左滑动”,“摇一摇”等。 ![](https://box.kancloud.cn/0c7a7e345fb5f8a5852797c4870d98c6_915x643.png) 点击操作中的编辑按钮,编辑回调函数的参数。 ![](https://box.kancloud.cn/386e3942c203d4be880e81de2f9aea5e_963x544.png) 下面就可以开始编写回调函数的代码了。首先打开代码窗口。 ![](https://box.kancloud.cn/f8eada52580141d04d49feeb54653b03_833x145.png) 在代码窗口中输入自定的回调函数实现。下面这段代码的含义是,在舞台上寻找一个叫做"circle"的对象,并把它移动到x=100的位置。 window.moveObject = function (){ // 获取名称为name的元素对象 var target = mugeda.scene.getObjectByName(name); if(target){ // 修改获取的元素的位置 target.x = 100; } } ![](https://box.kancloud.cn/408b80657693b673aa7f193d2dbbb525_613x247.png) 回调函数的定义方式为: window.functionName = function(object, param1, param2){} 注意: 1) 目前回调函数需要定义在window的全局空间。我们今后会取消这个约束用更加规范的方式来定义回调函数。 2) 回调函数目前携带3个参数:第1个参数是行为触发的API对象,在上面这个例子中,即为矩形的API对象。除此以外,回调函数允许用户指定两个参数,即第2个和第3个参数param1和param2。这两个参数可以在编辑回调函数属性的时候指定。 在最简单直接的场景下,用户只需要指定一个回调函数名称,并在代码窗口中提供该函数的定义即可。 关于如何在Mugeda内容中使用代码以及API,可以参见如下文档: API的应用:在动画中添加代码 http://bbs.mugeda.com/?/question/305 API的应用:Mugeda API的整体结构 http://bbs.mugeda.com/?/article/282 API的应用:Mugeda对象 http://bbs.mugeda.com/?/question/307 API的应用:scene对象 http://bbs.mugeda.com/?/article/284 API的应用:aObject对象 http://bbs.mugeda.com/?/article/285 API的应用:工具API http://bbs.mugeda.com/?/article/286 API的应用:获取Mugeda后台数据 http://bbs.mugeda.com/?/article/390 观看本节视频教程: http://cdn1.mugeda.com/course/3/3.9/3.9.3.mp4