Google Gravity JS代码

体验:http://mrdoob.com/projects/chromeexperiments/google_gravity/

  1. var canvas;
  2. var delta = [0,0];
  3. var stage = [window.screenX,window.screenY,window.innerWidth,window.innerHeight];
  4. getBrowserDimensions();
  5. var isRunning = false;
  6. var isMouseDown = false;
  7. var worldAABB;
  8. var world;
  9. var iterations = 1;
  10. var timeStep = 1/25; 
  11. var walls = new Array();
  12. var wall_thickness = 200;
  13. var wallsSetted = false;
  14. var mouseJoint;
  15. var mouseX = 0;
  16. var mouseY = 0;
  17. var mouseOnClick = new Array();
  18. var timer = 0;
  19. var elements = new Array();
  20. var bodies = new Array();
  21. var properties = new Array();
  22. var gWebSearch;
  23. var imFeelingLuckyMode = false;
  24. var resultBodies = new Array();
  25. var orientation = { x: 0, y: 1 };
  26. init();
  27. if (location.search != "")
  28. {
  29.         var params = location.search.substr(1).split("&")
  30.         for (var i = 0; i < params.length; i++)
  31.         {
  32.                 var param = params[i].split("=");
  33.                 if (param[0] == "q")
  34.                 {
  35.                         document.getElementById(‘q’).value = param[1];
  36.                         run();
  37.                         break;
  38.                 }
  39.         }
  40. }
  41. // GOOGLE API
  42. function onLoad()
  43. {
  44.         gWebSearch = new GwebSearch();
  45.         gWebSearch.setResultSetSize(GSearch.SMALL_RESULTSET);
  46.         gWebSearch.setSearchCompleteCallback(null, onWebSearch);
  47.         if (document.getElementById(‘q’).value != ”)
  48.                 search();
  49. }
  50. function onWebSearch()
  51. {
  52.         if(imFeelingLuckyMode)
  53.         {
  54.                 location.href = gWebSearch.results[0].unescapedUrl;
  55.                 return;
  56.         }
  57.         
  58.         for (var i = 0; i < gWebSearch.results.length; i++)
  59.                 addResult(gWebSearch.results[i]);
  60. }
  61. //
  62. function init()
  63. {
  64.         canvas = document.getElementById(‘canvas’);
  65.         
  66.         document.onmousedown = onDocumentMouseDown;
  67.         document.onmouseup = onDocumentMouseUp;
  68.         document.onmousemove = onDocumentMouseMove;
  69.         document.ondblclick = onDocumentDoubleClick;
  70.         
  71.         document.onkeypress = onDocumentKeyPress;
  72.         document.addEventListener(‘touchstart’, onDocumentTouchStart, false);
  73.         document.addEventListener(‘touchmove’, onDocumentTouchMove, false);
  74.         document.addEventListener(‘touchend’, onDocumentTouchEnd, false);
  75.         window.addEventListener( ‘deviceorientation’, onWindowDeviceOrientation, false );
  76.         // init box2d
  77.         
  78.         worldAABB = new b2AABB();
  79.         worldAABB.minVertex.Set(-200, -200);
  80.         worldAABB.maxVertex.Set( screen.width + 200, screen.height + 200);
  81.         world = new b2World(worldAABB, new b2Vec2(0, 0), true);
  82.         
  83.         // walls        
  84.         setWalls();
  85.         // Get box2d elements
  86.         
  87.         elements = getElementsByClass("box2d");
  88.                 
  89.         for (i = 0; i < elements.length; i++) {
  90.                 var element = elements[i];
  91.                 properties[i] = findPos(element);
  92.                 properties[i][2] = element.offsetWidth;
  93.                 properties[i][3] = element.offsetHeight;
  94.         }
  95.         
  96.         for (i = 0; i < elements.length; i++) {
  97.                 var element = elements[i];
  98.                 element.style.position = ‘absolute’;
  99.                 element.style.left = properties[i][0] + ‘px’;
  100.                 element.style.top = properties[i][1] + ‘px’;
  101.                 // element.style.backgroundColor = ‘#ffff00’;
  102.                 element.onmousedown = onElementMouseDown;
  103.                 element.onmouseup = onElementMouseUp;
  104.                 element.onclick = onElementClick;
  105.                 
  106.                 bodies[i] = createBox(world, properties[i][0] + (properties[i][2] >> 1), properties[i][1] + (properties[i][3] >> 1), properties[i][2] / 2, properties[i][3] / 2, false);                
  107.         }
  108. }
  109. function run() {
  110.         isRunning = true;
  111.         setInterval(loop, 25);        
  112. }
  113. //
  114. function onDocumentMouseDown() {
  115.         isMouseDown = true;
  116.         return false;
  117. }
  118. function onDocumentMouseUp() {
  119.         isMouseDown = false;
  120.         return false;
  121. }
  122. function onDocumentMouseMove() {
  123.         if (!isRunning)
  124.                 run();
  125.         mouseX = window.event.clientX;
  126.         mouseY = window.event.clientY;
  127. }
  128. function onDocumentDoubleClick() {
  129.         reset();
  130. }
  131. function onDocumentKeyPress(event) {
  132.         if (event.charCode == 13)
  133.                 search();
  134. }
  135. function onDocumentTouchStart( event ) {
  136.         if(event.touches.length == 1) {
  137.                 event.preventDefault();
  138.                 if (!isRunning)
  139.                         run();
  140.                 // Faking double click for touch devices
  141.                 var now = new Date().getTime();
  142.                 if (now – timeOfLastTouch  < 250) {
  143.                         reset();
  144.                         return;
  145.                 }
  146.                 timeOfLastTouch = now;
  147.                 mouseX = event.touches[0].pageX;
  148.                 mouseY = event.touches[0].pageY;
  149.                 isMouseDown = true;
  150.         }
  151. }
  152. function onDocumentTouchMove( event ) {
  153.         if(event.touches.length == 1) {
  154.                 event.preventDefault();
  155.                 mouseX = event.touches[0].pageX;
  156.                 mouseY = event.touches[0].pageY;
  157.         }
  158. }
  159. function onDocumentTouchEnd( event ) {
  160.         if(event.touches.length == 0) {
  161.                 event.preventDefault();
  162.                 isMouseDown = false;
  163.         }
  164. }
  165. function onWindowDeviceOrientation( event ) {
  166.         if ( event.beta ) {
  167.                 orientation.x = Math.sin( event.gamma * Math.PI / 180 );
  168.                 orientation.y = Math.sin( ( Math.PI / 4 ) + event.beta * Math.PI / 180 );
  169.         }
  170. }
  171. //
  172. function onElementMouseDown() {
  173.         mouseOnClick[0] = window.event.clientX;
  174.         mouseOnClick[1] = window.event.clientY;        
  175.         return false;
  176. }
  177. function onElementMouseUp() {
  178.         return false;
  179. }
  180. function onElementClick() {
  181.         var range = 5;
  182.         
  183.         if (mouseOnClick[0] > window.event.clientX + range || mouseOnClick[0] < window.event.clientX – range && mouseOnClick[1] > window.event.clientY + range || mouseOnClick[1] < window.event.clientY – range)
  184.                 return false;
  185.         
  186.         if (this == document.getElementById(‘btnG’)) search();
  187.         if (this == document.getElementById(‘btnI’)) imFeelingLucky();
  188.         if (this == document.getElementById(‘q’)) document.f.q.focus();
  189. }
  190. // API STUFF
  191. function search() {
  192.         if (!isRunning)
  193.                 run();
  194.         
  195.         onDocumentDoubleClick(); // clean
  196.         gWebSearch.execute(document.getElementById(‘q’).value);
  197.         return false;
  198. }
  199. function imFeelingLucky() {
  200.         imFeelingLuckyMode = true;
  201.         gWebSearch.execute(document.getElementById(‘q’).value);
  202.         return false;        
  203. }
  204. function addResult(data) {
  205.         var element = document.createElement(‘div’);
  206.         element.innerHTML = ‘<div><h3 class=r><a href="’ + data.unescapedUrl + ‘" class=l onmousedown="return clk(this.href,\’\’,\’\’,\’res\’,\’1\’,\’&amp;sig2=3Ti89FTuSYfE6a-5k1jjKQ\’)">’ + data.title + ‘</a></h3><span style=display:inline-block><button class=w10 title="Promote"></button><button class=w20 title="Remove"></button></span><div class="s">’ + data.content + ‘<br><cite>’ + data.visibleUrl + ‘</cite></div>’;
  207.         
  208.         canvas.appendChild(element);
  209.         properties.push([Math.random() * (window.innerWidth / 2),-200,600,element.offsetHeight]);
  210.         
  211.         var i = properties.length – 1;
  212.         element.style.position = ‘absolute’;
  213.         element.style.left = 0 + ‘px’;
  214.         element.style.top = -100 + ‘px’;
  215.         element.style.backgroundColor = ‘#ffffff’;
  216.         element.onmousedown = onElementMouseDown;
  217.         element.onmouseup = onElementMouseUp;
  218.         element.onclick = onElementClick;
  219.         elements[i] = element;
  220.         resultBodies.push( bodies[i] = createBox(world, properties[i][0] + (properties[i][2] >> 1), properties[i][1] + (properties[i][3] >> 1), properties[i][2] / 2, properties[i][3] / 2, false, element) );
  221.         
  222. }
  223. function reset() {
  224.         for (i = 0; i < resultBodies.length; i++) {
  225.                 var body = resultBodies[i]
  226.                 canvas.removeChild( body.GetUserData().element );
  227.                 world.DestroyBody(body);
  228.                 body = null;
  229.         }
  230.         
  231.         resultBodies = new Array();
  232. }
  233. //
  234. function loop() {
  235.         if (getBrowserDimensions())
  236.                 setWalls();
  237.         delta[0] += (0 – delta[0]) * .5;
  238.         delta[1] += (0 – delta[1]) * .5;
  239.         
  240.         world.m_gravity.x = orientation.x * 350 + delta[0];
  241.         world.m_gravity.y = orientation.y * 350 + delta[1];
  242.         mouseDrag();
  243.         world.Step(timeStep, iterations);        
  244.         
  245.         for (i = 0; i < elements.length; i++) {
  246.                 var body = bodies[i];
  247.                 var element = elements[i];
  248.                 
  249.                 element.style.left = (body.m_position0.x – (properties[i][2] >> 1)) + ‘px’;
  250.                 element.style.top = (body.m_position0.y – (properties[i][3] >> 1)) + ‘px’;
  251.                 var rotationStyle = ‘rotate(‘ + (body.m_rotation0 * 57.2957795) + ‘deg)’;
  252.                 element.style.WebkitTransform = rotationStyle;
  253.                 element.style.MozTransform = rotationStyle;
  254.                 element.style.OTransform = rotationStyle;
  255.         }
  256. }
  257. // .. BOX2D UTILS
  258. function createBox(world, x, y, width, height, fixed, element) {
  259.         if (typeof(fixed) == ‘undefined’)
  260.                 fixed = true;
  261.         var boxSd = new b2BoxDef();
  262.         if (!fixed)
  263.                 boxSd.density = 1.0;
  264.         boxSd.extents.Set(width, height);
  265.         var boxBd = new b2BodyDef();
  266.         boxBd.AddShape(boxSd);
  267.         boxBd.position.Set(x,y);
  268.         boxBd.userData = {element: element};
  269.         return world.CreateBody(boxBd)
  270. }
  271. function mouseDrag() {
  272.         // mouse press
  273.         if (isMouseDown && !mouseJoint) {
  274.                 var body = getBodyAtMouse();
  275.                 
  276.                 if (body) {
  277.                         var md = new b2MouseJointDef();
  278.                         md.body1 = world.m_groundBody;
  279.                         md.body2 = body;
  280.                         md.target.Set(mouseX, mouseY);
  281.                         md.maxForce = 30000.0 * body.m_mass;
  282.                         md.timeStep = timeStep;
  283.                         mouseJoint = world.CreateJoint(md);
  284.                         body.WakeUp();
  285.                 }
  286.         }
  287.         
  288.         // mouse release
  289.         if (!isMouseDown) {
  290.                 if (mouseJoint) {
  291.                         world.DestroyJoint(mouseJoint);
  292.                         mouseJoint = null;
  293.                 }
  294.         }
  295.         
  296.         // mouse move
  297.         if (mouseJoint) {
  298.                 var p2 = new b2Vec2(mouseX, mouseY);
  299.                 mouseJoint.SetTarget(p2);
  300.         }
  301. }
  302. function getBodyAtMouse() {
  303.         // Make a small box.
  304.         var mousePVec = new b2Vec2();
  305.         mousePVec.Set(mouseX, mouseY);
  306.         
  307.         var aabb = new b2AABB();
  308.         aabb.minVertex.Set(mouseX – 1, mouseY – 1);
  309.         aabb.maxVertex.Set(mouseX + 1, mouseY + 1);
  310.         // Query the world for overlapping shapes.
  311.         var k_maxCount = 10;
  312.         var shapes = new Array();
  313.         var count = world.Query(aabb, shapes, k_maxCount);
  314.         var body = null;
  315.         
  316.         for (var i = 0; i < count; ++i) {
  317.                 if (shapes[i].m_body.IsStatic() == false) {
  318.                         if ( shapes[i].TestPoint(mousePVec) ) {
  319.                                 body = shapes[i].m_body;
  320.                                 break;
  321.                         }
  322.                 }
  323.         }
  324.         return body;
  325. }
  326. function setWalls() {
  327.         if (wallsSetted) {
  328.                 world.DestroyBody(walls[0]);
  329.                 world.DestroyBody(walls[1]);
  330.                 world.DestroyBody(walls[2]);
  331.                 world.DestroyBody(walls[3]);
  332.                 
  333.                 walls[0] = null; 
  334.                 walls[1] = null;
  335.                 walls[2] = null;
  336.                 walls[3] = null;
  337.         }
  338.         
  339.         walls[0] = createBox(world, stage[2] / 2, – wall_thickness, stage[2], wall_thickness);
  340.         walls[1] = createBox(world, stage[2] / 2, stage[3] + wall_thickness, stage[2], wall_thickness);
  341.         walls[2] = createBox(world, – wall_thickness, stage[3] / 2, wall_thickness, stage[3]);
  342.         walls[3] = createBox(world, stage[2] + wall_thickness, stage[3] / 2, wall_thickness, stage[3]);        
  343.         
  344.         wallsSetted = true;
  345. }
  346. // .. UTILS
  347. function getElementsByClass( searchClass ) {
  348.         var classElements = new Array();
  349.         var els = document.getElementsByTagName(‘*’);
  350.         var elsLen = els.length
  351.         for (i = 0, j = 0; i < elsLen; i++) {
  352.                 var classes = els[i].className.split(‘ ‘);
  353.                 for (k = 0; k < classes.length; k++)
  354.                         if ( classes[k] == searchClass )
  355.                                 classElements[j++] = els[i];
  356.         }
  357.         return classElements;
  358. }
  359. function findPos(obj) {
  360.         var curleft = curtop = 0;
  361.         if (obj.offsetParent) {
  362.                 do {
  363.                         curleft += obj.offsetLeft;
  364.                         curtop += obj.offsetTop;
  365.                 } while (obj = obj.offsetParent);
  366.         }
  367.         return [curleft,curtop];
  368. }
  369. function getBrowserDimensions() {
  370.         var changed = false;
  371.                 
  372.         if (stage[0] != window.screenX) {
  373.                 delta[0] = (window.screenX – stage[0]) * 50;
  374.                 stage[0] = window.screenX;
  375.                 changed = true;
  376.         }
  377.         
  378.         if (stage[1] != window.screenY) {
  379.                 delta[1] = (window.screenY – stage[1]) * 50;
  380.                 stage[1] = window.screenY;
  381.                 changed = true;
  382.         }
  383.         
  384.         if (stage[2] != window.innerWidth) {
  385.                 stage[2] = window.innerWidth;
  386.                 changed = true;
  387.         }
  388.         
  389.         if (stage[3] != window.innerHeight) {
  390.                 stage[3] = window.innerHeight;
  391.                 changed = true;
  392.         }
  393.         
  394.         return changed;
  395. }

