春节Qzone做的春节活动设计揭秘

文章描述:Qzone龙年春节彩蛋“会喷火的龙”制作揭秘.

一、背景

今年春节Qzone做的春节活动是让用户许三个新年愿望(发表空间说说的方式),然后自己去拉好友来“赞”自己发的愿望,当每一个愿望积累“赞”的次数超过5次的时候就可以点亮龙身体的三分之一,当3个愿望都积累到的时候就可以全部点亮一条完整的龙,

最终在Qzone个人中心的Feeds里面可以带上这条龙:

当时我第一眼看见这条龙的设计稿脑中就浮现各种想法:“如果这条龙可以动起来将会是什么样子?如果它还会喷火?如果它可以把前面的名字烧红?如果它可以把黄钻的条点亮?如果它可以给大伙拜年?……”

于是萌发出做一个彩蛋的念头……然后就一发不可收拾了……

二、具体步骤

大前提,为了照顾性能问题,采取的“默认显示龙静态图片,当鼠标移上图片的时候覆盖一个龙的喷火flash,当鼠标移到其他的龙的图片再动态修改flash坐标”这样的方案来实现一个flash让所有的静态龙都动起来的效果。

1、最开始要做的就是将这张静态图片

大卸八块,在flash里面做一些拼接、翻转等动画让它动起来

基本上被我拆分成了:头、嘴巴、爪子、腰、尾巴等几个部件,然后做了动画,播放起来就像飞着的龙站了起来:

变化到

2、 默认情况下是在用户的名字后面跟着一张图片,给这个图片绑定了mouseover事件,当鼠标移上这张图片的时候触发显示龙喷火的动作:

3、当鼠标移上这个龙的图片的时候,触发了显示事件,这个时候将龙的flash显示出来,浮在原来的龙上面,尽量地微调坐标进行对齐覆盖:

4、为了可以让flash完全挡住原来的图片,需要将空间的背景色传到flash里面(因为空间的背景色可以因用户装扮而变):

5、为了让体验更加顺畅,达到“鼠标移上龙的时候龙喷火,鼠标离开龙的时候停止”的效果,在龙flash的最顶层放了一个透明的按钮,加上事件:鼠标移上去的时候龙播放喷火效果,鼠标移除去的时候隐藏所有可见元素,同时flash通知js可以过3秒之后将这个flash从可视范围内移去:

*我这里特别处理了一下,让透明按钮的尺寸略小于flash舞台的尺寸,是为了解决在两个龙直接鼠标快速切换会引发的bug(后面有讲到)

6、为了让龙喷火的时候可以将名字烧红(寓意是红红火火),需要将名字传进flash里面,在flash创建一个textField实例来显示名字,同时需要有一个跟空间一样的背景色挡住原来的名字

文字格式为“宋体,14号,右对齐,红色”

并给textField的加上发橙黄的滤镜,达到类似被火烧红的效果,最后控制整个文字mov的动态显隐使到被火慢慢烧红:

7、黄钻lv8的用户名称是一张金黄色的图片,当然要把它也一起烧红:

由于在显示flash的时候这张图片就已经下载完毕了,所以我可以再一次将它加载进flash里面,然后做一些红色调的调整:

加了滤镜就变成

实际效果如下:

然后再动态控制显隐它渐显出来,叠加了原来的图片,看起来就像是被火慢慢地烧红。

8、感觉如果可以加一些拜年的文字会不会更喜庆一些?而且刚好lv8黄钻条上面有位置,所以我在上面加了一个textField,用来随机显示一些拜年语句和跟龙有关的文字:

当然,为了强调我要表达的寓意,进空间第一次mouseover到lv8用户的龙上面都会出现“龙年吉祥,红红火火”这一行字,之后的就随机了。

大概有二十几种不同的文字吧。

9、火焰是找了龙的设计师xiaoerhu同学打黑工特地额外给我画了几帧图片来做成逐帧动画:

套上去就有喷火的效果了:

10、对齐问题比较麻烦,因为龙flash是浮在原来的静态图片上面的,所以对不同浏览器要做绝对定位的微调,ie6/ie7/ie8/ie9/safari/firefox/chrome都单独处理了一遍……(苦逼的前端开发)而且对ie6还要在flash里面对文字和龙的图片之间的位置做特殊调整,特别恶心。

