Mercurial > MadButterfly
annotate nodejs/phone.js @ 880:ac3e8492ad74 abs_n_rel_center
Formalize path data for MadButterfly.
Inkscape and other editors would omit 'l' or 'L' after 'm' or 'M'.
MadButterfly can not handle it, now. So, we work around it at SVG
parser.
author | Thinker K.F. Li <thinker@codemud.net> |
---|---|
date | Sat, 25 Sep 2010 18:46:37 +0800 |
parents | 586e50f82c1f |
children | 23dffb564ace |
rev | line source |
---|---|
794 | 1 // -*- indent-tabs-mode: t; tab-width: 8; c-basic-offset: 4; -*- |
822
586e50f82c1f
Unify coding style tag for emacs and vim.
Shih-Yuan Lee (FourDollars) <fourdollars@gmail.com>
parents:
800
diff
changeset
|
2 // vim: sw=4:ts=8:sts=4 |
789 | 3 var mbapp = require("./mbapp"); |
4 var sys=require("sys"); | |
5 var animate=require("./animate"); | |
6 | |
7 app = new mbapp.app(":0.0", 320, 480); | |
8 app.loadSVG("phone_ui.svg"); | |
9 | |
10 var icons = []; | |
11 var r, c; | |
12 var mbname; | |
796
0b1764cd53b0
Fix missed naming for variables
Thinker K.F. Li <thinker@codemud.net>
parents:
795
diff
changeset
|
13 for(c = 0; c < 4; c++) { // 4 columns |
0b1764cd53b0
Fix missed naming for variables
Thinker K.F. Li <thinker@codemud.net>
parents:
795
diff
changeset
|
14 for(r = 0; r < 5; r++) { // 5 rows |
0b1764cd53b0
Fix missed naming for variables
Thinker K.F. Li <thinker@codemud.net>
parents:
795
diff
changeset
|
15 mbname = "icon" + c + "" + r; |
789 | 16 icons.push(app.get(mbname)); |
17 } | |
18 } | |
19 | |
20 var overhint, presshint; | |
21 var overholder, pressholder; | |
22 overhint = app.get("overhint"); | |
23 presshint = app.get("presshint"); | |
24 overholder = new animate.holder(app, overhint); | |
25 pressholder = new animate.holder(app, presshint); | |
26 | |
27 var dock; | |
28 var dockholder; | |
29 dock = app.get("dock"); | |
30 dockholder = new animate.holder(app, dock); | |
31 | |
32 var i; | |
33 var icon; | |
34 for(i = 0; i < icons.length; i++) { | |
35 icon = icons[i]; | |
36 icon.mouse_event.add_event_observer(1, function(evt) { | |
792
bf2794eed702
Remove redundant code
Thinker K.F. Li <thinker@codemud.net>
parents:
791
diff
changeset
|
37 overholder.go_center(evt.cur_tgt); |
789 | 38 }); |
39 icon.mouse_event.add_event_observer(2, function(evt) { | |
40 overholder.home(); | |
41 }); | |
42 icon.mouse_event.add_event_observer(4, function(evt) { | |
792
bf2794eed702
Remove redundant code
Thinker K.F. Li <thinker@codemud.net>
parents:
791
diff
changeset
|
43 pressholder.go_center(evt.cur_tgt); |
800
76470d692bb9
Rotate an icon when it is pressed
Thinker K.F. Li <thinker@codemud.net>
parents:
797
diff
changeset
|
44 var rotate = new animate.rotate(app, evt.cur_tgt, 2 * 3.1415, 0.7); |
76470d692bb9
Rotate an icon when it is pressed
Thinker K.F. Li <thinker@codemud.net>
parents:
797
diff
changeset
|
45 rotate.start(); |
789 | 46 }); |
47 } | |
48 | |
49 var sw = 0; | |
793 | 50 var dock_up = new animate.linear(app, dock, 0, -300, 0.5); |
795
46a4cd4d382b
Remove dependent on system time to gain frame rate
Thinker K.F. Li <thinker@codemud.net>
parents:
794
diff
changeset
|
51 var dock_down = new animate.linear(app, dock, 0, 0, 0.2); |
789 | 52 dock.mouse_event.add_event_observer(4, function(evt) { |
791
85c5949352bb
Slide the dock of phone UI
Thinker K.F. Li <thinker@codemud.net>
parents:
789
diff
changeset
|
53 if(sw == 0) { |
793 | 54 dock_up.start(); |
791
85c5949352bb
Slide the dock of phone UI
Thinker K.F. Li <thinker@codemud.net>
parents:
789
diff
changeset
|
55 } else { |
793 | 56 dock_down.start(); |
791
85c5949352bb
Slide the dock of phone UI
Thinker K.F. Li <thinker@codemud.net>
parents:
789
diff
changeset
|
57 } |
793 | 58 sw = sw ^ 1; |
789 | 59 }); |
60 | |
61 app.loop(); |