System.gc()

Java,C,Ruby,futbol and games

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  4 Posts :: 0 Stories :: 5 Comments :: 0 Trackbacks

2006年4月19日 #

Google于2010年1月4日在主页推出了特别的logo来纪念牛顿的诞辰,此logo的特别之处是当你静候几秒钟后,logo中的一个苹果会掉下来,很好的呼应了logo的主题。
我通过对其页面代码的查看,发现其写的很精致,下面节选关键的代码看一看:

HTML代码节选:


< br  clear =all  id =lgpd > <!-- 从下面开始 -->
< img  src ="/logos/newton10-apple.png"  style ="visibility:hidden" /> <!-- 预加载掉下来的那颗苹果的图片 -->
< href ="/search?q=isaac+newton&ct=newton10-tree&oi=ddle" > <!-- 苹果树logo图片 -->
  
< img  src =/logos/newton10-tree.jpg  width =384  height =138  border =0  alt ="Birthday of Sir Isaac Newton"  
    title
="Birthday of Sir Isaac Newton"  id =logo   style ="margin-top:-1.22em"  
    onload
=""   /></ a > <!-- logo的onload声明并调用了苹果下落函数,见后 -->
  
< img  id ="fall"  src ="/logos/newton10-apple.png"  style ="position:relative;right:248px;bottom:46px" /> <!-- 掉下来的那颗苹果的图片 -->
  
< noscript >
    
< style >
      #fall
{ bottom : -210px!important } /**浏览器不支持脚本则把苹果直接摆在地上**/
    
</ style >
  
</ noscript > <!-- 到这里结束 -->
  
< form

在logo的onload时间中的Javascript:
 1 setTimeout(function(){// 下落函数,2秒后会被调用
 2     var h=0;// 水平速度
 3     var v=1;// 垂直速度
 4     var f=document.getElementById('fall');// 那颗苹果的图片
 5     var i=setInterval(function(){// 单步下落函数,每25毫秒被调用一次
 6         if(f){
 7             var r=parseInt(f.style.right)+h;// 水平位移
 8             var b=parseInt(f.style.bottom)-v;// 垂直位移
 9             f.style.right=r+'px';
10             f.style.bottom=b+'px';
11             if(b>-210){// 未下落到-210
12                 v+=2// 模拟加速度,v'=at+v,at=常量=2
13             }else{// 已下落到-210
14                 h=(v>9)?v*0.1:0;// 落地后横向反弹的速度为垂直速度的0.1倍(理想情况下此比率固定)
15                 v*=(v>9)?-0.3:0// 0.3为每次反弹后剩下的速度百分比(不知是否符合非弹性碰撞规律?)
16             }
17         }
18     },25);
19     google.rein&&google.rein.push(function(){// 资源回收队列,rein是一个数组
20         clearInterval(i);
21         h=0;
22         v=1
23     })
24 },2000)

可以看到代码很好的模拟了重力加速度,让苹果的掉落更真实。
此Javascript还试图通过数组来收集待回收的资源,应该是用于随后释放(但我还未找到监听此数组的函数)。

一段游戏一样的代码,依然可以看出代码作者的用心和水平,读后可谓受益匪浅。
posted @ 2010-01-05 16:40 unrealwalker 阅读(323) | 评论 (0)编辑 收藏

我唯一看完的一本传记。

"游戏并不是真的要‘杀死’某人,它们只是儿时枪战的翻版。"

DOOM,法拉利,火箭科学家……

地址:http://unrealwalker.googlepages.com/DOOM.pdf
感谢本书的作者,译者,以及pdf版制作者(已经读过原著,所以没有仔细检查pdf内容是否有误,见谅)
posted @ 2010-01-05 16:36 unrealwalker 阅读(6996) | 评论 (3)编辑 收藏

GreaseMonkey(下载)是Firefox的扩展,可以通过脚本对你正在浏览的页面进行修改,个人认为GreaseMonkey脚本可以分为两类,hack和fix,hack指通过修改页面为我们带来更多的便利或达到某些特别目的;而fix指对页面错误进行修正,国内用户可能更需要,但这显然是不提倡的用法,GreaseMonkey作为Firefox的扩展,实在没有义务为那些不符合标准的网页遮羞。

原创GreaseMonkey脚本列表

(fix)太平洋下载/看图/评论修复 下载
注意只有在页面下载完成或出现表格后按停止才会生效

(hack)百度MP3无弹出窗口直接下 下载

(fix)动网论坛引用修复 下载
鼠标定位到引用的文字中,并一直按键盘的"向右"即可在后面添加自己的内容

(hack)动网论坛屏蔽某用户发言 下载

水平有限,报告bug请发信给unrealwalker@gmail.com,最好写上出错情况,出错页面,谢谢!

GreaseMonkey相关的一些链接:

Greasemonkey GreaseMonkey扩展主页(E文)

Firefox:Dive Into Greasemonkey 一个GreaseMonkey教程
posted @ 2006-04-19 01:17 unrealwalker 阅读(1705) | 评论 (1)编辑 收藏