11、名字的背景需要跟进名字的的长度动态调整,这里我采取的方式是当鼠标以上静态图片的时候动态计算这个静态图片距离左边头像的距离来判断这个宽度应该是多少,然后传给flash去动态调整背景宽度:

12、由于龙的flash是漂浮在原来的图片上面的,如果发生任何会让原来这条feeds位置发生变化的事情都会导致出现两条龙的窘境,所以在本次做彩蛋的时候我也地毯式地把能想到的会导致feeds位置发生变化的地方加了一个“IC_FEEDS_POSITION_CHANGE”自定义事件,然后在JS里面监听这个事件,当触发这个事件的时候重新调整一下龙flash的位置,避免出现这个bug。

13、当两条龙之间距离很近的时候,鼠标可以快速在它们之间切换,这个时候我发现需要将触发显隐的按钮调整得略小于flash舞台的大小,才能保证每次mouseout都会触发,不然会导致第一条龙显示在第二个位置的bug:

所以才特意将这个触发显隐的按钮调小一些。

14、这条龙从诞生到2月2号喷火的次数从统计数据显示日均已经达到千万级。

三、总结

这里引用facebook招股书里面提到的一点核心价值观—“敢于冒险”:

敢于冒险

开发优秀产品意味着承担风险。这可能会很令人担忧,使大多数公司不敢采取勇敢的措施。然而,在一个变化如此快速的世界里,如果不敢承担风险,你就注定会失败。我们还有另外一种观点:“最危险的事情就是不敢冒险。”我们鼓励所有人勇敢决策,即便这意味着错误。

因为本次做这个彩蛋也是属于一种新的尝试,从一张静态图片引发出灵感再到后面的一步步实施和调试会发现需要解决的细节问题其实很多,一个看似很小的东西要把它做好也是需要付出很多的心思和精力,不过整个过程让人也很享受,由于很享受很陶醉,整个过程中我自测的效率也很高,基本上开发过程中就覆盖了98%以上可能遇到的bug,包括2个龙之间快速切换的极限测试等等。

最后引用产品同学的话:

“兴趣是最好的工作动力”,也希望大家可以把兴趣和产品融合,创作出更多有意思的东西。

如果有同学还没体验过这条龙的,请赶着这条龙下线前来我们Qzone里面看一下吧~

作者:xiaoer

时间: 2024-10-31 03:55:32

春节Qzone做的春节活动设计揭秘的相关文章

用AxureRP做实例原型设计的步骤

一般来说都是先有实例再组合成整体,但是我们的设计过程都需要先从整体的布局考虑,再来细化每个功能点.因此实例的原型设计在一些中高保真度要求的原型里面就尤为重要,再者一般学习AxureRP都是从模仿别人的做的实例开始的,因而学会实例原型设计,对自己使用AxureRP的技能的提高也是很有帮助的. 这里对实例原型的定义主要是指两个方面,一是单独的功能点或功能页面,如输入框的鼠标单击可修改功能点,注册登录功能页等;二是独立的交互效果,可单独部署的,如幻灯片效果,微博效果等.前者侧重于功能的实现,后者侧重于

用讲故事的方式来做手机产品交互设计

2011中国交互设计体验日在北京举行,elya和Alex代表百度MUX出席并主持了"用讲故事的方式来做手机产品交互设计"的工作坊. 随着移动互联网浪潮滚滚来袭,移动设备交互设计师是时代的弄潮儿.你需要知道怎样为真正的目标用户做设计;需要知道真实用户的使用场景;需要知道怎样让你的产品变得用血有肉;需要知道怎样用讲故事的方式来做产品;需要知道怎样将讲故事的方法贯穿到设计循环中去,本次工作坊也是力求通过一些我们尝试过的方法,跟大家一起展开探讨. 一.手机产品交互设计 十年间,从小屏到大屏,从

通过设计让学习变轻松 - Google 的 Primer 团队是如何做用户体验设计的

