[Mugeda HTML5技术教程之19]制作可定制贺卡
本文档通过一个实例介绍可定制贺卡的动画的制作过程。实例包含两部分:
1. 动画部分:介绍动画制作过程中如何给祝福词和落款的文本对象命名,如何给定制按钮定义表单动作。
2. 代码部分:介绍贺卡的脚本逻辑的编写。
例程编辑地址:
https://cn.mugeda.com/animation/edit/0326f6a1
例程预览地址:
https://cn.mugeda.com/client/preview_css3.html?id=0326f6a1
动画部分
动画需要注意修改的地方:
1. 给祝福词和落款等文本对象命名;
2. 给定制按钮定义表单动作。
给祝福词和落款等文本对象命名
下面的例子说明了祝福词和落款的命名过程:
给祝福词命名:选中祝福词所在的组,双击进入组中,选中祝福词文本对象,在属性栏中给该文本对象命名为“greetings”。
给落款命名:同样选中落款文字所在的组,双击进入组中,选中落款文本对象,在属性栏中给它命名为“from”。
用同样的方式,可以为更多的对象进行命名。
给定制按钮定义表单动作
选中定制按钮,在属性栏中的动作中选择“表单”,然后点编辑。
在弹出的编辑表单对话框中依次做如下操作:输入表单名称;选择提交方式为”回调函数”回调函数名称为”createCustomParameters“;确认消息是定制成功后弹出对话框中显示的信息,可以根据需要编写;表单项\添加表单项,来添加表单的表单项。
编辑祝福词表单项:添加表单项后弹出的编辑表单项对话框中,依次做如下操作:名称输入greetings;描述:编辑祝福词;类型选择文本域;取值是祝福词的默认值,可以根据需要填写。完成上面操作后点击保存。
编辑落款人表单项:编辑完祝福词表单项后,再次点击添加表单项,来添加落款人表单项。在弹出的对话框中,依次做:名称输入”from“;描述:”发送人落款“;类型选输入框;取值是落款人的默认值,可以根据需要填写。完成后点击保存。
用同样的方法可以输入更多的表单项目。
表单编辑完成后,点击确认。这样动画中所有的修改都做完了,保存动画。
代码部分
引入外部库文件
我们将贺卡的常用操作封装成了库文件card_common.js,使用这个库文件,简化代码的编写。
首先需要将公共代码库的引入我们的IDE:点击“文件”、“导入”、“脚本”,引入公共脚本:
点击“增加”,然后输入https://www.mugeda.com/third_party/general-usage/js/card_common_mini.js,确定。
编写用户代码
点击工具栏上的脚本按钮,输入用户代码。请参考例程中的代码,以此为基础,修改用应用于自己的贺卡中。
绑定表单和动画元素
绑定表单的意思是,保持表单的内容和动画中的某些元素的内容始终保持一样。如下面例子,defineCustomParameters函数绑定了表单和动画元素。它接受一个mugeda.scene对象和一个数组。
defineCustomParameters(mugeda.scene, [
{ formName: 'to', formDescription: '收信人', mugedaObj: [{ name: 'to', attribute: 'text' }] },
{ formName: 'greetings', formDescription: '编辑祝福词', mugedaObj: [{ name: 'greetings', attribute: 'text' }] },
{ formName: 'from', formDescription: '发送人落款', mugedaObj: [{ name: 'from', attribute: 'text' }, { Name: 'from2', attribute: 'text' }] },
{ formName: 'url', formDescription: '发送人网站', mugedaObj: [{ name: '', attribute: 'data' }] }
]);
数组的意思是这样的,它formName和formDescrition对应于表单中的‘名称’和‘描述’字段,mugedaObj是一个数组,对应于主舞台上的对象。name指的是这个对象的名字,attribute指的是这个对象的属性(如上面的name: 'to', attribute: 'text'指的是mugeda.scene.getObjectByName('to').text)。这样就将一个动画元素和表单元素绑定在了一起,它们的值会保持一样的。
不过这样有一个问题是,如果要引用元件实例中的一个物体,怎么办。可以用”/”分隔层级,例如name: ‘obj1/obj2’指的是名字为obj1元件的实例中的名字为obj2的元素。
attribute = data是一个特殊的值,它不绑定任何动画元素,例如上面的例子中的最后一行,效果是,表单中的url字段,被绑定到了全局变量data.url.value,可以在脚本中直接设值或者取值。
定义微信转发和共享所需要的参数
defineWechatParameters({
"img_url": "https://mugeda-mobile.mugeda.com/weixin/logo_128.png",
"img_width": 128,
"img_height": 128,
"desc": "木疙瘩自己定义的描述",
"title": "木疙瘩自己定义的标题"
});
就像上面那样,img_url、img_width、img_height,定义了缩略图的地址、长、宽,desc和title是描述和标题。
定义表单提交后的行为
通常,用户提交表单后,会调用用户自定义的回调函数,用户可以在回调函数中做一些想要的操作。在完成用户自定操作后,调用finalizeCustomParameters(data)方法,card_common.js将完成贺卡定制的后续操作。
例如:
window.createCustomParameters = function (data) {
finalizeCustomParameters(data);
}
使用
通过网页中的script标签,或者IDE中的载入外部脚本功能,引入https://www.mugeda.com/third_party/general-usage/js/card_common_mini.js
例子
action脚本的例子:
Mugeda.script.push(function (mugeda) {
var mugeda = Mugeda.getMugedaObject();
mugeda.addEventListener("renderReady", function () {
defineCustomParameters(mugeda.scene, [
{ formName: 'to', formDescription: '收信人', mugedaObj: [{ name: 'to', attribute: 'text' }] },
{ formName: 'greetings', formDescription: '编辑祝福词', mugedaObj: [{ name: 'greetings', attribute: 'text' }] },
{ formName: 'from', formDescription: '发送人落款', mugedaObj: [{ name: 'from', attribute: 'text' }, { name: 'from2', attribute: 'text' }] },
{ formName: 'url', formDescription: '发送人网站', mugedaObj: [{ name: '', attribute: 'data' }] }
]);
defineWechatParameters({
"img_url": "https://mugeda-mobile.mugeda.com/weixin/logo_128.png",
"img_width": 128,
"img_height": 128,
"desc": "木疙瘩自己定义的描述",
"title": "木疙瘩自己定义的标题"
});
// 加载音频
var audio = loadAudio('52e374dbe8ad7e2968000099.mp3');
// 点击屏幕后,播放音频
window.light = function () {
try{
audio.play(1);
}catch(e){
audio.play(0);
}
};
window.directLinks = function () {
window.open(data['url'].value, '_blank');
};
window.createCustomParameters = function (data) {
finalizeCustomParameters(data);
};
});
});
[Mugeda HTML5技术教程之19]制作可定制贺卡的更多相关文章
- [Mugeda HTML5技术教程之12]制作跨屏互动应用
mugeda动画平台还可以用来制作跨屏互动的动画应用,比如在PC端的大屏幕上显示动画的主界面,同时会显示出供手机扫描的二维码,手机扫描后会在手机上显示手机端动画界面.通过手机就可以和PC端的显示界面跨 ...
- [Mugeda HTML5技术教程之16]案例分析:制作跨屏互动游戏
本节我们将要做一个跨屏互动应用的案例分析,该应用时给一家商场做活动使用的,是一个跨屏爱消除游戏.PC端页面显示在连接在PC的大屏幕上,参与活动的玩家可以用自己的手机扫描PC端页面上的二维码,连接成功后 ...
- [Mugeda HTML5技术教程之14]案例分析:制作网页游戏
本文档要分析的案例是一个爱消除的网页小游戏,从中可以体会一些Mugeda API的用法和使用Mugeda动画制作网页游戏的方法. (一)游戏规则: 1.开始游戏时,手机出现在最上面一行的任意一格: 2 ...
- [Mugeda HTML5技术教程之2] Mugeda HTML5富媒体平台简介
[Mugeda HTML5技术教程之2] Mugeda HTML5动画平台简介 摘要:Mugeda提供基于云的平台,供开发人员和设计人员快速的开发.发布和统计基于HTML5的,包含丰富动画和交互的移动 ...
- [Mugeda HTML5技术教程之1] HTML5: 生存还是毁灭
[Mugeda HTML5技术教程] 开篇: HTML5 - 生存,还是毁灭 摘要:HTML5并不试图解决所有问题.但是在很多适合的场合,HTML5是不二选择. To be, or not to be ...
- [Mugeda HTML5技术教程之15]案例分析:制作移动教育课件
本文档要分析的案例是一个一氧化碳还原氧化铜的教育小课件,从中可以体会一些Mugeda API的用法和使用Mugeda动画制作移动教育课件的方法.Mugeda为移动教育领域和移动数字出版领域提供理想的教 ...
- [Mugeda HTML5技术教程之11]Mugeda API简介
一.API 概述 Mugeda API 提供了一个简单的,结构化的方法来实时动态管理Mugeda内容.它提供了一下方法: •访问Mugeda内容中的对象. •获取和设置对象属性,如位置.旋转.比例.不 ...
- [Mugeda HTML5技术教程之4] Studio 概述
Mugeda Studio 是基于云平台的制作HTML5动画的专业可视化集成开发环境,可以让你在不需要安装客户端程序的情况下,只通过浏览器就能轻松创作高质量的HTML5动画.HTML5动画相对于传统的 ...
- [Mugeda HTML5技术教程之10]发布内容
动画作品制作好后,就要拿来使用,怎么发布到想要的位置也是动画制作者比较关心的问题.这一节,我们讲述怎样将制作好的动画内容发布到想要的地方.对制作好的内容,可能的使用场景主要有以下三种:直接导出:发布到 ...
随机推荐
- CSS XHTML规范化命名参考
CSS命名规则 头:header 内容:content/containe 尾:footer 导航:nav 侧栏:sidebar 栏目:column 页面外围控制整体布局宽度:wrapper 左右中:l ...
- PHP数组的排序函数
对保存在数组中的相关数据进行排序是一件非常有意义的事情.在PHP中提供了很多函数可以对数组进行排序,这些函数提供了多种排序的方法.例如,可以通过元素的值或键及自定义排序等. ①简单的数组排序函数简单的 ...
- 引入css外部样式表
前言 为什么会有这篇文章,外部引入样式有什么好谈的,不外乎就是 <link rel="stylesheet" href="style.css" /> ...
- C程序设计语言练习题1-4
练习1-4 编写一个程序打印摄氏温度转换为相应华氏温度的转换表. 代码如下: #include <stdio.h> // 包含标准库的信息. int main() // 定义名为main的 ...
- MATLAB cell 数组介绍
转载:http://www.matlabsky.com/forum.php?mod=viewthread&tid=21089 由于工作需要,经常要处理大量的实验数据.基本都是由仪器导出来,随着 ...
- hdu Big Number
#include <cstdio> #include <cstring> #include <cmath> using namespace std; int mai ...
- C++中new和delete的背后( call edx 调用虚表内的第二个函数(析构函数))
关于 C++中new背后的行为, 以前已经写过一篇了 理解C++中new背后的行为, 但是里面也只是泛泛而谈,没有真凭实据, 下面我们从汇编的角度看C++编译器究竟在背后干了什么? 我们的代码很简 ...
- 装饰者模式 - OK
装饰模式(Decorator),动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活. 装饰者模式隐含的是通过一条条装饰链去实现具体对象,每一条装饰链都始于一个Compon ...
- MVC4.0系统开发新手历程(一)
接手了一个简单的销售奖金计算的项目,虽然不算大但是业务逻辑比较复杂,还夹杂了很多的特殊情况,毕竟是大公司什么样的人都有,好了不多说切入正题,项目是公司的一个前辈负责的,在他做系统架构的时候让我们了解下 ...
- tyvj1038忠诚
描述 Description 老管家是一个聪明能干的人.他为财主工作了整整10年,财主为了让自已账目更加清楚.要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意.但是由于一些人的挑拨, ...