
www.intentionallies.co.jp
因为本人力量有限,请大家多帮忙,一起讨论学习!
这个是Yugo Nakamura同志03年的一作品,最近需要相似的效果所以拿来研究模仿。还好Yugo Nakamura 乃日本Flash教父,起点很高,就算模拟的不伦不类也还有个借口。不过首先还是佩服一下这个作品的创意与效果,约3000行的AS非一般人能搞定的。
首先分析一下Intentionallies这个flash的技术亮点和可能会遇到的困难:
1. 卡片拖动旋转。
需要判断鼠标移动值(单位时间)也就是鼠标速度,以及旋转座标的定位。
2. 卡片丢弃物理程式。
抛物线以及阻力的算法模型。
3. 卡片的阴影效果。
和第2点原因一样。
4. 动态文字实现上面效果。
这个Flash因为使用的是英文,嵌入了整个字体也影响不大,但是中文会是大问题。
5. 数据传递方式。
Yugo使用了44个Xml来保存数据,选择性的传递数据应该有更好的办法。
6. 全场旋转。
使用一个MC为场景中心座标也旋转其他的所有MC。
7. 定义排序。
创意亮点,技术很简单。
我的解决方案:
1. 将屏幕划分为4个坐标区,检测单位时间类坐标差。参见我单独的:检测鼠标移动的速度与角度
2. 已经实现,但是消耗CPU过多,Yugo的作品也存在此问题。
3. 因为2的问题,没有生成实时的阴影,不过无非是复制延迟移动,放弃。
4. 生成一个GBK的Flash字体库。
用Load的方式导入字体。但是卡片字体超过100个应该占系统资源很多了(未验证)。
5. 我用PHP来load,考虑用Remoting
6. 一个大MC中复制小MC而已,消耗过大,而且没有使用Yugo的位图化,带了太多的图片,使用10天撤销此功能,
7. 非常简单,对xml排序,类似SQL操作
问题 4的解决:
为每个字体创建一个Flash,使用字源码方式命名,通过字符映射表我们很容易获得中文范围。
呵呵当然不是用手工创建0xffff个swf文件,偶也是第一次使用JSFL:
var str = 0x0021;
var end = 0xff5e;
var swfpath =0,cnt=0x0020;
for(var i = str ; i <= end ; ++i){
if(cnt >= 4096){
cnt=0;
swfpath ++; }
fl.getDocumentDOM().getTimeline().layers[0].frames[0].elements[0].setTextString(String.fromCharCode(i));
if (i<=0x00ff){
fl.getDocumentDOM().exportSWF("file:///D|/font/"+swfpath+"/00" + new Number(i).toString(16) + ".swf",true);
}else if (i<=0x0fff){
fl.getDocumentDOM().exportSWF("file:///D|/font/"+swfpath+"/0" + new Number(i).toString(16) + ".swf",true);
}else{
fl.getDocumentDOM().exportSWF("file:///D|/font/"+swfpath+ "/"+new Number(i).toString(16) + ".swf",true);}
cnt++;
}
var end = 0xff5e;
var swfpath =0,cnt=0x0020;
for(var i = str ; i <= end ; ++i){
if(cnt >= 4096){
cnt=0;
swfpath ++; }
fl.getDocumentDOM().getTimeline().layers[0].frames[0].elements[0].setTextString(String.fromCharCode(i));
if (i<=0x00ff){
fl.getDocumentDOM().exportSWF("file:///D|/font/"+swfpath+"/00" + new Number(i).toString(16) + ".swf",true);
}else if (i<=0x0fff){
fl.getDocumentDOM().exportSWF("file:///D|/font/"+swfpath+"/0" + new Number(i).toString(16) + ".swf",true);
}else{
fl.getDocumentDOM().exportSWF("file:///D|/font/"+swfpath+ "/"+new Number(i).toString(16) + ".swf",true);}
cnt++;
}
---2006.10.09 PM14:45----
呵呵这个项目早就已经完成,忘记补充内容了,今天修正了一下。
具体的展示可以访问我链接旁边的发牛奶,不便给出URL。
snany 说:
2006-10-29 19:45
我也正好在研究,方便给个原文件吗?谢谢~ snanychen#163.com
tenlin 回复于 2006-10-29 21:23
具体的展示可以访问我链接旁边的发牛奶,www.familk.com
分页: 1/1
1
1
农大的荷花
检测鼠标移动的速度与角度