本文讲的是通过设计让学习变轻松 - Google 的 Primer 团队是如何做用户体验设计的, 学习一向是个苦差事,如何在设计上下功夫,让学习变得愉快呢? 说起来容易做起来难.直观上讲,人们通常不会全力以赴地学习新知识.调查显示,仅3%的美国成年人在他们的日常生活中会花费时间去学习.¹ 那么可想而知:尽管大量信息对我们来说触手可及,而所有的新技术都似乎在一夜之间涌出,97%的人丝毫不会为了提升自己而花时间寻求这些新知识. 这就是我们团队在Google打造 Primer,时面临的挑战,Prime

web前端-各位大神在做webapp响应设计都用什么方式布局?一般都会用到什么框架

问题描述 各位大神在做webapp响应设计都用什么方式布局?一般都会用到什么框架 各位大神在做webapp响应设计都用什么方式布局?rem还是也结合弹性盒子呀 解决方案 http://mobile.51cto.com/abased-409555.htm 解决方案二: 原来写的简单的项目都是代码获取展示的平面完后自己算

c# 数据库 启动界面无-我做的课程设计,这里和数据库连接,代码显示没有错误,可是一启动界面是空白的,这是为什么?急急急

问题描述 我做的课程设计,这里和数据库连接,代码显示没有错误,可是一启动界面是空白的,这是为什么?急急急 private void btnSure_Click(object sender, EventArgs e) { string userName = tbName.Text; string password = tbPwd.Text; string connString = @"Data Source=.sqlexpress;Initial Catalog=PersonalFinance;I

qzone相册照片编辑器设计案例:减少用户思考的简洁设计

网页制作Webjx文章简介:设计案例:简化用户界面,别让用户思考. ·介绍QQ空间相册的个性化利器,能对照片进行效果的优化.文字编辑等等. 从设计上使用了创新的手法,尽量减少用户的思考.其中,通过界面的特殊表现,让用户更容易学会使用.在使用的过程中,也避免了复杂的操作方式,降低使用门槛. ·定位 了解用户需求·用户期望照片编辑工具拥有"玩"照片的成分:·大多数用户反映,最需要的功能是旋转.裁剪.添加照片的边框:·能给照片添加文字.装饰品:·对照片进行颜色或其他效果优化.- 分析用户需求

电商专题页设计揭秘之动线设计

  一.简介 动线设计? 腾讯ecd高头: 被广泛应用于卖场或建筑内部的人流规划,主要是通过合理的设置通道宽度和路线,以达到主动线和辅助动线的自然衔接,让所有的铺位都处于人们的行进路 线上和视线范围内,避免中途折返.死角和盲区,尽可能地消除用户产生的购物疲劳感,让顾客在卖场停留的时间尽可能长一些,以最大限度以愉悦的心情地逛遍卖 场的所有商品. 经典案例:宜家(IKEA)的卖场设计 宜家的卖场是非常经典的,顾客在从进入开始就被"导线"默默地引导着走完所有角落,你从入口进去就被唯一的一条曲

帮人合伙做生意如何设计制度

戴天宇/文 编者按:一帮聪明人合伙做生意,谁都不想吃亏,都想占别人便宜,结果生意做不成了.怎样设计一种制度让大家都有好处呢?本文作者为最聪明的一群人设计了一套制度,让银行.担保公司.中小企业老板相互博弈,最终办成一件大事.虽然文字显得枯燥.讲的又是挺专业的事,但内在逻辑却妙不可言,对设计企业制度大有帮助. 中小企业融资问题是个世界性难题,也是金融市场化必然的副产物. 这是因为,市场经济是"嫌贫爱富"的,所谓市场配置,说到底,就是跟着利润走,哪里利润高就流向哪里,哪里风险低就流向哪里.信

急!!!求高手带我做毕业设计,已设计好界面,需要把现成的后台代码放入自己的系统中,如何实现

问题描述 我现在是名大四学生,需要完成学校里给的一个项目做为毕业设计,我自己设计了界面,也有现成的ASP.NET后台代码,但是不知道如何才能将例子中的代码转成自己的系统,您能帮助我吗,我的邮箱是manni7298@hotmail.com,期待你的回音 解决方案 解决方案二:建议毕业设计最好还是自己完成的好,找点asp.net方面的书看看应该不难解决方案三:我现在已经有源代码了,就是想学会如何移植