Mercurial > MadButterfly
diff nodejs/examples/desktop/testdesktop.js @ 939:a74b4d986a91
Move examples for nodejs into nodejs/examples/ sub-directories.
See INSTALL.txt. Use nodejs/examples/run.sh to run examples.
For example,
cd nodejs/examples; ./run.sh examples/testsvg/testsvg.js
author | Thinker K.F. Li <thinker@codemud.net> |
---|---|
date | Fri, 12 Nov 2010 17:39:04 +0800 |
parents | nodejs/testdesktop.js@3136db0ac01b |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nodejs/examples/desktop/testdesktop.js Fri Nov 12 17:39:04 2010 +0800 @@ -0,0 +1,126 @@ +// -*- indent-tabs-mode: t; tab-width: 8; c-basic-offset: 4; -*- +// vim: sw=4:ts=8:sts=4 +var svg = require("svg"); +var mbapp = require("mbapp"); +var sys=require("sys"); +var animate=require("animate"); +var fs = require("fs"); + +app = new mbapp.app(); +app.loadSVG("desktop.svg"); + +video = app.get("video"); +//var an = new animate.alpha(app,video,0,1); +//an.start(); +audio = app.get("audio"); +picture = app.get("picture"); +setting = app.get("setting"); + +lightbar = app.get("lightbar"); +lines = []; +for(i = 0; i < 5; i++) { + line = app.get("line" + (i + 1)); + lines.push(line); +} +line=0; + +items=[video, audio, picture, setting]; + +item = 0; + +animate.run([new animate.scale(app,items[item], 1, 1.5)], 0, 0.1); +app.refresh(); + +app.addKeyListener(mbapp.KEY_LEFT, function() { + var old = items[item]; + item = item - 1; + if (item == -1) { + item = 0; + return; + } + + var target = items[item]; + + old.bbox.update(); + target.bbox.update(); + + var an = new animate.scale(app, old, 1, 1); + animate.run([an], 0, 0.1); + an = new animate.scale(app, target, 1, 1.5); + animate.run([an], 0, 0.3); +}); + +app.addKeyListener(mbapp.KEY_RIGHT, function() { + var old = items[item]; + item = item + 1; + if (item == items.length) { + item = item - 1; + return; + } + + var target = items[item]; + + old.bbox.update(); + target.bbox.update(); + + var an = new animate.scale(app, old, 1, 1); + animate.run([an], 0, 0.1); + an = new animate.scale(app, target, 1, 1.5); + animate.run([an], 0, 0.3); +}); + +app.addKeyListener(mbapp.KEY_UP, function() { + var old = lines[line]; + line = line - 1; + if (line == -1) { + line = 0; + return; + } + var target = lines[line]; + var sy = target.center.y - lightbar.center.y; + sys.puts(sy); + var an = new animate.shift(app, lightbar, 0, sy); + animate.run([an], 0, 0.3); +}); +app.addKeyListener(mbapp.KEY_DOWN, function() { + var old = lines[line]; + line = line + 1; + if (line == lines.length) { + line = line - 1; + return; + } + var target = lines[line]; + var sy = target.center.y - lightbar.center.y; + sys.puts("line="+line); + sys.puts("sy="+sy); + sys.puts("target.y="+target.center.y); + sys.puts("lightbar.y="+lightbar.center.y); + var an = new animate.shift(app, lightbar, 0, sy); + animate.run([an], 0, 0.3); +}); + +app.addKeyListener(mbapp.KEY_ENTER, function() { + var target = items[item]; + var sx = 500 - target.center.x; + var sy = 220 - target.center.y; + sys.puts("target "+sx+','+sy); + var an = new animate.shift(app,target,sx,sy,1); + an.start(); + for(i=0;i<items.length;i++) { + if (i == item) continue; + var x = Math.random(); + var y = Math.random(); + if (x > 0.5) x = 900; + else x = -500; + if (y > 0.5) y = 900; + else y = -500; + sx = x - items[i].center.x; + sy = y - items[i].center.y; + an = new animate.shift(app,items[i], sx, sy); + animate.run([an], 0, 2); + alpha = new animate.alpha(app,items[i], 0); + animate.run([an], 0, 1); + } +}); + +app.loop();