复制代码 直接地址:
http://mrdoob.com/projects/chrom … _gravity/js/Main.js

织梦DEDECMS默认flash幻灯片参数修改的方法

用记事本打开首页模板文件templets/default/index.htm

源代码为
<script language=’javascript’>
linkarr = new Array();
picarr = new Array();
textarr = new Array();
var swf_width=280;
var swf_height=192;
//文字颜色|文字位置|文字背景颜色|文字背景透明度|按键文字颜色|按键默认颜色|按键当前颜色|自动播放时间|图片过渡效果|是否显示按钮|打开方式
var configtg=’0xffffff|1|0x3FA61F|5|0xffffff|0xC5DDBC|0x000033|2|3|1|_blank’;
var files = "";
var links = "";
var texts = "";
//这里设置调用标记
{dede:arclist flag=’f’ row=’5′}
linkarr[[field:global.autoindex/]] = "[field:arcurl/]";
picarr[[field:global.autoindex/]] = "[field:litpic/]";
textarr[[field:global.autoindex/]] = "[field:title function=’html2text(@me)’/]";
{/dede:arclist}
for(i=1;i<picarr.length;i++){
if(files=="") files = picarr[i];
else files += "|"+picarr[i];
}
for(i=1;i<linkarr.length;i++){
if(links=="") links = linkarr[i];
else links += "|"+linkarr[i];
}
for(i=1;i<textarr.length;i++){
if(texts=="") texts = textarr[i];
else texts += "|"+textarr[i];
}
document.write(‘<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="’+ swf_width +’" height="’+ swf_height +’">’);
document.write(‘<param name="movie" value="{dede:global.cfg_templeturl /}/default/images/bcastr3.swf"><param name="quality" value="high">’);
document.write(‘<param name="menu" value="false"><param name=wmode value="opaque">’);
document.write(‘<param name="FlashVars" value="bcastr_file=’+files+’&bcastr_link=’+links+’&bcastr_title=’+texts+’&bcastr_config=’+configtg+’">’);
document.write(‘<embed src="{dede:global.cfg_templeturl /}/default/images/bcastr3.swf" wmode="opaque" FlashVars="bcastr_file=’+files+’&bcastr_link=’+links+’&bcastr_title=’+texts+’&bcastr_config=’+configtg+’&menu="false" quality="high" width="’+ swf_width +’" height="’+ swf_height +’" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />’); document.write(‘</object>’);
</script>>

——————————————————————————–

参数设置:
高级设置: 
默认参数字符串 
0xffffff:文字颜色| 2:文字位置| 0xff6600:文字背景颜色| 60:文字背景透明度| 0xffffff:按键文字颜色| 0xff6600:按键默认颜色| 0x000033:按键当前颜色| 8:自动播放时间(秒)| 2:图片过渡效果| 1:是否显示按钮| _blank:打开新窗口 
颜色都以0x开始16进制数字表示 
文字颜色:题目文字的颜色 
文字位置:0表示题目文字在顶端,1表示文字在底部,2表示文字在顶端 
文字背景透明度:0-100值,0表示全部透明 
按键文字颜色:按键数字颜色 
按键默认颜色:按键默认的颜色 
按键当前颜色:当前图片按键颜色 
自动播放时间:单位是秒 
图片过渡效果:0,表示亮度过渡,1表示透明度过渡,2表示模糊过渡,3表示运动模糊过渡 
是否显示按钮:0,表示隐藏按键部分,更适合做广告挑轮换 
打开窗口:_blank表示新窗口打开。_self表示在当前窗口打开

修改的方法为 
在上面幻灯代码的bcastr_title=’+texts+’后面添加下面的代码相关参数可以参考上面的说明 
&bcastr_config=0xffffff:文字颜色|2:文字位置|0x0066ff:文字背景颜色|60:文字背景透明度|0xffffff:按键文字颜色|0x0066ff:按键默认颜色|0x000033:按键当前颜色|8:自动播放时间(秒)|2:图片过渡效果|0:是否显示按钮|_blank:打开窗口