Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8c9a7c8bc7 | ||
|
|
f069107e55 | ||
|
|
49a6ba2c02 | ||
|
|
1bf838a4c4 | ||
|
|
48161f5c24 | ||
|
|
70233b7508 | ||
|
|
ad0d32b7aa | ||
|
|
505e808318 | ||
|
|
07298c8fcd | ||
|
|
f664a4971b | ||
|
|
7c6e6df91a | ||
|
|
fd0a071cb3 | ||
|
|
62d77e7038 | ||
|
|
0a42269479 | ||
|
|
ecc91fb4e0 | ||
|
|
f812b92b8a | ||
|
|
a1450680a4 | ||
|
|
9f687b4f8a | ||
|
|
79dc3566f4 | ||
|
|
336de314a1 | ||
|
|
92e86494e3 | ||
|
|
d211cf669c | ||
|
|
dbaf7269e9 | ||
|
|
3d22d0e169 | ||
|
|
89b00db103 | ||
|
|
95374339b9 | ||
|
|
fba731e740 | ||
|
|
f260108433 | ||
|
|
87858d6bbf | ||
|
|
e79dd5856d | ||
|
|
48ed27dfcc | ||
|
|
f885f7b023 | ||
|
|
e2eddc8b24 | ||
|
|
e41e35fd09 | ||
|
|
a486bf6b4a | ||
|
|
5da0e42be4 | ||
|
|
15fe5ed6c8 | ||
|
|
609ea7ec8f | ||
|
|
4f950ae801 | ||
|
|
5d3fe891cd | ||
|
|
2ba6b4ff67 | ||
|
|
60f0e8967f | ||
|
|
30fc4099c6 | ||
|
|
ee007cd28e | ||
|
|
c904475ae6 | ||
|
|
13d6ab512b | ||
|
|
9b6c819e0e | ||
|
|
50624c1552 | ||
|
|
ebda1f99e3 | ||
|
|
abe344b408 | ||
|
|
90b1946c25 | ||
|
|
78598ae54a | ||
|
|
fe6664eac7 | ||
|
|
bb5d8ca170 | ||
|
|
eb7af3d2a2 | ||
|
|
822a2df289 | ||
|
|
0c97e8e151 | ||
|
|
b2fa345c9d | ||
|
|
c552d86639 | ||
|
|
4d4f7d3d56 | ||
|
|
aa0d8ff238 | ||
|
|
87d52bd85e | ||
|
|
912d6e46aa | ||
|
|
55cf10a085 | ||
|
|
ca0d1eb8af | ||
|
|
f4dab1847e | ||
|
|
10bc22b717 | ||
|
|
128bdccd79 | ||
|
|
d44261b191 | ||
|
|
b2263c16c6 | ||
|
|
3f3b6bfd35 | ||
|
|
2a353a0327 | ||
|
|
0f438d5221 | ||
|
|
a27f6d6562 | ||
|
|
2fe8a3a0a7 | ||
|
|
bdc1c2ceb9 | ||
|
|
923c2504ba | ||
|
|
8a90a87492 | ||
|
|
5acb4e9f1b | ||
|
|
e28cdbeb6a | ||
|
|
66e86e7d82 | ||
|
|
c18de53bab | ||
|
|
ed13283f0f | ||
|
|
7c597999d4 | ||
|
|
6235f25184 | ||
|
|
d31777972c | ||
|
|
7bdcbf5c2a | ||
|
|
71b4cc532f | ||
|
|
d54a92310d | ||
|
|
fef28c6a6a | ||
|
|
6ef89826df | ||
|
|
12e5d2aceb | ||
|
|
801c2af9d4 | ||
|
|
188d6239a3 | ||
|
|
b742439db8 | ||
|
|
99e0934244 | ||
|
|
5d4da0ce66 | ||
|
|
22847f6ade | ||
|
|
70ee753859 | ||
|
|
f9aa7f7339 | ||
|
|
54d98944e4 | ||
|
|
e77f5da2cd | ||
|
|
936118bd91 | ||
|
|
a81a8effb4 | ||
|
|
1e59bc69fb | ||
|
|
559d75eba1 | ||
|
|
4c1dacfa02 | ||
|
|
5b036557c0 | ||
|
|
6bf7bab917 | ||
|
|
19483bafed | ||
|
|
16749edf20 | ||
|
|
3d4783980e | ||
|
|
4bbcc380c5 | ||
|
|
3c8cd20b70 | ||
|
|
b8d3a61c97 | ||
|
|
d323404676 | ||
|
|
8a09469798 | ||
|
|
9289f690eb | ||
|
|
89fe2855e4 | ||
|
|
0f58945212 | ||
|
|
09def364c3 | ||
|
|
0e55e644a9 | ||
|
|
8a85155c08 | ||
|
|
ecf61fc80c | ||
|
|
c2745bec35 | ||
|
|
c884bab7ec | ||
|
|
f76ba6840f | ||
|
|
619b8415ed | ||
|
|
91dc7a4acf | ||
|
|
e74114f384 | ||
|
|
142348f70b | ||
|
|
7aa82a1cb0 | ||
|
|
c2d7fb7fab | ||
|
|
aff7d99a8a | ||
|
|
0b1bcaf270 | ||
|
|
f9776f30fc | ||
|
|
8b2f1cca51 | ||
|
|
e002827a20 | ||
|
|
c2f0128797 | ||
|
|
2d49a31ecd | ||
|
|
9bf7d070f5 | ||
|
|
1248a6c06e | ||
|
|
df32190db8 | ||
|
|
73745e5720 | ||
|
|
48f6d850c8 | ||
|
|
ab7e55ef27 | ||
|
|
5768336150 | ||
|
|
04dcb29c88 | ||
|
|
a174bbc6b3 | ||
|
|
bc77c3f84e | ||
|
|
d7205992a5 | ||
|
|
77cc3858d9 | ||
|
|
a7873a3b74 | ||
|
|
11954812c6 | ||
|
|
d1da4cbdef | ||
|
|
84ef32e62a | ||
|
|
f3dcd3e831 | ||
|
|
982faeedb8 | ||
|
|
4c9c50584e | ||
|
|
955909979d | ||
|
|
ce27acd3ca | ||
|
|
4f2c26df77 | ||
|
|
3038f6fcf8 | ||
|
|
d4781a19d9 | ||
|
|
7cae283a4c | ||
|
|
04106b1388 | ||
|
|
d80467a08a | ||
|
|
c8d6fe6c01 | ||
|
|
a5343b4bc0 | ||
|
|
3c123293ba | ||
|
|
9827e7522f | ||
|
|
727a06cd9b | ||
|
|
9f30f656bc | ||
|
|
a2c756e37f | ||
|
|
72eb22128f | ||
|
|
d0e886259d | ||
|
|
d620fc7796 | ||
|
|
b3fff37faf | ||
|
|
08fb303801 | ||
|
|
945c9c1a0d | ||
|
|
6d21d39b19 | ||
|
|
dcce99ec60 | ||
|
|
b0d3f6e192 | ||
|
|
c81cf0c882 | ||
|
|
4695f62d1d | ||
|
|
c647792c12 | ||
|
|
d19ad4976d | ||
|
|
0591c7f2bd | ||
|
|
6648cb3812 | ||
|
|
ec845155eb | ||
|
|
829a1b00e4 | ||
|
|
80f5c0a67d | ||
|
|
0a7513240a | ||
|
|
533a4c2e30 | ||
|
|
dd8962d4b5 | ||
|
|
114d1d2fbf | ||
|
|
232c96cc54 | ||
|
|
461f7ee54d | ||
|
|
d848fa089d | ||
|
|
1bcbf91398 | ||
|
|
7b6beddc0c | ||
|
|
038cb213e8 | ||
|
|
7dac2b6506 | ||
|
|
2389c6c231 | ||
|
|
c2533d1146 | ||
|
|
c5f6817c4c | ||
|
|
1f8c809f53 | ||
|
|
3b9386727e | ||
|
|
a30762ed8c | ||
|
|
730594835a | ||
|
|
2f03f5fc43 | ||
|
|
d42f396ba0 | ||
|
|
82d4ba4538 | ||
|
|
1c37cd1a96 | ||
|
|
2de70d07a5 | ||
|
|
b951b02de8 | ||
|
|
2270da2479 | ||
|
|
f9f17ad353 | ||
|
|
49fe5ee65f | ||
|
|
59f7a59312 | ||
|
|
5b532ab2e4 | ||
|
|
b20a6ff85a | ||
|
|
31c4d8cb14 | ||
|
|
d510b785b1 | ||
|
|
fe372af453 | ||
|
|
23ec3816db | ||
|
|
39e7b84cd9 | ||
|
|
3e53c0671d | ||
|
|
498725c078 | ||
|
|
ce1523585f | ||
|
|
f2054f8a2a | ||
|
|
0fad46e04b | ||
|
|
c1eafe865a | ||
|
|
f3c9049e76 | ||
|
|
7b4374cabf | ||
|
|
b1d836dfaf | ||
|
|
2a26257caa | ||
|
|
09f57fa346 | ||
|
|
3c0c349089 | ||
|
|
03b7467018 | ||
|
|
4cef0d1d35 | ||
|
|
204ec46b2b |
@@ -1 +1,6 @@
|
||||
.DS_Store
|
||||
.idea
|
||||
Phaser OSX.sublime-project
|
||||
Phaser OSX.sublime-workspace
|
||||
Phaser.sublime-project
|
||||
Phaser.sublime-workspace
|
||||
@@ -0,0 +1,16 @@
|
||||
YUI.add("yuidoc-meta", function(Y) {
|
||||
Y.YUIDoc = { meta: {
|
||||
"classes": [
|
||||
"TimeManager"
|
||||
],
|
||||
"modules": [
|
||||
"Phaser"
|
||||
],
|
||||
"allModules": [
|
||||
{
|
||||
"displayName": "Phaser",
|
||||
"name": "Phaser"
|
||||
}
|
||||
]
|
||||
} };
|
||||
});
|
||||
|
After Width: | Height: | Size: 491 B |
|
After Width: | Height: | Size: 6.2 KiB |
@@ -0,0 +1,783 @@
|
||||
/*
|
||||
Font sizes for all selectors other than the body are given in percentages,
|
||||
with 100% equal to 13px. To calculate a font size percentage, multiply the
|
||||
desired size in pixels by 7.6923076923.
|
||||
|
||||
Here's a quick lookup table:
|
||||
|
||||
10px - 76.923%
|
||||
11px - 84.615%
|
||||
12px - 92.308%
|
||||
13px - 100%
|
||||
14px - 107.692%
|
||||
15px - 115.385%
|
||||
16px - 123.077%
|
||||
17px - 130.769%
|
||||
18px - 138.462%
|
||||
19px - 146.154%
|
||||
20px - 153.846%
|
||||
*/
|
||||
|
||||
html {
|
||||
background: #fff;
|
||||
color: #333;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
body {
|
||||
/*font: 13px/1.4 'Lucida Grande', 'Lucida Sans Unicode', 'DejaVu Sans', 'Bitstream Vera Sans', 'Helvetica', 'Arial', sans-serif;*/
|
||||
font: 13px/1.4 'Helvetica', 'Arial', sans-serif;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* -- Links ----------------------------------------------------------------- */
|
||||
a {
|
||||
color: #356de4;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
a:hover { text-decoration: underline; }
|
||||
|
||||
/* "Jump to Table of Contents" link is shown to assistive tools, but hidden from
|
||||
sight until it's focused. */
|
||||
.jump {
|
||||
position: absolute;
|
||||
padding: 3px 6px;
|
||||
left: -99999px;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
.jump:focus { left: 40%; }
|
||||
|
||||
/* -- Paragraphs ------------------------------------------------------------ */
|
||||
p { margin: 1.3em 0; }
|
||||
dd p, td p { margin-bottom: 0; }
|
||||
dd p:first-child, td p:first-child { margin-top: 0; }
|
||||
|
||||
/* -- Headings -------------------------------------------------------------- */
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
color: #D98527;/*was #f80*/
|
||||
font-family: 'Trebuchet MS', sans-serif;
|
||||
font-weight: bold;
|
||||
line-height: 1.1;
|
||||
margin: 1.1em 0 0.5em;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 184.6%;
|
||||
color: #30418C;
|
||||
margin: 0.75em 0 0.5em;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 153.846%;
|
||||
color: #E48A2B;
|
||||
}
|
||||
|
||||
h3 { font-size: 138.462%; }
|
||||
|
||||
h4 {
|
||||
border-bottom: 1px solid #DBDFEA;
|
||||
color: #E48A2B;
|
||||
font-size: 115.385%;
|
||||
font-weight: normal;
|
||||
padding-bottom: 2px;
|
||||
}
|
||||
|
||||
h5, h6 { font-size: 107.692%; }
|
||||
|
||||
/* -- Code and examples ----------------------------------------------------- */
|
||||
code, kbd, pre, samp {
|
||||
font-family: Menlo, Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;
|
||||
font-size: 92.308%;
|
||||
line-height: 1.35;
|
||||
}
|
||||
|
||||
p code, p kbd, p samp {
|
||||
background: #FCFBFA;
|
||||
border: 1px solid #EFEEED;
|
||||
padding: 0 3px;
|
||||
}
|
||||
|
||||
a code, a kbd, a samp,
|
||||
pre code, pre kbd, pre samp,
|
||||
table code, table kbd, table samp,
|
||||
.intro code, .intro kbd, .intro samp,
|
||||
.toc code, .toc kbd, .toc samp {
|
||||
background: none;
|
||||
border: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
pre.code, pre.terminal, pre.cmd {
|
||||
overflow-x: auto;
|
||||
*overflow-x: scroll;
|
||||
padding: 0.3em 0.6em;
|
||||
}
|
||||
|
||||
pre.code {
|
||||
background: #FCFBFA;
|
||||
border: 1px solid #EFEEED;
|
||||
border-left-width: 5px;
|
||||
}
|
||||
|
||||
pre.terminal, pre.cmd {
|
||||
background: #F0EFFC;
|
||||
border: 1px solid #D0CBFB;
|
||||
border-left: 5px solid #D0CBFB;
|
||||
}
|
||||
|
||||
/* Don't reduce the font size of <code>/<kbd>/<samp> elements inside <pre>
|
||||
blocks. */
|
||||
pre code, pre kbd, pre samp { font-size: 100%; }
|
||||
|
||||
/* Used to denote text that shouldn't be selectable, such as line numbers or
|
||||
shell prompts. Guess which browser this doesn't work in. */
|
||||
.noselect {
|
||||
-moz-user-select: -moz-none;
|
||||
-khtml-user-select: none;
|
||||
-webkit-user-select: none;
|
||||
-o-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
/* -- Lists ----------------------------------------------------------------- */
|
||||
dd { margin: 0.2em 0 0.7em 1em; }
|
||||
dl { margin: 1em 0; }
|
||||
dt { font-weight: bold; }
|
||||
|
||||
/* -- Tables ---------------------------------------------------------------- */
|
||||
caption, th { text-align: left; }
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
td, th {
|
||||
border: 1px solid #fff;
|
||||
padding: 5px 12px;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
td { background: #E6E9F5; }
|
||||
td dl { margin: 0; }
|
||||
td dl dl { margin: 1em 0; }
|
||||
td pre:first-child { margin-top: 0; }
|
||||
|
||||
th {
|
||||
background: #D2D7E6;/*#97A0BF*/
|
||||
border-bottom: none;
|
||||
border-top: none;
|
||||
color: #000;/*#FFF1D5*/
|
||||
font-family: 'Trebuchet MS', sans-serif;
|
||||
font-weight: bold;
|
||||
line-height: 1.3;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
|
||||
/* -- Layout and Content ---------------------------------------------------- */
|
||||
#doc {
|
||||
margin: auto;
|
||||
min-width: 1024px;
|
||||
}
|
||||
|
||||
.content { padding: 0 20px 0 25px; }
|
||||
|
||||
.sidebar {
|
||||
padding: 0 15px 0 10px;
|
||||
}
|
||||
#bd {
|
||||
padding: 7px 0 130px;
|
||||
position: relative;
|
||||
width: 99%;
|
||||
}
|
||||
|
||||
/* -- Table of Contents ----------------------------------------------------- */
|
||||
|
||||
/* The #toc id refers to the single global table of contents, while the .toc
|
||||
class refers to generic TOC lists that could be used throughout the page. */
|
||||
|
||||
.toc code, .toc kbd, .toc samp { font-size: 100%; }
|
||||
.toc li { font-weight: bold; }
|
||||
.toc li li { font-weight: normal; }
|
||||
|
||||
/* -- Intro and Example Boxes ----------------------------------------------- */
|
||||
/*
|
||||
.intro, .example { margin-bottom: 2em; }
|
||||
.example {
|
||||
-moz-border-radius: 4px;
|
||||
-webkit-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
-moz-box-shadow: 0 0 5px #bfbfbf;
|
||||
-webkit-box-shadow: 0 0 5px #bfbfbf;
|
||||
box-shadow: 0 0 5px #bfbfbf;
|
||||
padding: 1em;
|
||||
}
|
||||
.intro {
|
||||
background: none repeat scroll 0 0 #F0F1F8; border: 1px solid #D4D8EB; padding: 0 1em;
|
||||
}
|
||||
*/
|
||||
|
||||
/* -- Other Styles ---------------------------------------------------------- */
|
||||
|
||||
/* These are probably YUI-specific, and should be moved out of Selleck's default
|
||||
theme. */
|
||||
|
||||
.button {
|
||||
border: 1px solid #dadada;
|
||||
-moz-border-radius: 3px;
|
||||
-webkit-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
color: #444;
|
||||
display: inline-block;
|
||||
font-family: Helvetica, Arial, sans-serif;
|
||||
font-size: 92.308%;
|
||||
font-weight: bold;
|
||||
padding: 4px 13px 3px;
|
||||
-moz-text-shadow: 1px 1px 0 #fff;
|
||||
-webkit-text-shadow: 1px 1px 0 #fff;
|
||||
text-shadow: 1px 1px 0 #fff;
|
||||
white-space: nowrap;
|
||||
|
||||
background: #EFEFEF; /* old browsers */
|
||||
background: -moz-linear-gradient(top, #f5f5f5 0%, #efefef 50%, #e5e5e5 51%, #dfdfdf 100%); /* firefox */
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f5f5f5), color-stop(50%,#efefef), color-stop(51%,#e5e5e5), color-stop(100%,#dfdfdf)); /* webkit */
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f5f5f5', endColorstr='#dfdfdf',GradientType=0 ); /* ie */
|
||||
}
|
||||
|
||||
.button:hover {
|
||||
border-color: #466899;
|
||||
color: #fff;
|
||||
text-decoration: none;
|
||||
-moz-text-shadow: 1px 1px 0 #222;
|
||||
-webkit-text-shadow: 1px 1px 0 #222;
|
||||
text-shadow: 1px 1px 0 #222;
|
||||
|
||||
background: #6396D8; /* old browsers */
|
||||
background: -moz-linear-gradient(top, #6396D8 0%, #5A83BC 50%, #547AB7 51%, #466899 100%); /* firefox */
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#6396D8), color-stop(50%,#5A83BC), color-stop(51%,#547AB7), color-stop(100%,#466899)); /* webkit */
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#6396D8', endColorstr='#466899',GradientType=0 ); /* ie */
|
||||
}
|
||||
|
||||
.newwindow { text-align: center; }
|
||||
|
||||
.header .version em {
|
||||
display: block;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
|
||||
#classdocs .item {
|
||||
border-bottom: 1px solid #466899;
|
||||
margin: 1em 0;
|
||||
padding: 1.5em;
|
||||
}
|
||||
|
||||
#classdocs .item .params p,
|
||||
#classdocs .item .returns p,{
|
||||
display: inline;
|
||||
}
|
||||
|
||||
#classdocs .item em code, #classdocs .item em.comment {
|
||||
color: green;
|
||||
}
|
||||
|
||||
#classdocs .item em.comment a {
|
||||
color: green;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
#classdocs .foundat {
|
||||
font-size: 11px;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.attrs .emits {
|
||||
margin-left: 2em;
|
||||
padding: .5em;
|
||||
border-left: 1px dashed #ccc;
|
||||
}
|
||||
|
||||
abbr {
|
||||
border-bottom: 1px dashed #ccc;
|
||||
font-size: 80%;
|
||||
cursor: help;
|
||||
}
|
||||
|
||||
.prettyprint li.L0,
|
||||
.prettyprint li.L1,
|
||||
.prettyprint li.L2,
|
||||
.prettyprint li.L3,
|
||||
.prettyprint li.L5,
|
||||
.prettyprint li.L6,
|
||||
.prettyprint li.L7,
|
||||
.prettyprint li.L8 {
|
||||
list-style: decimal;
|
||||
}
|
||||
|
||||
ul li p {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.method .name {
|
||||
font-size: 110%;
|
||||
}
|
||||
|
||||
.apidocs .methods .extends .method,
|
||||
.apidocs .properties .extends .property,
|
||||
.apidocs .attrs .extends .attr,
|
||||
.apidocs .events .extends .event {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.apidocs .methods .extends .inherited,
|
||||
.apidocs .properties .extends .inherited,
|
||||
.apidocs .attrs .extends .inherited,
|
||||
.apidocs .events .extends .inherited {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
#hd {
|
||||
background: whiteSmoke;
|
||||
background: -moz-linear-gradient(top,#DCDBD9 0,#F6F5F3 100%);
|
||||
background: -webkit-gradient(linear,left top,left bottom,color-stop(0%,#DCDBD9),color-stop(100%,#F6F5F3));
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#dcdbd9',endColorstr='#F6F5F3',GradientType=0);
|
||||
border-bottom: 1px solid #DFDFDF;
|
||||
padding: 0 15px 1px 20px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
#hd img {
|
||||
margin-right: 10px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
|
||||
/* -- API Docs CSS ---------------------------------------------------------- */
|
||||
|
||||
/*
|
||||
This file is organized so that more generic styles are nearer the top, and more
|
||||
specific styles are nearer the bottom of the file. This allows us to take full
|
||||
advantage of the cascade to avoid redundant style rules. Please respect this
|
||||
convention when making changes.
|
||||
*/
|
||||
|
||||
/* -- Generic TabView styles ------------------------------------------------ */
|
||||
|
||||
/*
|
||||
These styles apply to all API doc tabviews. To change styles only for a
|
||||
specific tabview, see the other sections below.
|
||||
*/
|
||||
|
||||
.yui3-js-enabled .apidocs .tabview {
|
||||
visibility: hidden; /* Hide until the TabView finishes rendering. */
|
||||
_visibility: visible;
|
||||
}
|
||||
|
||||
.apidocs .tabview.yui3-tabview-content { visibility: visible; }
|
||||
.apidocs .tabview .yui3-tabview-panel { background: #fff; }
|
||||
|
||||
/* -- Generic Content Styles ------------------------------------------------ */
|
||||
|
||||
/* Headings */
|
||||
h2, h3, h4, h5, h6 {
|
||||
border: none;
|
||||
color: #30418C;
|
||||
font-weight: bold;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.link-docs {
|
||||
float: right;
|
||||
font-size: 15px;
|
||||
margin: 4px 4px 6px;
|
||||
padding: 6px 30px 5px;
|
||||
}
|
||||
|
||||
.apidocs { zoom: 1; }
|
||||
|
||||
/* Generic box styles. */
|
||||
.apidocs .box {
|
||||
border: 1px solid;
|
||||
border-radius: 3px;
|
||||
margin: 1em 0;
|
||||
padding: 0 1em;
|
||||
}
|
||||
|
||||
/* A flag is a compact, capsule-like indicator of some kind. It's used to
|
||||
indicate private and protected items, item return types, etc. in an
|
||||
attractive and unobtrusive way. */
|
||||
.apidocs .flag {
|
||||
background: #bababa;
|
||||
border-radius: 3px;
|
||||
color: #fff;
|
||||
font-size: 11px;
|
||||
margin: 0 0.5em;
|
||||
padding: 2px 4px 1px;
|
||||
}
|
||||
|
||||
/* Class/module metadata such as "Uses", "Extends", "Defined in", etc. */
|
||||
.apidocs .meta {
|
||||
background: #f9f9f9;
|
||||
border-color: #efefef;
|
||||
color: #555;
|
||||
font-size: 11px;
|
||||
padding: 3px 6px;
|
||||
}
|
||||
|
||||
.apidocs .meta p { margin: 0; }
|
||||
|
||||
/* Deprecation warning. */
|
||||
.apidocs .box.deprecated,
|
||||
.apidocs .flag.deprecated {
|
||||
background: #fdac9f;
|
||||
border: 1px solid #fd7775;
|
||||
}
|
||||
|
||||
.apidocs .box.deprecated p { margin: 0.5em 0; }
|
||||
.apidocs .flag.deprecated { color: #333; }
|
||||
|
||||
/* Module/Class intro description. */
|
||||
.apidocs .intro {
|
||||
background: #f0f1f8;
|
||||
border-color: #d4d8eb;
|
||||
}
|
||||
|
||||
/* Loading spinners. */
|
||||
#bd.loading .apidocs,
|
||||
#api-list.loading .yui3-tabview-panel {
|
||||
background: #fff url(../img/spinner.gif) no-repeat center 70px;
|
||||
min-height: 150px;
|
||||
}
|
||||
|
||||
#bd.loading .apidocs .content,
|
||||
#api-list.loading .yui3-tabview-panel .apis {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.apidocs .no-visible-items { color: #666; }
|
||||
|
||||
/* Generic inline list. */
|
||||
.apidocs ul.inline {
|
||||
display: inline;
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.apidocs ul.inline li { display: inline; }
|
||||
|
||||
/* Comma-separated list. */
|
||||
.apidocs ul.commas li:after { content: ','; }
|
||||
.apidocs ul.commas li:last-child:after { content: ''; }
|
||||
|
||||
/* Keyboard shortcuts. */
|
||||
kbd .cmd { font-family: Monaco, Helvetica; }
|
||||
|
||||
/* -- Generic Access Level styles ------------------------------------------- */
|
||||
.apidocs .item.protected,
|
||||
.apidocs .item.private,
|
||||
.apidocs .index-item.protected,
|
||||
.apidocs .index-item.deprecated,
|
||||
.apidocs .index-item.private {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.show-deprecated .item.deprecated,
|
||||
.show-deprecated .index-item.deprecated,
|
||||
.show-protected .item.protected,
|
||||
.show-protected .index-item.protected,
|
||||
.show-private .item.private,
|
||||
.show-private .index-item.private {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.hide-inherited .item.inherited,
|
||||
.hide-inherited .index-item.inherited {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* -- Generic Item Index styles --------------------------------------------- */
|
||||
.apidocs .index { margin: 1.5em 0 3em; }
|
||||
|
||||
.apidocs .index h3 {
|
||||
border-bottom: 1px solid #efefef;
|
||||
color: #333;
|
||||
font-size: 13px;
|
||||
margin: 2em 0 0.6em;
|
||||
padding-bottom: 2px;
|
||||
}
|
||||
|
||||
.apidocs .index .no-visible-items { margin-top: 2em; }
|
||||
|
||||
.apidocs .index-list {
|
||||
border-color: #efefef;
|
||||
font-size: 12px;
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
-moz-column-count: 4;
|
||||
-moz-column-gap: 10px;
|
||||
-moz-column-width: 170px;
|
||||
-ms-column-count: 4;
|
||||
-ms-column-gap: 10px;
|
||||
-ms-column-width: 170px;
|
||||
-o-column-count: 4;
|
||||
-o-column-gap: 10px;
|
||||
-o-column-width: 170px;
|
||||
-webkit-column-count: 4;
|
||||
-webkit-column-gap: 10px;
|
||||
-webkit-column-width: 170px;
|
||||
column-count: 4;
|
||||
column-gap: 10px;
|
||||
column-width: 170px;
|
||||
}
|
||||
|
||||
.apidocs .no-columns .index-list {
|
||||
-moz-column-count: 1;
|
||||
-ms-column-count: 1;
|
||||
-o-column-count: 1;
|
||||
-webkit-column-count: 1;
|
||||
column-count: 1;
|
||||
}
|
||||
|
||||
.apidocs .index-item { white-space: nowrap; }
|
||||
|
||||
.apidocs .index-item .flag {
|
||||
background: none;
|
||||
border: none;
|
||||
color: #afafaf;
|
||||
display: inline;
|
||||
margin: 0 0 0 0.2em;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* -- Generic API item styles ----------------------------------------------- */
|
||||
.apidocs .args {
|
||||
display: inline;
|
||||
margin: 0 0.5em;
|
||||
}
|
||||
|
||||
.apidocs .flag.chainable { background: #46ca3b; }
|
||||
.apidocs .flag.protected { background: #9b86fc; }
|
||||
.apidocs .flag.private { background: #fd6b1b; }
|
||||
.apidocs .flag.async { background: #356de4; }
|
||||
.apidocs .flag.required { background: #e60923; }
|
||||
|
||||
.apidocs .item {
|
||||
border-bottom: 1px solid #efefef;
|
||||
margin: 1.5em 0 2em;
|
||||
padding-bottom: 2em;
|
||||
}
|
||||
|
||||
.apidocs .item h4,
|
||||
.apidocs .item h5,
|
||||
.apidocs .item h6 {
|
||||
color: #333;
|
||||
font-family: inherit;
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
.apidocs .item .description p,
|
||||
.apidocs .item pre.code {
|
||||
margin: 1em 0 0;
|
||||
}
|
||||
|
||||
.apidocs .item .meta {
|
||||
background: none;
|
||||
border: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.apidocs .item .name {
|
||||
display: inline;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.apidocs .item .type,
|
||||
.apidocs .item .type a,
|
||||
.apidocs .returns-inline {
|
||||
color: #555;
|
||||
}
|
||||
|
||||
.apidocs .item .type,
|
||||
.apidocs .returns-inline {
|
||||
font-size: 11px;
|
||||
margin: 0 0 0 0;
|
||||
}
|
||||
|
||||
.apidocs .item .type a { border-bottom: 1px dotted #afafaf; }
|
||||
.apidocs .item .type a:hover { border: none; }
|
||||
|
||||
/* -- Item Parameter List --------------------------------------------------- */
|
||||
.apidocs .params-list {
|
||||
list-style: square;
|
||||
margin: 1em 0 0 2em;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.apidocs .param { margin-bottom: 1em; }
|
||||
|
||||
.apidocs .param .type,
|
||||
.apidocs .param .type a {
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.apidocs .param .type {
|
||||
margin: 0 0 0 0.5em;
|
||||
*margin-left: 0.5em;
|
||||
}
|
||||
|
||||
.apidocs .param-name { font-weight: bold; }
|
||||
|
||||
/* -- Item "Emits" block ---------------------------------------------------- */
|
||||
.apidocs .item .emits {
|
||||
background: #f9f9f9;
|
||||
border-color: #eaeaea;
|
||||
}
|
||||
|
||||
/* -- Item "Returns" block -------------------------------------------------- */
|
||||
.apidocs .item .returns .type,
|
||||
.apidocs .item .returns .type a {
|
||||
font-size: 100%;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* -- Class Constructor block ----------------------------------------------- */
|
||||
.apidocs .constructor .item {
|
||||
border: none;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
/* -- File Source View ------------------------------------------------------ */
|
||||
.apidocs .file pre.code,
|
||||
#doc .apidocs .file pre.prettyprint {
|
||||
background: inherit;
|
||||
border: none;
|
||||
overflow: visible;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.apidocs .L0,
|
||||
.apidocs .L1,
|
||||
.apidocs .L2,
|
||||
.apidocs .L3,
|
||||
.apidocs .L4,
|
||||
.apidocs .L5,
|
||||
.apidocs .L6,
|
||||
.apidocs .L7,
|
||||
.apidocs .L8,
|
||||
.apidocs .L9 {
|
||||
background: inherit;
|
||||
}
|
||||
|
||||
/* -- Submodule List -------------------------------------------------------- */
|
||||
.apidocs .module-submodule-description {
|
||||
font-size: 12px;
|
||||
margin: 0.3em 0 1em;
|
||||
}
|
||||
|
||||
.apidocs .module-submodule-description p:first-child { margin-top: 0; }
|
||||
|
||||
/* -- Sidebar TabView ------------------------------------------------------- */
|
||||
#api-tabview { margin-top: 0.6em; }
|
||||
|
||||
#api-tabview-filter,
|
||||
#api-tabview-panel {
|
||||
border: 1px solid #dfdfdf;
|
||||
}
|
||||
|
||||
#api-tabview-filter {
|
||||
border-bottom: none;
|
||||
border-top: none;
|
||||
padding: 0.6em 10px 0 10px;
|
||||
}
|
||||
|
||||
#api-tabview-panel { border-top: none; }
|
||||
#api-filter { width: 97%; }
|
||||
|
||||
/* -- Content TabView ------------------------------------------------------- */
|
||||
#classdocs .yui3-tabview-panel { border: none; }
|
||||
|
||||
/* -- Source File Contents -------------------------------------------------- */
|
||||
.prettyprint li.L0,
|
||||
.prettyprint li.L1,
|
||||
.prettyprint li.L2,
|
||||
.prettyprint li.L3,
|
||||
.prettyprint li.L5,
|
||||
.prettyprint li.L6,
|
||||
.prettyprint li.L7,
|
||||
.prettyprint li.L8 {
|
||||
list-style: decimal;
|
||||
}
|
||||
|
||||
/* -- API options ----------------------------------------------------------- */
|
||||
#api-options {
|
||||
font-size: 11px;
|
||||
margin-top: 2.2em;
|
||||
position: absolute;
|
||||
right: 1.5em;
|
||||
}
|
||||
|
||||
/*#api-options label { margin-right: 0.6em; }*/
|
||||
|
||||
/* -- API list -------------------------------------------------------------- */
|
||||
#api-list {
|
||||
margin-top: 1.5em;
|
||||
*zoom: 1;
|
||||
}
|
||||
|
||||
.apis {
|
||||
font-size: 12px;
|
||||
line-height: 1.4;
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0.5em 0 0.5em 0.4em;
|
||||
}
|
||||
|
||||
.apis a {
|
||||
border: 1px solid transparent;
|
||||
display: block;
|
||||
margin: 0 0 0 -4px;
|
||||
padding: 1px 4px 0;
|
||||
text-decoration: none;
|
||||
_border: none;
|
||||
_display: inline;
|
||||
}
|
||||
|
||||
.apis a:hover,
|
||||
.apis a:focus {
|
||||
background: #E8EDFC;
|
||||
background: -moz-linear-gradient(top, #e8edfc 0%, #becef7 100%);
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#E8EDFC), color-stop(100%,#BECEF7));
|
||||
border-color: #AAC0FA;
|
||||
border-radius: 3px;
|
||||
color: #333;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.api-list-item a:hover,
|
||||
.api-list-item a:focus {
|
||||
font-weight: bold;
|
||||
text-shadow: 1px 1px 1px #fff;
|
||||
}
|
||||
|
||||
.apis .message { color: #888; }
|
||||
.apis .result a { padding: 3px 5px 2px; }
|
||||
|
||||
.apis .result .type {
|
||||
right: 4px;
|
||||
top: 7px;
|
||||
}
|
||||
|
||||
.api-list-item .yui3-highlight {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
|
After Width: | Height: | Size: 740 B |
|
After Width: | Height: | Size: 2.6 KiB |
@@ -0,0 +1,10 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Redirector</title>
|
||||
<meta http-equiv="refresh" content="0;url=../">
|
||||
</head>
|
||||
<body>
|
||||
<a href="../">Click here to redirect</a>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,52 @@
|
||||
YUI.add('api-filter', function (Y) {
|
||||
|
||||
Y.APIFilter = Y.Base.create('apiFilter', Y.Base, [Y.AutoCompleteBase], {
|
||||
// -- Initializer ----------------------------------------------------------
|
||||
initializer: function () {
|
||||
this._bindUIACBase();
|
||||
this._syncUIACBase();
|
||||
},
|
||||
getDisplayName: function(name) {
|
||||
|
||||
Y.each(Y.YUIDoc.meta.allModules, function(i) {
|
||||
if (i.name === name && i.displayName) {
|
||||
name = i.displayName;
|
||||
}
|
||||
});
|
||||
|
||||
return name;
|
||||
}
|
||||
|
||||
}, {
|
||||
// -- Attributes -----------------------------------------------------------
|
||||
ATTRS: {
|
||||
resultHighlighter: {
|
||||
value: 'phraseMatch'
|
||||
},
|
||||
|
||||
// May be set to "classes" or "modules".
|
||||
queryType: {
|
||||
value: 'classes'
|
||||
},
|
||||
|
||||
source: {
|
||||
valueFn: function() {
|
||||
var self = this;
|
||||
return function(q) {
|
||||
var data = Y.YUIDoc.meta[self.get('queryType')],
|
||||
out = [];
|
||||
Y.each(data, function(v) {
|
||||
if (v.toLowerCase().indexOf(q.toLowerCase()) > -1) {
|
||||
out.push(v);
|
||||
}
|
||||
});
|
||||
return out;
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}, '3.4.0', {requires: [
|
||||
'autocomplete-base', 'autocomplete-highlighters', 'autocomplete-sources'
|
||||
]});
|
||||
@@ -0,0 +1,251 @@
|
||||
YUI.add('api-list', function (Y) {
|
||||
|
||||
var Lang = Y.Lang,
|
||||
YArray = Y.Array,
|
||||
|
||||
APIList = Y.namespace('APIList'),
|
||||
|
||||
classesNode = Y.one('#api-classes'),
|
||||
inputNode = Y.one('#api-filter'),
|
||||
modulesNode = Y.one('#api-modules'),
|
||||
tabviewNode = Y.one('#api-tabview'),
|
||||
|
||||
tabs = APIList.tabs = {},
|
||||
|
||||
filter = APIList.filter = new Y.APIFilter({
|
||||
inputNode : inputNode,
|
||||
maxResults: 1000,
|
||||
|
||||
on: {
|
||||
results: onFilterResults
|
||||
}
|
||||
}),
|
||||
|
||||
search = APIList.search = new Y.APISearch({
|
||||
inputNode : inputNode,
|
||||
maxResults: 100,
|
||||
|
||||
on: {
|
||||
clear : onSearchClear,
|
||||
results: onSearchResults
|
||||
}
|
||||
}),
|
||||
|
||||
tabview = APIList.tabview = new Y.TabView({
|
||||
srcNode : tabviewNode,
|
||||
panelNode: '#api-tabview-panel',
|
||||
render : true,
|
||||
|
||||
on: {
|
||||
selectionChange: onTabSelectionChange
|
||||
}
|
||||
}),
|
||||
|
||||
focusManager = APIList.focusManager = tabviewNode.plug(Y.Plugin.NodeFocusManager, {
|
||||
circular : true,
|
||||
descendants: '#api-filter, .yui3-tab-panel-selected .api-list-item a, .yui3-tab-panel-selected .result a',
|
||||
keys : {next: 'down:40', previous: 'down:38'}
|
||||
}).focusManager,
|
||||
|
||||
LIST_ITEM_TEMPLATE =
|
||||
'<li class="api-list-item {typeSingular}">' +
|
||||
'<a href="{rootPath}{typePlural}/{name}.html">{displayName}</a>' +
|
||||
'</li>';
|
||||
|
||||
// -- Init ---------------------------------------------------------------------
|
||||
|
||||
// Duckpunch FocusManager's key event handling to prevent it from handling key
|
||||
// events when a modifier is pressed.
|
||||
Y.before(function (e, activeDescendant) {
|
||||
if (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey) {
|
||||
return new Y.Do.Prevent();
|
||||
}
|
||||
}, focusManager, '_focusPrevious', focusManager);
|
||||
|
||||
Y.before(function (e, activeDescendant) {
|
||||
if (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey) {
|
||||
return new Y.Do.Prevent();
|
||||
}
|
||||
}, focusManager, '_focusNext', focusManager);
|
||||
|
||||
// Create a mapping of tabs in the tabview so we can refer to them easily later.
|
||||
tabview.each(function (tab, index) {
|
||||
var name = tab.get('label').toLowerCase();
|
||||
|
||||
tabs[name] = {
|
||||
index: index,
|
||||
name : name,
|
||||
tab : tab
|
||||
};
|
||||
});
|
||||
|
||||
// Switch tabs on Ctrl/Cmd-Left/Right arrows.
|
||||
tabviewNode.on('key', onTabSwitchKey, 'down:37,39');
|
||||
|
||||
// Focus the filter input when the `/` key is pressed.
|
||||
Y.one(Y.config.doc).on('key', onSearchKey, 'down:83');
|
||||
|
||||
// Keep the Focus Manager up to date.
|
||||
inputNode.on('focus', function () {
|
||||
focusManager.set('activeDescendant', inputNode);
|
||||
});
|
||||
|
||||
// Update all tabview links to resolved URLs.
|
||||
tabview.get('panelNode').all('a').each(function (link) {
|
||||
link.setAttribute('href', link.get('href'));
|
||||
});
|
||||
|
||||
// -- Private Functions --------------------------------------------------------
|
||||
function getFilterResultNode() {
|
||||
return filter.get('queryType') === 'classes' ? classesNode : modulesNode;
|
||||
}
|
||||
|
||||
// -- Event Handlers -----------------------------------------------------------
|
||||
function onFilterResults(e) {
|
||||
var frag = Y.one(Y.config.doc.createDocumentFragment()),
|
||||
resultNode = getFilterResultNode(),
|
||||
typePlural = filter.get('queryType'),
|
||||
typeSingular = typePlural === 'classes' ? 'class' : 'module';
|
||||
|
||||
if (e.results.length) {
|
||||
YArray.each(e.results, function (result) {
|
||||
frag.append(Lang.sub(LIST_ITEM_TEMPLATE, {
|
||||
rootPath : APIList.rootPath,
|
||||
displayName : filter.getDisplayName(result.highlighted),
|
||||
name : result.text,
|
||||
typePlural : typePlural,
|
||||
typeSingular: typeSingular
|
||||
}));
|
||||
});
|
||||
} else {
|
||||
frag.append(
|
||||
'<li class="message">' +
|
||||
'No ' + typePlural + ' found.' +
|
||||
'</li>'
|
||||
);
|
||||
}
|
||||
|
||||
resultNode.empty(true);
|
||||
resultNode.append(frag);
|
||||
|
||||
focusManager.refresh();
|
||||
}
|
||||
|
||||
function onSearchClear(e) {
|
||||
|
||||
focusManager.refresh();
|
||||
}
|
||||
|
||||
function onSearchKey(e) {
|
||||
var target = e.target;
|
||||
|
||||
if (target.test('input,select,textarea')
|
||||
|| target.get('isContentEditable')) {
|
||||
return;
|
||||
}
|
||||
|
||||
e.preventDefault();
|
||||
|
||||
inputNode.focus();
|
||||
focusManager.refresh();
|
||||
}
|
||||
|
||||
function onSearchResults(e) {
|
||||
var frag = Y.one(Y.config.doc.createDocumentFragment());
|
||||
|
||||
if (e.results.length) {
|
||||
YArray.each(e.results, function (result) {
|
||||
frag.append(result.display);
|
||||
});
|
||||
} else {
|
||||
frag.append(
|
||||
'<li class="message">' +
|
||||
'No results found. Maybe you\'ll have better luck with a ' +
|
||||
'different query?' +
|
||||
'</li>'
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
focusManager.refresh();
|
||||
}
|
||||
|
||||
function onTabSelectionChange(e) {
|
||||
var tab = e.newVal,
|
||||
name = tab.get('label').toLowerCase();
|
||||
|
||||
tabs.selected = {
|
||||
index: tab.get('index'),
|
||||
name : name,
|
||||
tab : tab
|
||||
};
|
||||
|
||||
switch (name) {
|
||||
case 'classes': // fallthru
|
||||
case 'modules':
|
||||
filter.setAttrs({
|
||||
minQueryLength: 0,
|
||||
queryType : name
|
||||
});
|
||||
|
||||
search.set('minQueryLength', -1);
|
||||
|
||||
// Only send a request if this isn't the initially-selected tab.
|
||||
if (e.prevVal) {
|
||||
filter.sendRequest(filter.get('value'));
|
||||
}
|
||||
break;
|
||||
|
||||
case 'everything':
|
||||
filter.set('minQueryLength', -1);
|
||||
search.set('minQueryLength', 1);
|
||||
|
||||
if (search.get('value')) {
|
||||
search.sendRequest(search.get('value'));
|
||||
} else {
|
||||
inputNode.focus();
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
// WTF? We shouldn't be here!
|
||||
filter.set('minQueryLength', -1);
|
||||
search.set('minQueryLength', -1);
|
||||
}
|
||||
|
||||
if (focusManager) {
|
||||
setTimeout(function () {
|
||||
focusManager.refresh();
|
||||
}, 1);
|
||||
}
|
||||
}
|
||||
|
||||
function onTabSwitchKey(e) {
|
||||
var currentTabIndex = tabs.selected.index;
|
||||
|
||||
if (!(e.ctrlKey || e.metaKey)) {
|
||||
return;
|
||||
}
|
||||
|
||||
e.preventDefault();
|
||||
|
||||
switch (e.keyCode) {
|
||||
case 37: // left arrow
|
||||
if (currentTabIndex > 0) {
|
||||
tabview.selectChild(currentTabIndex - 1);
|
||||
inputNode.focus();
|
||||
}
|
||||
break;
|
||||
|
||||
case 39: // right arrow
|
||||
if (currentTabIndex < (Y.Object.size(tabs) - 2)) {
|
||||
tabview.selectChild(currentTabIndex + 1);
|
||||
inputNode.focus();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}, '3.4.0', {requires: [
|
||||
'api-filter', 'api-search', 'event-key', 'node-focusmanager', 'tabview'
|
||||
]});
|
||||
@@ -0,0 +1,98 @@
|
||||
YUI.add('api-search', function (Y) {
|
||||
|
||||
var Lang = Y.Lang,
|
||||
Node = Y.Node,
|
||||
YArray = Y.Array;
|
||||
|
||||
Y.APISearch = Y.Base.create('apiSearch', Y.Base, [Y.AutoCompleteBase], {
|
||||
// -- Public Properties ----------------------------------------------------
|
||||
RESULT_TEMPLATE:
|
||||
'<li class="result {resultType}">' +
|
||||
'<a href="{url}">' +
|
||||
'<h3 class="title">{name}</h3>' +
|
||||
'<span class="type">{resultType}</span>' +
|
||||
'<div class="description">{description}</div>' +
|
||||
'<span class="className">{class}</span>' +
|
||||
'</a>' +
|
||||
'</li>',
|
||||
|
||||
// -- Initializer ----------------------------------------------------------
|
||||
initializer: function () {
|
||||
this._bindUIACBase();
|
||||
this._syncUIACBase();
|
||||
},
|
||||
|
||||
// -- Protected Methods ----------------------------------------------------
|
||||
_apiResultFilter: function (query, results) {
|
||||
// Filter components out of the results.
|
||||
return YArray.filter(results, function (result) {
|
||||
return result.raw.resultType === 'component' ? false : result;
|
||||
});
|
||||
},
|
||||
|
||||
_apiResultFormatter: function (query, results) {
|
||||
return YArray.map(results, function (result) {
|
||||
var raw = Y.merge(result.raw), // create a copy
|
||||
desc = raw.description || '';
|
||||
|
||||
// Convert description to text and truncate it if necessary.
|
||||
desc = Node.create('<div>' + desc + '</div>').get('text');
|
||||
|
||||
if (desc.length > 65) {
|
||||
desc = Y.Escape.html(desc.substr(0, 65)) + ' …';
|
||||
} else {
|
||||
desc = Y.Escape.html(desc);
|
||||
}
|
||||
|
||||
raw['class'] || (raw['class'] = '');
|
||||
raw.description = desc;
|
||||
|
||||
// Use the highlighted result name.
|
||||
raw.name = result.highlighted;
|
||||
|
||||
return Lang.sub(this.RESULT_TEMPLATE, raw);
|
||||
}, this);
|
||||
},
|
||||
|
||||
_apiTextLocator: function (result) {
|
||||
return result.displayName || result.name;
|
||||
}
|
||||
}, {
|
||||
// -- Attributes -----------------------------------------------------------
|
||||
ATTRS: {
|
||||
resultFormatter: {
|
||||
valueFn: function () {
|
||||
return this._apiResultFormatter;
|
||||
}
|
||||
},
|
||||
|
||||
resultFilters: {
|
||||
valueFn: function () {
|
||||
return this._apiResultFilter;
|
||||
}
|
||||
},
|
||||
|
||||
resultHighlighter: {
|
||||
value: 'phraseMatch'
|
||||
},
|
||||
|
||||
resultListLocator: {
|
||||
value: 'data.results'
|
||||
},
|
||||
|
||||
resultTextLocator: {
|
||||
valueFn: function () {
|
||||
return this._apiTextLocator;
|
||||
}
|
||||
},
|
||||
|
||||
source: {
|
||||
value: '/api/v1/search?q={query}&count={maxResults}'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}, '3.4.0', {requires: [
|
||||
'autocomplete-base', 'autocomplete-highlighters', 'autocomplete-sources',
|
||||
'escape'
|
||||
]});
|
||||
@@ -0,0 +1,370 @@
|
||||
YUI().use(
|
||||
'yuidoc-meta',
|
||||
'api-list', 'history-hash', 'node-screen', 'node-style', 'pjax',
|
||||
function (Y) {
|
||||
|
||||
var win = Y.config.win,
|
||||
localStorage = win.localStorage,
|
||||
|
||||
bdNode = Y.one('#bd'),
|
||||
|
||||
pjax,
|
||||
defaultRoute,
|
||||
|
||||
classTabView,
|
||||
selectedTab;
|
||||
|
||||
// Kill pjax functionality unless serving over HTTP.
|
||||
if (!Y.getLocation().protocol.match(/^https?\:/)) {
|
||||
Y.Router.html5 = false;
|
||||
}
|
||||
|
||||
// Create the default route with middleware which enables syntax highlighting
|
||||
// on the loaded content.
|
||||
defaultRoute = Y.Pjax.defaultRoute.concat(function (req, res, next) {
|
||||
prettyPrint();
|
||||
bdNode.removeClass('loading');
|
||||
|
||||
next();
|
||||
});
|
||||
|
||||
pjax = new Y.Pjax({
|
||||
container : '#docs-main',
|
||||
contentSelector: '#docs-main > .content',
|
||||
linkSelector : '#bd a',
|
||||
titleSelector : '#xhr-title',
|
||||
|
||||
navigateOnHash: true,
|
||||
root : '/',
|
||||
routes : [
|
||||
// -- / ----------------------------------------------------------------
|
||||
{
|
||||
path : '/(index.html)?',
|
||||
callbacks: defaultRoute
|
||||
},
|
||||
|
||||
// -- /classes/* -------------------------------------------------------
|
||||
{
|
||||
path : '/classes/:class.html*',
|
||||
callbacks: [defaultRoute, 'handleClasses']
|
||||
},
|
||||
|
||||
// -- /files/* ---------------------------------------------------------
|
||||
{
|
||||
path : '/files/*file',
|
||||
callbacks: [defaultRoute, 'handleFiles']
|
||||
},
|
||||
|
||||
// -- /modules/* -------------------------------------------------------
|
||||
{
|
||||
path : '/modules/:module.html*',
|
||||
callbacks: defaultRoute
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
// -- Utility Functions --------------------------------------------------------
|
||||
|
||||
pjax.checkVisibility = function (tab) {
|
||||
tab || (tab = selectedTab);
|
||||
|
||||
if (!tab) { return; }
|
||||
|
||||
var panelNode = tab.get('panelNode'),
|
||||
visibleItems;
|
||||
|
||||
// If no items are visible in the tab panel due to the current visibility
|
||||
// settings, display a message to that effect.
|
||||
visibleItems = panelNode.all('.item,.index-item').some(function (itemNode) {
|
||||
if (itemNode.getComputedStyle('display') !== 'none') {
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
panelNode.all('.no-visible-items').remove();
|
||||
|
||||
if (!visibleItems) {
|
||||
if (Y.one('#index .index-item')) {
|
||||
panelNode.append(
|
||||
'<div class="no-visible-items">' +
|
||||
'<p>' +
|
||||
'Some items are not shown due to the current visibility ' +
|
||||
'settings. Use the checkboxes at the upper right of this ' +
|
||||
'page to change the visibility settings.' +
|
||||
'</p>' +
|
||||
'</div>'
|
||||
);
|
||||
} else {
|
||||
panelNode.append(
|
||||
'<div class="no-visible-items">' +
|
||||
'<p>' +
|
||||
'This class doesn\'t provide any methods, properties, ' +
|
||||
'attributes, or events.' +
|
||||
'</p>' +
|
||||
'</div>'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// Hide index sections without any visible items.
|
||||
Y.all('.index-section').each(function (section) {
|
||||
var items = 0,
|
||||
visibleItems = 0;
|
||||
|
||||
section.all('.index-item').each(function (itemNode) {
|
||||
items += 1;
|
||||
|
||||
if (itemNode.getComputedStyle('display') !== 'none') {
|
||||
visibleItems += 1;
|
||||
}
|
||||
});
|
||||
|
||||
section.toggleClass('hidden', !visibleItems);
|
||||
section.toggleClass('no-columns', visibleItems < 4);
|
||||
});
|
||||
};
|
||||
|
||||
pjax.initClassTabView = function () {
|
||||
if (!Y.all('#classdocs .api-class-tab').size()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (classTabView) {
|
||||
classTabView.destroy();
|
||||
selectedTab = null;
|
||||
}
|
||||
|
||||
classTabView = new Y.TabView({
|
||||
srcNode: '#classdocs',
|
||||
|
||||
on: {
|
||||
selectionChange: pjax.onTabSelectionChange
|
||||
}
|
||||
});
|
||||
|
||||
pjax.updateTabState();
|
||||
classTabView.render();
|
||||
};
|
||||
|
||||
pjax.initLineNumbers = function () {
|
||||
var hash = win.location.hash.substring(1),
|
||||
container = pjax.get('container'),
|
||||
hasLines, node;
|
||||
|
||||
// Add ids for each line number in the file source view.
|
||||
container.all('.linenums>li').each(function (lineNode, index) {
|
||||
lineNode.set('id', 'l' + (index + 1));
|
||||
lineNode.addClass('file-line');
|
||||
hasLines = true;
|
||||
});
|
||||
|
||||
// Scroll to the desired line.
|
||||
if (hasLines && /^l\d+$/.test(hash)) {
|
||||
if ((node = container.getById(hash))) {
|
||||
win.scroll(0, node.getY());
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
pjax.initRoot = function () {
|
||||
var terminators = /^(?:classes|files|modules)$/,
|
||||
parts = pjax._getPathRoot().split('/'),
|
||||
root = [],
|
||||
i, len, part;
|
||||
|
||||
for (i = 0, len = parts.length; i < len; i += 1) {
|
||||
part = parts[i];
|
||||
|
||||
if (part.match(terminators)) {
|
||||
// Makes sure the path will end with a "/".
|
||||
root.push('');
|
||||
break;
|
||||
}
|
||||
|
||||
root.push(part);
|
||||
}
|
||||
|
||||
pjax.set('root', root.join('/'));
|
||||
};
|
||||
|
||||
pjax.updateTabState = function (src) {
|
||||
var hash = win.location.hash.substring(1),
|
||||
defaultTab, node, tab, tabPanel;
|
||||
|
||||
function scrollToNode() {
|
||||
if (node.hasClass('protected')) {
|
||||
Y.one('#api-show-protected').set('checked', true);
|
||||
pjax.updateVisibility();
|
||||
}
|
||||
|
||||
if (node.hasClass('private')) {
|
||||
Y.one('#api-show-private').set('checked', true);
|
||||
pjax.updateVisibility();
|
||||
}
|
||||
|
||||
setTimeout(function () {
|
||||
// For some reason, unless we re-get the node instance here,
|
||||
// getY() always returns 0.
|
||||
var node = Y.one('#classdocs').getById(hash);
|
||||
win.scrollTo(0, node.getY() - 70);
|
||||
}, 1);
|
||||
}
|
||||
|
||||
if (!classTabView) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (src === 'hashchange' && !hash) {
|
||||
defaultTab = 'index';
|
||||
} else {
|
||||
if (localStorage) {
|
||||
defaultTab = localStorage.getItem('tab_' + pjax.getPath()) ||
|
||||
'index';
|
||||
} else {
|
||||
defaultTab = 'index';
|
||||
}
|
||||
}
|
||||
|
||||
if (hash && (node = Y.one('#classdocs').getById(hash))) {
|
||||
if ((tabPanel = node.ancestor('.api-class-tabpanel', true))) {
|
||||
if ((tab = Y.one('#classdocs .api-class-tab.' + tabPanel.get('id')))) {
|
||||
if (classTabView.get('rendered')) {
|
||||
Y.Widget.getByNode(tab).set('selected', 1);
|
||||
} else {
|
||||
tab.addClass('yui3-tab-selected');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Scroll to the desired element if this is a hash URL.
|
||||
if (node) {
|
||||
if (classTabView.get('rendered')) {
|
||||
scrollToNode();
|
||||
} else {
|
||||
classTabView.once('renderedChange', scrollToNode);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
tab = Y.one('#classdocs .api-class-tab.' + defaultTab);
|
||||
|
||||
// When the `defaultTab` node isn't found, `localStorage` is stale.
|
||||
if (!tab && defaultTab !== 'index') {
|
||||
tab = Y.one('#classdocs .api-class-tab.index');
|
||||
}
|
||||
|
||||
if (classTabView.get('rendered')) {
|
||||
Y.Widget.getByNode(tab).set('selected', 1);
|
||||
} else {
|
||||
tab.addClass('yui3-tab-selected');
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
pjax.updateVisibility = function () {
|
||||
var container = pjax.get('container');
|
||||
|
||||
container.toggleClass('hide-inherited',
|
||||
!Y.one('#api-show-inherited').get('checked'));
|
||||
|
||||
container.toggleClass('show-deprecated',
|
||||
Y.one('#api-show-deprecated').get('checked'));
|
||||
|
||||
container.toggleClass('show-protected',
|
||||
Y.one('#api-show-protected').get('checked'));
|
||||
|
||||
container.toggleClass('show-private',
|
||||
Y.one('#api-show-private').get('checked'));
|
||||
|
||||
pjax.checkVisibility();
|
||||
};
|
||||
|
||||
// -- Route Handlers -----------------------------------------------------------
|
||||
|
||||
pjax.handleClasses = function (req, res, next) {
|
||||
var status = res.ioResponse.status;
|
||||
|
||||
// Handles success and local filesystem XHRs.
|
||||
if (!status || (status >= 200 && status < 300)) {
|
||||
pjax.initClassTabView();
|
||||
}
|
||||
|
||||
next();
|
||||
};
|
||||
|
||||
pjax.handleFiles = function (req, res, next) {
|
||||
var status = res.ioResponse.status;
|
||||
|
||||
// Handles success and local filesystem XHRs.
|
||||
if (!status || (status >= 200 && status < 300)) {
|
||||
pjax.initLineNumbers();
|
||||
}
|
||||
|
||||
next();
|
||||
};
|
||||
|
||||
// -- Event Handlers -----------------------------------------------------------
|
||||
|
||||
pjax.onNavigate = function (e) {
|
||||
var hash = e.hash,
|
||||
originTarget = e.originEvent && e.originEvent.target,
|
||||
tab;
|
||||
|
||||
if (hash) {
|
||||
tab = originTarget && originTarget.ancestor('.yui3-tab', true);
|
||||
|
||||
if (hash === win.location.hash) {
|
||||
pjax.updateTabState('hashchange');
|
||||
} else if (!tab) {
|
||||
win.location.hash = hash;
|
||||
}
|
||||
|
||||
e.preventDefault();
|
||||
return;
|
||||
}
|
||||
|
||||
// Only scroll to the top of the page when the URL doesn't have a hash.
|
||||
this.set('scrollToTop', !e.url.match(/#.+$/));
|
||||
|
||||
bdNode.addClass('loading');
|
||||
};
|
||||
|
||||
pjax.onOptionClick = function (e) {
|
||||
pjax.updateVisibility();
|
||||
};
|
||||
|
||||
pjax.onTabSelectionChange = function (e) {
|
||||
var tab = e.newVal,
|
||||
tabId = tab.get('contentBox').getAttribute('href').substring(1);
|
||||
|
||||
selectedTab = tab;
|
||||
|
||||
// If switching from a previous tab (i.e., this is not the default tab),
|
||||
// replace the history entry with a hash URL that will cause this tab to
|
||||
// be selected if the user navigates away and then returns using the back
|
||||
// or forward buttons.
|
||||
if (e.prevVal && localStorage) {
|
||||
localStorage.setItem('tab_' + pjax.getPath(), tabId);
|
||||
}
|
||||
|
||||
pjax.checkVisibility(tab);
|
||||
};
|
||||
|
||||
// -- Init ---------------------------------------------------------------------
|
||||
|
||||
pjax.on('navigate', pjax.onNavigate);
|
||||
|
||||
pjax.initRoot();
|
||||
pjax.upgrade();
|
||||
pjax.initClassTabView();
|
||||
pjax.initLineNumbers();
|
||||
pjax.updateVisibility();
|
||||
|
||||
Y.APIList.rootPath = pjax.get('root');
|
||||
|
||||
Y.one('#api-options').delegate('click', pjax.onOptionClick, 'input');
|
||||
|
||||
Y.on('hashchange', function (e) {
|
||||
pjax.updateTabState('hashchange');
|
||||
}, win);
|
||||
|
||||
});
|
||||
@@ -0,0 +1,17 @@
|
||||
YUI().use('node', function(Y) {
|
||||
var code = Y.all('.prettyprint.linenums');
|
||||
if (code.size()) {
|
||||
code.each(function(c) {
|
||||
var lis = c.all('ol li'),
|
||||
l = 1;
|
||||
lis.each(function(n) {
|
||||
n.prepend('<a name="LINENUM_' + l + '"></a>');
|
||||
l++;
|
||||
});
|
||||
});
|
||||
var h = location.hash;
|
||||
location.hash = '';
|
||||
h = h.replace('LINE_', 'LINENUM_');
|
||||
location.hash = h;
|
||||
}
|
||||
});
|
||||
@@ -0,0 +1,130 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>Change Log</title>
|
||||
</head>
|
||||
<body bgcolor="white">
|
||||
<a style="float:right" href="README.html">README</a>
|
||||
|
||||
<h1>Known Issues</h1>
|
||||
<ul>
|
||||
<li>Perl formatting is really crappy. Partly because the author is lazy and
|
||||
partly because Perl is
|
||||
<a href="http://www.perlmonks.org/?node_id=663393">hard</a> to parse.
|
||||
<li>On some browsers, <code><code></code> elements with newlines in the text
|
||||
which use CSS to specify <code>white-space:pre</code> will have the newlines
|
||||
improperly stripped if the element is not attached to the document at the time
|
||||
the stripping is done. Also, on IE 6, all newlines will be stripped from
|
||||
<code><code></code> elements because of the way IE6 produces
|
||||
<code>innerHTML</code>. Workaround: use <code><pre></code> for code with
|
||||
newlines.
|
||||
</ul>
|
||||
|
||||
<h1>Change Log</h1>
|
||||
<h2>29 March 2007</h2>
|
||||
<ul>
|
||||
<li>Added <a href="tests/prettify_test.html#PHP">tests</a> for PHP support
|
||||
to address
|
||||
<a href="http://code.google.com/p/google-code-prettify/issues/detail?id=3"
|
||||
>issue 3</a>.
|
||||
<li>Fixed
|
||||
<a href="http://code.google.com/p/google-code-prettify/issues/detail?id=6"
|
||||
>bug</a>: <code>prettyPrintOne</code> was not halting. This was not
|
||||
reachable through the normal entry point.
|
||||
<li>Fixed
|
||||
<a href="http://code.google.com/p/google-code-prettify/issues/detail?id=4"
|
||||
>bug</a>: recursing into a script block or PHP tag that was not properly
|
||||
closed would not silently drop the content.
|
||||
(<a href="tests/prettify_test.html#issue4">test</a>)
|
||||
<li>Fixed
|
||||
<a href="http://code.google.com/p/google-code-prettify/issues/detail?id=8"
|
||||
>bug</a>: was eating tabs
|
||||
(<a href="tests/prettify_test.html#issue8">test</a>)
|
||||
<li>Fixed entity handling so that the caveat
|
||||
<blockquote>
|
||||
<p>Caveats: please properly escape less-thans. <tt>x&lt;y</tt>
|
||||
instead of <tt>x<y</tt>, and use <tt>"</tt> instead of
|
||||
<tt>&quot;</tt> for string delimiters.</p>
|
||||
</blockquote>
|
||||
is no longer applicable.
|
||||
<li>Added noisefree's C#
|
||||
<a href="http://code.google.com/p/google-code-prettify/issues/detail?id=4"
|
||||
>patch</a>
|
||||
<li>Added a <a href="http://google-code-prettify.googlecode.com/files/prettify-small.zip">distribution</a> that has comments and
|
||||
whitespace removed to reduce download size from 45.5kB to 12.8kB.
|
||||
</ul>
|
||||
<h2>4 Jul 2008</h2>
|
||||
<ul>
|
||||
<li>Added <a href="http://code.google.com/p/google-code-prettify/issues/detail?id=17">language specific formatters</a> that are triggered by the presence
|
||||
of a <code>lang-<language-file-extension></code></li>
|
||||
<li>Fixed <a href="http://code.google.com/p/google-code-prettify/issues/detail?id=29">bug</a>: python handling of <code>'''string'''</code>
|
||||
<li>Fixed bug: <code>/</code> in regex <code>[charsets] should not end regex</code>
|
||||
</ul>
|
||||
<h2>5 Jul 2008</h2>
|
||||
<ul>
|
||||
<li>Defined language extensions for Lisp and Lua</code>
|
||||
</ul>
|
||||
<h2>14 Jul 2008</h2>
|
||||
<ul>
|
||||
<li>Language handlers for F#, OCAML, SQL</code>
|
||||
<li>Support for <code>nocode</code> spans to allow embedding of line
|
||||
numbers and code annotations which should not be styled or otherwise
|
||||
affect the tokenization of prettified code.
|
||||
See the issue 22
|
||||
<a href="tests/prettify_test.html#issue22">testcase</a>.</code>
|
||||
</ul>
|
||||
<h2>6 Jan 2009</h2>
|
||||
<ul>
|
||||
<li>Language handlers for Visual Basic, Haskell, CSS, and WikiText</li>
|
||||
<li>Added <tt>.mxml</tt> extension to the markup style handler for
|
||||
Flex <a href="http://en.wikipedia.org/wiki/MXML">MXML files</a>. See
|
||||
<a
|
||||
href="http://code.google.com/p/google-code-prettify/issues/detail?id=37"
|
||||
>issue 37</a>.
|
||||
<li>Added <tt>.m</tt> extension to the C style handler so that Objective
|
||||
C source files properly highlight. See
|
||||
<a
|
||||
href="http://code.google.com/p/google-code-prettify/issues/detail?id=58"
|
||||
>issue 58</a>.
|
||||
<li>Changed HTML lexer to use the same embedded source mechanism as the
|
||||
wiki language handler, and changed to use the registered
|
||||
CSS handler for STYLE element content.
|
||||
</ul>
|
||||
<h2>21 May 2009</h2>
|
||||
<ul>
|
||||
<li>Rewrote to improve performance on large files.
|
||||
See <a href="http://mikesamuel.blogspot.com/2009/05/efficient-parsing-in-javascript.html">benchmarks</a>.</li>
|
||||
<li>Fixed bugs with highlighting of Haskell line comments, Lisp
|
||||
number literals, Lua strings, C preprocessor directives,
|
||||
newlines in Wiki code on Windows, and newlines in IE6.</li>
|
||||
</ul>
|
||||
<h2>14 August 2009</h2>
|
||||
<ul>
|
||||
<li>Fixed prettifying of <code><code></code> blocks with embedded newlines.
|
||||
</ul>
|
||||
<h2>3 October 2009</h2>
|
||||
<ul>
|
||||
<li>Fixed prettifying of XML/HTML tags that contain uppercase letters.
|
||||
</ul>
|
||||
<h2>19 July 2010</h2>
|
||||
<ul>
|
||||
<li>Added support for line numbers. Bug
|
||||
<a href="http://code.google.com/p/google-code-prettify/issues/detail?id=22"
|
||||
>22</a></li>
|
||||
<li>Added YAML support. Bug
|
||||
<a href="http://code.google.com/p/google-code-prettify/issues/detail?id=123"
|
||||
>123</a></li>
|
||||
<li>Added VHDL support courtesy Le Poussin.</li>
|
||||
<li>IE performance improvements. Bug
|
||||
<a href="http://code.google.com/p/google-code-prettify/issues/detail?id=102"
|
||||
>102</a> courtesy jacobly.</li>
|
||||
<li>A variety of markup formatting fixes courtesy smain and thezbyg.</li>
|
||||
<li>Fixed copy and paste in IE[678].
|
||||
<li>Changed output to use <code>&#160;</code> instead of
|
||||
<code>&nbsp;</code> so that the output works when embedded in XML.
|
||||
Bug
|
||||
<a href="http://code.google.com/p/google-code-prettify/issues/detail?id=108"
|
||||
>108</a>.</li>
|
||||
</ul>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,202 @@
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
@@ -0,0 +1,203 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<title>Javascript code prettifier</title>
|
||||
|
||||
<link href="src/prettify.css" type="text/css" rel="stylesheet" />
|
||||
|
||||
<script src="src/prettify.js" type="text/javascript"></script>
|
||||
|
||||
<style type="text/css">
|
||||
body { margin-left: .5in }
|
||||
h1, h2, h3, h4, .footer { margin-left: -.4in; }
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body onload="prettyPrint()" bgcolor="white">
|
||||
<small style="float: right">Languages : <a href="README-zh-Hans.html">CH</a></small>
|
||||
<h1>Javascript code prettifier</h1>
|
||||
|
||||
<h2>Setup</h2>
|
||||
<ol>
|
||||
<li><a href="http://code.google.com/p/google-code-prettify/downloads/list">Download</a> a distribution
|
||||
<li>Include the script and stylesheets in your document
|
||||
(you will need to make sure the css and js file are on your server, and
|
||||
adjust the paths in the <tt>script</tt> and <tt>link</tt> tag)
|
||||
<pre class="prettyprint">
|
||||
<link href="prettify.css" type="text/css" rel="stylesheet" />
|
||||
<script type="text/javascript" src="prettify.js"></script></pre>
|
||||
<li>Add <code class="prettyprint lang-html">onload="prettyPrint()"</code> to your
|
||||
document's body tag.
|
||||
<li>Modify the stylesheet to get the coloring you prefer</li>
|
||||
</ol>
|
||||
|
||||
<h2>Usage</h2>
|
||||
<p>Put code snippets in
|
||||
<tt><pre class="prettyprint">...</pre></tt>
|
||||
or <tt><code class="prettyprint">...</code></tt>
|
||||
and it will automatically be pretty printed.
|
||||
|
||||
<table summary="code examples">
|
||||
<tr>
|
||||
<th>The original
|
||||
<th>Prettier
|
||||
<tr>
|
||||
<td><pre style="border: 1px solid #888;padding: 2px"
|
||||
><a name="voila1"></a>class Voila {
|
||||
public:
|
||||
// Voila
|
||||
static const string VOILA = "Voila";
|
||||
|
||||
// will not interfere with embedded <a href="#voila1">tags</a>.
|
||||
}</pre>
|
||||
|
||||
<td><pre class="prettyprint"><a name="voila2"></a>class Voila {
|
||||
public:
|
||||
// Voila
|
||||
static const string VOILA = "Voila";
|
||||
|
||||
// will not interfere with embedded <a href="#voila2">tags</a>.
|
||||
}</pre>
|
||||
</table>
|
||||
|
||||
<h2>FAQ</h2>
|
||||
<h3 id="langs">Which languages does it work for?</h3>
|
||||
<p>The comments in <tt>prettify.js</tt> are authoritative but the lexer
|
||||
should work on a number of languages including C and friends,
|
||||
Java, Python, Bash, SQL, HTML, XML, CSS, Javascript, and Makefiles.
|
||||
It works passably on Ruby, PHP, VB, and Awk and a decent subset of Perl
|
||||
and Ruby, but, because of commenting conventions, doesn't work on
|
||||
Smalltalk, or CAML-like languages.</p>
|
||||
|
||||
<p>LISPy languages are supported via an extension:
|
||||
<a href="http://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-lisp.js"
|
||||
><code>lang-lisp.js</code></a>.</p>
|
||||
<p>And similarly for
|
||||
<a href="http://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-css.js"
|
||||
><code>CSS</code></a>,
|
||||
<a href="http://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-hs.js"
|
||||
><code>Haskell</code></a>,
|
||||
<a href="http://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-lua.js"
|
||||
><code>Lua</code></a>,
|
||||
<a href="http://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-ml.js"
|
||||
><code>OCAML, SML, F#</code></a>,
|
||||
<a href="http://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-vb.js"
|
||||
><code>Visual Basic</code></a>,
|
||||
<a href="http://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-sql.js"
|
||||
><code>SQL</code></a>,
|
||||
<a href="http://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-proto.js"
|
||||
><code>Protocol Buffers</code></a>, and
|
||||
<a href="http://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-wiki.js"
|
||||
><code>WikiText</code></a>..
|
||||
|
||||
<p>If you'd like to add an extension for your favorite language, please
|
||||
look at <tt>src/lang-lisp.js</tt> and file an
|
||||
<a href="http://code.google.com/p/google-code-prettify/issues/list"
|
||||
>issue</a> including your language extension, and a testcase.</p>
|
||||
|
||||
<h3>How do I specify which language my code is in?</h3>
|
||||
<p>You don't need to specify the language since <code>prettyprint()</code>
|
||||
will guess. You can specify a language by specifying the language extension
|
||||
along with the <code>prettyprint</code> class like so:</p>
|
||||
<pre class="prettyprint lang-html"
|
||||
><pre class="prettyprint <b>lang-html</b>">
|
||||
The lang-* class specifies the language file extensions.
|
||||
File extensions supported by default include
|
||||
"bsh", "c", "cc", "cpp", "cs", "csh", "cyc", "cv", "htm", "html",
|
||||
"java", "js", "m", "mxml", "perl", "pl", "pm", "py", "rb", "sh",
|
||||
"xhtml", "xml", "xsl".
|
||||
</pre></pre>
|
||||
|
||||
<h3>It doesn't work on <tt><obfuscated code sample></tt>?</h3>
|
||||
<p>Yes. Prettifying obfuscated code is like putting lipstick on a pig
|
||||
— i.e. outside the scope of this tool.</p>
|
||||
|
||||
<h3>Which browsers does it work with?</h3>
|
||||
<p>It's been tested with IE 6, Firefox 1.5 & 2, and Safari 2.0.4.
|
||||
Look at <a href="tests/prettify_test.html">the test page</a> to see if it
|
||||
works in your browser.</p>
|
||||
|
||||
<h3>What's changed?</h3>
|
||||
<p>See the <a href="CHANGES.html">change log</a></p>
|
||||
|
||||
<h3>Why doesn't Prettyprinting of strings work on WordPress?</h3>
|
||||
<p>Apparently wordpress does "smart quoting" which changes close quotes.
|
||||
This causes end quotes to not match up with open quotes.
|
||||
<p>This breaks prettifying as well as copying and pasting of code samples.
|
||||
See
|
||||
<a href="http://wordpress.org/support/topic/125038"
|
||||
>WordPress's help center</a> for info on how to stop smart quoting of code
|
||||
snippets.</p>
|
||||
|
||||
<h3 id="linenums">How do I put line numbers in my code?</h3>
|
||||
<p>You can use the <code>linenums</code> class to turn on line
|
||||
numbering. If your code doesn't start at line number 1, you can
|
||||
add a colon and a line number to the end of that class as in
|
||||
<code>linenums:52</code>.
|
||||
|
||||
<p>For example
|
||||
<pre class="prettyprint"><pre class="prettyprint linenums:<b>4</b>"
|
||||
>// This is line 4.
|
||||
foo();
|
||||
bar();
|
||||
baz();
|
||||
boo();
|
||||
far();
|
||||
faz();
|
||||
<pre></pre>
|
||||
produces
|
||||
<pre class="prettyprint linenums:4"
|
||||
>// This is line 4.
|
||||
foo();
|
||||
bar();
|
||||
baz();
|
||||
boo();
|
||||
far();
|
||||
faz();
|
||||
</pre>
|
||||
|
||||
<h3>How do I prevent a portion of markup from being marked as code?</h3>
|
||||
<p>You can use the <code>nocode</code> class to identify a span of markup
|
||||
that is not code.
|
||||
<pre class="prettyprint"><pre class=prettyprint>
|
||||
int x = foo(); /* This is a comment <span class="nocode">This is not code</span>
|
||||
Continuation of comment */
|
||||
int y = bar();
|
||||
</pre></pre>
|
||||
produces
|
||||
<pre class="prettyprint">
|
||||
int x = foo(); /* This is a comment <span class="nocode">This is not code</span>
|
||||
Continuation of comment */
|
||||
int y = bar();
|
||||
</pre>
|
||||
|
||||
<p>For a more complete example see the issue22
|
||||
<a href="tests/prettify_test.html#issue22">testcase</a>.</p>
|
||||
|
||||
<h3>I get an error message "a is not a function" or "opt_whenDone is not a function"</h3>
|
||||
<p>If you are calling <code>prettyPrint</code> via an event handler, wrap it in a function.
|
||||
Instead of doing
|
||||
<blockquote>
|
||||
<code class="prettyprint lang-js"
|
||||
>addEventListener('load', prettyPrint, false);</code>
|
||||
</blockquote>
|
||||
wrap it in a closure like
|
||||
<blockquote>
|
||||
<code class="prettyprint lang-js"
|
||||
>addEventListener('load', function (event) { prettyPrint() }, false);</code>
|
||||
</blockquote>
|
||||
so that the browser does not pass an event object to <code>prettyPrint</code> which
|
||||
will confuse it.
|
||||
|
||||
<br><br><br>
|
||||
|
||||
<div class="footer">
|
||||
<!-- Created: Tue Oct 3 17:51:56 PDT 2006 -->
|
||||
<!-- hhmts start -->
|
||||
Last modified: Wed Jul 19 13:56:00 PST 2010
|
||||
<!-- hhmts end -->
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1 @@
|
||||
.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}
|
||||
@@ -0,0 +1,364 @@
|
||||
{
|
||||
"project": {
|
||||
"name": "Phaser",
|
||||
"description": "HTML5 Game Framework",
|
||||
"version": "1.0.0",
|
||||
"url": "http://www.phaser.io/"
|
||||
},
|
||||
"files": {
|
||||
"..\\Phaser\\time\\TimeManager.ts": {
|
||||
"name": "..\\Phaser\\time\\TimeManager.ts",
|
||||
"modules": {
|
||||
"Phaser": 1
|
||||
},
|
||||
"classes": {
|
||||
"TimeManager": 1
|
||||
},
|
||||
"fors": {},
|
||||
"namespaces": {}
|
||||
}
|
||||
},
|
||||
"modules": {
|
||||
"Phaser": {
|
||||
"name": "Phaser",
|
||||
"submodules": {},
|
||||
"classes": {
|
||||
"TimeManager": 1
|
||||
},
|
||||
"fors": {},
|
||||
"namespaces": {},
|
||||
"tag": "module",
|
||||
"file": "..\\Phaser\\time\\TimeManager.ts",
|
||||
"line": 13,
|
||||
"author": "Richard Davey <rich@photonstorm.com>",
|
||||
"copyright": "2013 Photon Storm Ltd.",
|
||||
"license": "https://github.com/photonstorm/phaser/blob/master/license.txt MIT License"
|
||||
}
|
||||
},
|
||||
"classes": {
|
||||
"TimeManager": {
|
||||
"name": "TimeManager",
|
||||
"shortname": "TimeManager",
|
||||
"classitems": [],
|
||||
"plugins": [],
|
||||
"extensions": [],
|
||||
"plugin_for": [],
|
||||
"extension_for": [],
|
||||
"module": "Phaser",
|
||||
"namespace": "",
|
||||
"file": "..\\Phaser\\time\\TimeManager.ts",
|
||||
"line": 13,
|
||||
"description": "This is the core internal game clock. It manages the elapsed time and calculation of delta values,\nused for game object motion and tweens.",
|
||||
"is_constructor": 1,
|
||||
"params": [
|
||||
{
|
||||
"name": "game",
|
||||
"description": "A reference to the currently running game.",
|
||||
"type": "Phaser.Game"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"classitems": [
|
||||
{
|
||||
"file": "..\\Phaser\\time\\TimeManager.ts",
|
||||
"line": 34,
|
||||
"description": "A reference to the currently running Game.",
|
||||
"itemtype": "property",
|
||||
"name": "game",
|
||||
"type": "{Phaser.Game}",
|
||||
"class": "TimeManager",
|
||||
"module": "Phaser"
|
||||
},
|
||||
{
|
||||
"file": "..\\Phaser\\time\\TimeManager.ts",
|
||||
"line": 41,
|
||||
"description": "The time at which the Game instance started.",
|
||||
"itemtype": "property",
|
||||
"name": "_started",
|
||||
"access": "private",
|
||||
"tagname": "",
|
||||
"type": "{Number}",
|
||||
"class": "TimeManager",
|
||||
"module": "Phaser"
|
||||
},
|
||||
{
|
||||
"file": "..\\Phaser\\time\\TimeManager.ts",
|
||||
"line": 49,
|
||||
"description": "Number of milliseconds elapsed since the last frame update.",
|
||||
"itemtype": "property",
|
||||
"name": "elapsed",
|
||||
"access": "public",
|
||||
"tagname": "",
|
||||
"type": "{Number}",
|
||||
"class": "TimeManager",
|
||||
"module": "Phaser"
|
||||
},
|
||||
{
|
||||
"file": "..\\Phaser\\time\\TimeManager.ts",
|
||||
"line": 57,
|
||||
"description": "Game time counter.",
|
||||
"itemtype": "property",
|
||||
"name": "time",
|
||||
"access": "public",
|
||||
"tagname": "",
|
||||
"type": "{Number}",
|
||||
"class": "TimeManager",
|
||||
"module": "Phaser"
|
||||
},
|
||||
{
|
||||
"file": "..\\Phaser\\time\\TimeManager.ts",
|
||||
"line": 65,
|
||||
"description": "Records how long the game has been paused for. Is reset each time the game pauses.",
|
||||
"itemtype": "property",
|
||||
"name": "pausedTime",
|
||||
"access": "public",
|
||||
"tagname": "",
|
||||
"type": "{Number}",
|
||||
"class": "TimeManager",
|
||||
"module": "Phaser"
|
||||
},
|
||||
{
|
||||
"file": "..\\Phaser\\time\\TimeManager.ts",
|
||||
"line": 73,
|
||||
"description": "The time right now.",
|
||||
"itemtype": "property",
|
||||
"name": "now",
|
||||
"access": "public",
|
||||
"tagname": "",
|
||||
"type": "{Number}",
|
||||
"class": "TimeManager",
|
||||
"module": "Phaser"
|
||||
},
|
||||
{
|
||||
"file": "..\\Phaser\\time\\TimeManager.ts",
|
||||
"line": 81,
|
||||
"description": "Elapsed time since the last frame.",
|
||||
"itemtype": "property",
|
||||
"name": "delta",
|
||||
"access": "public",
|
||||
"tagname": "",
|
||||
"type": "{Number}",
|
||||
"class": "TimeManager",
|
||||
"module": "Phaser"
|
||||
},
|
||||
{
|
||||
"file": "..\\Phaser\\time\\TimeManager.ts",
|
||||
"line": 89,
|
||||
"description": "The number of seconds that have elapsed since the game was started.",
|
||||
"itemtype": "method",
|
||||
"name": "totalElapsedSeconds",
|
||||
"return": {
|
||||
"description": "",
|
||||
"type": "Number"
|
||||
},
|
||||
"class": "TimeManager",
|
||||
"module": "Phaser"
|
||||
},
|
||||
{
|
||||
"file": "..\\Phaser\\time\\TimeManager.ts",
|
||||
"line": 100,
|
||||
"description": "Frames per second.",
|
||||
"itemtype": "property",
|
||||
"name": "fps",
|
||||
"access": "public",
|
||||
"tagname": "",
|
||||
"type": "{Number}",
|
||||
"class": "TimeManager",
|
||||
"module": "Phaser"
|
||||
},
|
||||
{
|
||||
"file": "..\\Phaser\\time\\TimeManager.ts",
|
||||
"line": 108,
|
||||
"description": "The lowest rate the fps has dropped to.",
|
||||
"itemtype": "property",
|
||||
"name": "fpsMin",
|
||||
"access": "public",
|
||||
"tagname": "",
|
||||
"type": "{Number}",
|
||||
"class": "TimeManager",
|
||||
"module": "Phaser"
|
||||
},
|
||||
{
|
||||
"file": "..\\Phaser\\time\\TimeManager.ts",
|
||||
"line": 116,
|
||||
"description": "The highest rate the fps has reached (usually no higher than 60fps).",
|
||||
"itemtype": "property",
|
||||
"name": "fpsMax",
|
||||
"access": "public",
|
||||
"tagname": "",
|
||||
"type": "{Number}",
|
||||
"class": "TimeManager",
|
||||
"module": "Phaser"
|
||||
},
|
||||
{
|
||||
"file": "..\\Phaser\\time\\TimeManager.ts",
|
||||
"line": 124,
|
||||
"description": "The minimum amount of time the game has taken between two frames.",
|
||||
"itemtype": "property",
|
||||
"name": "msMin",
|
||||
"access": "public",
|
||||
"tagname": "",
|
||||
"type": "{Number}",
|
||||
"class": "TimeManager",
|
||||
"module": "Phaser"
|
||||
},
|
||||
{
|
||||
"file": "..\\Phaser\\time\\TimeManager.ts",
|
||||
"line": 132,
|
||||
"description": "The maximum amount of time the game has taken between two frames.",
|
||||
"itemtype": "property",
|
||||
"name": "msMax",
|
||||
"access": "public",
|
||||
"tagname": "",
|
||||
"type": "{Number}",
|
||||
"class": "TimeManager",
|
||||
"module": "Phaser"
|
||||
},
|
||||
{
|
||||
"file": "..\\Phaser\\time\\TimeManager.ts",
|
||||
"line": 140,
|
||||
"description": "The number of frames record in the last second.",
|
||||
"itemtype": "property",
|
||||
"name": "frames",
|
||||
"access": "public",
|
||||
"tagname": "",
|
||||
"type": "{Number}",
|
||||
"class": "TimeManager",
|
||||
"module": "Phaser"
|
||||
},
|
||||
{
|
||||
"file": "..\\Phaser\\time\\TimeManager.ts",
|
||||
"line": 148,
|
||||
"description": "The time (in ms) that the last second counter ticked over.",
|
||||
"itemtype": "property",
|
||||
"name": "_timeLastSecond",
|
||||
"access": "private",
|
||||
"tagname": "",
|
||||
"type": "{Number}",
|
||||
"class": "TimeManager",
|
||||
"module": "Phaser"
|
||||
},
|
||||
{
|
||||
"file": "..\\Phaser\\time\\TimeManager.ts",
|
||||
"line": 156,
|
||||
"description": "Update clock and calculate the fps.\nThis is called automatically by Game._raf",
|
||||
"itemtype": "method",
|
||||
"name": "update",
|
||||
"params": [
|
||||
{
|
||||
"name": "raf",
|
||||
"description": "The current timestamp, either performance.now or Date.now",
|
||||
"type": "Number"
|
||||
}
|
||||
],
|
||||
"class": "TimeManager",
|
||||
"module": "Phaser"
|
||||
},
|
||||
{
|
||||
"file": "..\\Phaser\\time\\TimeManager.ts",
|
||||
"line": 192,
|
||||
"description": "Called when the game enters a paused state.",
|
||||
"itemtype": "method",
|
||||
"name": "gamePaused",
|
||||
"access": "private",
|
||||
"tagname": "",
|
||||
"class": "TimeManager",
|
||||
"module": "Phaser"
|
||||
},
|
||||
{
|
||||
"file": "..\\Phaser\\time\\TimeManager.ts",
|
||||
"line": 201,
|
||||
"description": "Called when the game resumes from a paused state.",
|
||||
"itemtype": "method",
|
||||
"name": "gameResumed",
|
||||
"access": "private",
|
||||
"tagname": "",
|
||||
"class": "TimeManager",
|
||||
"module": "Phaser"
|
||||
},
|
||||
{
|
||||
"file": "..\\Phaser\\time\\TimeManager.ts",
|
||||
"line": 211,
|
||||
"description": "Records how long the game was paused for in miliseconds.",
|
||||
"itemtype": "property",
|
||||
"name": "pauseDuration",
|
||||
"access": "public",
|
||||
"tagname": "",
|
||||
"type": "{Number}",
|
||||
"class": "TimeManager",
|
||||
"module": "Phaser"
|
||||
},
|
||||
{
|
||||
"file": "..\\Phaser\\time\\TimeManager.ts",
|
||||
"line": 219,
|
||||
"description": "The time the game started being paused.",
|
||||
"itemtype": "property",
|
||||
"name": "_pauseStarted",
|
||||
"access": "private",
|
||||
"tagname": "",
|
||||
"type": "{Number}",
|
||||
"class": "TimeManager",
|
||||
"module": "Phaser"
|
||||
},
|
||||
{
|
||||
"file": "..\\Phaser\\time\\TimeManager.ts",
|
||||
"line": 227,
|
||||
"description": "How long has passed since the given time.",
|
||||
"itemtype": "method",
|
||||
"name": "elapsedSince",
|
||||
"params": [
|
||||
{
|
||||
"name": "since",
|
||||
"description": "The time you want to measure against.",
|
||||
"type": "Number"
|
||||
}
|
||||
],
|
||||
"return": {
|
||||
"description": "The difference between the given time and now.",
|
||||
"type": "Number"
|
||||
},
|
||||
"class": "TimeManager",
|
||||
"module": "Phaser"
|
||||
},
|
||||
{
|
||||
"file": "..\\Phaser\\time\\TimeManager.ts",
|
||||
"line": 239,
|
||||
"description": "How long has passed since the given time (in seconds).",
|
||||
"itemtype": "method",
|
||||
"name": "elapsedSecondsSince",
|
||||
"params": [
|
||||
{
|
||||
"name": "since",
|
||||
"description": "The time you want to measure (in seconds).",
|
||||
"type": "Number"
|
||||
}
|
||||
],
|
||||
"return": {
|
||||
"description": "Duration between given time and now (in seconds).",
|
||||
"type": "Number"
|
||||
},
|
||||
"class": "TimeManager",
|
||||
"module": "Phaser"
|
||||
},
|
||||
{
|
||||
"file": "..\\Phaser\\time\\TimeManager.ts",
|
||||
"line": 251,
|
||||
"description": "Resets the private _started value to now.",
|
||||
"itemtype": "method",
|
||||
"name": "reset",
|
||||
"class": "TimeManager",
|
||||
"module": "Phaser"
|
||||
}
|
||||
],
|
||||
"warnings": [
|
||||
{
|
||||
"message": "unknown tag: copyright",
|
||||
"line": " ..\\Phaser\\time\\TimeManager.ts:3"
|
||||
},
|
||||
{
|
||||
"message": "unknown tag: license",
|
||||
"line": " ..\\Phaser\\time\\TimeManager.ts:3"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,372 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>..\Phaser\time\TimeManager.ts - Phaser</title>
|
||||
<link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
|
||||
<link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
|
||||
<link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
|
||||
<link rel="shortcut icon" type="image/png" href="../assets/favicon.png">
|
||||
<script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
|
||||
</head>
|
||||
<body class="yui3-skin-sam">
|
||||
|
||||
<div id="doc">
|
||||
<div id="hd" class="yui3-g header">
|
||||
<div class="yui3-u-3-4">
|
||||
|
||||
<h1><img src="../assets/css/logo.png" title="Phaser"></h1>
|
||||
|
||||
</div>
|
||||
<div class="yui3-u-1-4 version">
|
||||
<em>API Docs for: 1.0.0</em>
|
||||
</div>
|
||||
</div>
|
||||
<div id="bd" class="yui3-g">
|
||||
|
||||
<div class="yui3-u-1-4">
|
||||
<div id="docs-sidebar" class="sidebar apidocs">
|
||||
<div id="api-list">
|
||||
<h2 class="off-left">APIs</h2>
|
||||
<div id="api-tabview" class="tabview">
|
||||
<ul class="tabs">
|
||||
<li><a href="#api-classes">Classes</a></li>
|
||||
<li><a href="#api-modules">Modules</a></li>
|
||||
</ul>
|
||||
|
||||
<div id="api-tabview-filter">
|
||||
<input type="search" id="api-filter" placeholder="Type to filter APIs">
|
||||
</div>
|
||||
|
||||
<div id="api-tabview-panel">
|
||||
<ul id="api-classes" class="apis classes">
|
||||
|
||||
<li><a href="../classes/TimeManager.html">TimeManager</a></li>
|
||||
|
||||
</ul>
|
||||
|
||||
<ul id="api-modules" class="apis modules">
|
||||
|
||||
<li><a href="../modules/Phaser.html">Phaser</a></li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="yui3-u-3-4">
|
||||
<div id="api-options">
|
||||
Show:
|
||||
<label for="api-show-inherited">
|
||||
<input type="checkbox" id="api-show-inherited" checked>
|
||||
Inherited
|
||||
</label>
|
||||
|
||||
<label for="api-show-protected">
|
||||
<input type="checkbox" id="api-show-protected">
|
||||
Protected
|
||||
</label>
|
||||
|
||||
<label for="api-show-private">
|
||||
<input type="checkbox" id="api-show-private">
|
||||
Private
|
||||
</label>
|
||||
<label for="api-show-deprecated">
|
||||
<input type="checkbox" id="api-show-deprecated">
|
||||
Deprecated
|
||||
</label>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="apidocs">
|
||||
<div id="docs-main">
|
||||
<div class="content">
|
||||
<h1 class="file-heading">File: ..\Phaser\time\TimeManager.ts</h1>
|
||||
|
||||
<div class="file">
|
||||
<pre class="code prettyprint linenums">
|
||||
/// <reference path="../_definitions.ts" />
|
||||
|
||||
/**
|
||||
* @author Richard Davey <rich@photonstorm.com>
|
||||
* @copyright 2013 Photon Storm Ltd.
|
||||
* @license https://github.com/photonstorm/phaser/blob/master/license.txt MIT License
|
||||
* @module Phaser
|
||||
*/
|
||||
module Phaser {
|
||||
|
||||
export class TimeManager {
|
||||
|
||||
/**
|
||||
* This is the core internal game clock. It manages the elapsed time and calculation of delta values,
|
||||
* used for game object motion and tweens.
|
||||
*
|
||||
* @class TimeManager
|
||||
* @constructor
|
||||
* @param {Phaser.Game} game A reference to the currently running game.
|
||||
*/
|
||||
constructor(game: Phaser.Game) {
|
||||
|
||||
this.game = game;
|
||||
|
||||
this._started = 0;
|
||||
this._timeLastSecond = this._started;
|
||||
this.time = this._started;
|
||||
|
||||
this.game.onPause.add(this.gamePaused, this);
|
||||
this.game.onResume.add(this.gameResumed, this);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* A reference to the currently running Game.
|
||||
* @property game
|
||||
* @type {Phaser.Game}
|
||||
*/
|
||||
public game: Phaser.Game;
|
||||
|
||||
/**
|
||||
* The time at which the Game instance started.
|
||||
* @property _started
|
||||
* @private
|
||||
* @type {Number}
|
||||
*/
|
||||
private _started: number;
|
||||
|
||||
/**
|
||||
* Number of milliseconds elapsed since the last frame update.
|
||||
* @property elapsed
|
||||
* @public
|
||||
* @type {Number}
|
||||
*/
|
||||
public elapsed: number = 0;
|
||||
|
||||
/**
|
||||
* Game time counter.
|
||||
* @property time
|
||||
* @public
|
||||
* @type {Number}
|
||||
*/
|
||||
public time: number = 0;
|
||||
|
||||
/**
|
||||
* Records how long the game has been paused for. Is reset each time the game pauses.
|
||||
* @property pausedTime
|
||||
* @public
|
||||
* @type {Number}
|
||||
*/
|
||||
public pausedTime: number = 0;
|
||||
|
||||
/**
|
||||
* The time right now.
|
||||
* @property now
|
||||
* @public
|
||||
* @type {Number}
|
||||
*/
|
||||
public now: number = 0;
|
||||
|
||||
/**
|
||||
* Elapsed time since the last frame.
|
||||
* @property delta
|
||||
* @public
|
||||
* @type {Number}
|
||||
*/
|
||||
public delta: number = 0;
|
||||
|
||||
/**
|
||||
* The number of seconds that have elapsed since the game was started.
|
||||
* @method totalElapsedSeconds
|
||||
* @return {Number}
|
||||
*/
|
||||
public get totalElapsedSeconds(): number {
|
||||
|
||||
return (this.now - this._started) * 0.001;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Frames per second.
|
||||
* @property fps
|
||||
* @public
|
||||
* @type {Number}
|
||||
*/
|
||||
public fps: number = 0;
|
||||
|
||||
/**
|
||||
* The lowest rate the fps has dropped to.
|
||||
* @property fpsMin
|
||||
* @public
|
||||
* @type {Number}
|
||||
*/
|
||||
public fpsMin: number = 1000;
|
||||
|
||||
/**
|
||||
* The highest rate the fps has reached (usually no higher than 60fps).
|
||||
* @property fpsMax
|
||||
* @public
|
||||
* @type {Number}
|
||||
*/
|
||||
public fpsMax: number = 0;
|
||||
|
||||
/**
|
||||
* The minimum amount of time the game has taken between two frames.
|
||||
* @property msMin
|
||||
* @public
|
||||
* @type {Number}
|
||||
*/
|
||||
public msMin: number = 1000;
|
||||
|
||||
/**
|
||||
* The maximum amount of time the game has taken between two frames.
|
||||
* @property msMax
|
||||
* @public
|
||||
* @type {Number}
|
||||
*/
|
||||
public msMax: number = 0;
|
||||
|
||||
/**
|
||||
* The number of frames record in the last second.
|
||||
* @property frames
|
||||
* @public
|
||||
* @type {Number}
|
||||
*/
|
||||
public frames: number = 0;
|
||||
|
||||
/**
|
||||
* The time (in ms) that the last second counter ticked over.
|
||||
* @property _timeLastSecond
|
||||
* @private
|
||||
* @type {Number}
|
||||
*/
|
||||
private _timeLastSecond: number = 0;
|
||||
|
||||
/**
|
||||
* Update clock and calculate the fps.
|
||||
* This is called automatically by Game._raf
|
||||
* @method update
|
||||
* @param {Number} raf The current timestamp, either performance.now or Date.now
|
||||
*/
|
||||
public update(raf: number) {
|
||||
|
||||
this.now = raf; // mark
|
||||
this.delta = this.now - this.time; // elapsedMS
|
||||
|
||||
this.msMin = Math.min(this.msMin, this.delta);
|
||||
this.msMax = Math.max(this.msMax, this.delta);
|
||||
|
||||
this.frames++;
|
||||
|
||||
if (this.now > this._timeLastSecond + 1000)
|
||||
{
|
||||
this.fps = Math.round((this.frames * 1000) / (this.now - this._timeLastSecond));
|
||||
this.fpsMin = Math.min(this.fpsMin, this.fps);
|
||||
this.fpsMax = Math.max(this.fpsMax, this.fps);
|
||||
|
||||
this._timeLastSecond = this.now;
|
||||
this.frames = 0;
|
||||
}
|
||||
|
||||
this.time = this.now; // _total
|
||||
|
||||
// Paused?
|
||||
if (this.game.paused)
|
||||
{
|
||||
this.pausedTime = this.now - this._pauseStarted;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when the game enters a paused state.
|
||||
* @method gamePaused
|
||||
* @private
|
||||
*/
|
||||
private gamePaused() {
|
||||
this._pauseStarted = this.now;
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when the game resumes from a paused state.
|
||||
* @method gameResumed
|
||||
* @private
|
||||
*/
|
||||
private gameResumed() {
|
||||
// Level out the delta timer to avoid spikes
|
||||
this.pauseDuration = this.pausedTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* Records how long the game was paused for in miliseconds.
|
||||
* @property pauseDuration
|
||||
* @public
|
||||
* @type {Number}
|
||||
*/
|
||||
public pauseDuration: number = 0;
|
||||
|
||||
/**
|
||||
* The time the game started being paused.
|
||||
* @property _pauseStarted
|
||||
* @private
|
||||
* @type {Number}
|
||||
*/
|
||||
private _pauseStarted: number = 0;
|
||||
|
||||
/**
|
||||
* How long has passed since the given time.
|
||||
* @method elapsedSince
|
||||
* @param {Number} since The time you want to measure against.
|
||||
* @return {Number} The difference between the given time and now.
|
||||
*/
|
||||
public elapsedSince(since: number): number {
|
||||
|
||||
return this.now - since;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* How long has passed since the given time (in seconds).
|
||||
* @method elapsedSecondsSince
|
||||
* @param {Number} since The time you want to measure (in seconds).
|
||||
* @return {Number} Duration between given time and now (in seconds).
|
||||
*/
|
||||
public elapsedSecondsSince(since: number): number {
|
||||
|
||||
return (this.now - since) * 0.001;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Resets the private _started value to now.
|
||||
* @method reset
|
||||
*/
|
||||
public reset() {
|
||||
|
||||
this._started = this.now;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="../assets/vendor/prettify/prettify-min.js"></script>
|
||||
<script>prettyPrint();</script>
|
||||
<script src="../assets/js/yui-prettify.js"></script>
|
||||
<script src="../assets/../api.js"></script>
|
||||
<script src="../assets/js/api-filter.js"></script>
|
||||
<script src="../assets/js/api-list.js"></script>
|
||||
<script src="../assets/js/api-search.js"></script>
|
||||
<script src="../assets/js/apidocs.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,124 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Phaser</title>
|
||||
<link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
|
||||
<link rel="stylesheet" href="./assets/vendor/prettify/prettify-min.css">
|
||||
<link rel="stylesheet" href="./assets/css/main.css" id="site_styles">
|
||||
<link rel="shortcut icon" type="image/png" href="./assets/favicon.png">
|
||||
<script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
|
||||
</head>
|
||||
<body class="yui3-skin-sam">
|
||||
|
||||
<div id="doc">
|
||||
<div id="hd" class="yui3-g header">
|
||||
<div class="yui3-u-3-4">
|
||||
|
||||
<h1><img src="./assets/css/logo.png" title="Phaser"></h1>
|
||||
|
||||
</div>
|
||||
<div class="yui3-u-1-4 version">
|
||||
<em>API Docs for: 1.0.0</em>
|
||||
</div>
|
||||
</div>
|
||||
<div id="bd" class="yui3-g">
|
||||
|
||||
<div class="yui3-u-1-4">
|
||||
<div id="docs-sidebar" class="sidebar apidocs">
|
||||
<div id="api-list">
|
||||
<h2 class="off-left">APIs</h2>
|
||||
<div id="api-tabview" class="tabview">
|
||||
<ul class="tabs">
|
||||
<li><a href="#api-classes">Classes</a></li>
|
||||
<li><a href="#api-modules">Modules</a></li>
|
||||
</ul>
|
||||
|
||||
<div id="api-tabview-filter">
|
||||
<input type="search" id="api-filter" placeholder="Type to filter APIs">
|
||||
</div>
|
||||
|
||||
<div id="api-tabview-panel">
|
||||
<ul id="api-classes" class="apis classes">
|
||||
|
||||
<li><a href="./classes/TimeManager.html">TimeManager</a></li>
|
||||
|
||||
</ul>
|
||||
|
||||
<ul id="api-modules" class="apis modules">
|
||||
|
||||
<li><a href="./modules/Phaser.html">Phaser</a></li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="yui3-u-3-4">
|
||||
<div id="api-options">
|
||||
Show:
|
||||
<label for="api-show-inherited">
|
||||
<input type="checkbox" id="api-show-inherited" checked>
|
||||
Inherited
|
||||
</label>
|
||||
|
||||
<label for="api-show-protected">
|
||||
<input type="checkbox" id="api-show-protected">
|
||||
Protected
|
||||
</label>
|
||||
|
||||
<label for="api-show-private">
|
||||
<input type="checkbox" id="api-show-private">
|
||||
Private
|
||||
</label>
|
||||
<label for="api-show-deprecated">
|
||||
<input type="checkbox" id="api-show-deprecated">
|
||||
Deprecated
|
||||
</label>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="apidocs">
|
||||
<div id="docs-main">
|
||||
<div class="content">
|
||||
<div class="apidocs">
|
||||
<div id="docs-main" class="content">
|
||||
<p>
|
||||
Browse to a module or class using the sidebar to view its API documentation.
|
||||
</p>
|
||||
|
||||
<h2>Keyboard Shortcuts</h2>
|
||||
|
||||
<ul>
|
||||
<li><p>Press <kbd>s</kbd> to focus the API search box.</p></li>
|
||||
|
||||
<li><p>Use <kbd>Up</kbd> and <kbd>Down</kbd> to select classes, modules, and search results.</p></li>
|
||||
|
||||
<li class="mac-only"><p>With the API search box or sidebar focused, use <kbd><span class="cmd">⌘</span>-Left</kbd> or <kbd><span class="cmd">⌘</span>-Right</kbd> to switch sidebar tabs.</p></li>
|
||||
|
||||
<li class="pc-only"><p>With the API search box or sidebar focused, use <kbd>Ctrl+Left</kbd> and <kbd>Ctrl+Right</kbd> to switch sidebar tabs.</p></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="./assets/vendor/prettify/prettify-min.js"></script>
|
||||
<script>prettyPrint();</script>
|
||||
<script src="./assets/js/yui-prettify.js"></script>
|
||||
<script src="./assets/../api.js"></script>
|
||||
<script src="./assets/js/api-filter.js"></script>
|
||||
<script src="./assets/js/api-list.js"></script>
|
||||
<script src="./assets/js/api-search.js"></script>
|
||||
<script src="./assets/js/apidocs.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,147 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Phaser - Phaser</title>
|
||||
<link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
|
||||
<link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
|
||||
<link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
|
||||
<link rel="shortcut icon" type="image/png" href="../assets/favicon.png">
|
||||
<script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
|
||||
</head>
|
||||
<body class="yui3-skin-sam">
|
||||
|
||||
<div id="doc">
|
||||
<div id="hd" class="yui3-g header">
|
||||
<div class="yui3-u-3-4">
|
||||
|
||||
<h1><img src="../assets/css/logo.png" title="Phaser"></h1>
|
||||
|
||||
</div>
|
||||
<div class="yui3-u-1-4 version">
|
||||
<em>API Docs for: 1.0.0</em>
|
||||
</div>
|
||||
</div>
|
||||
<div id="bd" class="yui3-g">
|
||||
|
||||
<div class="yui3-u-1-4">
|
||||
<div id="docs-sidebar" class="sidebar apidocs">
|
||||
<div id="api-list">
|
||||
<h2 class="off-left">APIs</h2>
|
||||
<div id="api-tabview" class="tabview">
|
||||
<ul class="tabs">
|
||||
<li><a href="#api-classes">Classes</a></li>
|
||||
<li><a href="#api-modules">Modules</a></li>
|
||||
</ul>
|
||||
|
||||
<div id="api-tabview-filter">
|
||||
<input type="search" id="api-filter" placeholder="Type to filter APIs">
|
||||
</div>
|
||||
|
||||
<div id="api-tabview-panel">
|
||||
<ul id="api-classes" class="apis classes">
|
||||
|
||||
<li><a href="../classes/TimeManager.html">TimeManager</a></li>
|
||||
|
||||
</ul>
|
||||
|
||||
<ul id="api-modules" class="apis modules">
|
||||
|
||||
<li><a href="../modules/Phaser.html">Phaser</a></li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="yui3-u-3-4">
|
||||
<div id="api-options">
|
||||
Show:
|
||||
<label for="api-show-inherited">
|
||||
<input type="checkbox" id="api-show-inherited" checked>
|
||||
Inherited
|
||||
</label>
|
||||
|
||||
<label for="api-show-protected">
|
||||
<input type="checkbox" id="api-show-protected">
|
||||
Protected
|
||||
</label>
|
||||
|
||||
<label for="api-show-private">
|
||||
<input type="checkbox" id="api-show-private">
|
||||
Private
|
||||
</label>
|
||||
<label for="api-show-deprecated">
|
||||
<input type="checkbox" id="api-show-deprecated">
|
||||
Deprecated
|
||||
</label>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="apidocs">
|
||||
<div id="docs-main">
|
||||
<div class="content">
|
||||
<h1>Phaser Module</h1>
|
||||
<div class="box clearfix meta">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="foundat">
|
||||
Defined in: <a href="../files/.._Phaser_time_TimeManager.ts.html#l13"><code>..\Phaser\time\TimeManager.ts:13</code></a>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="box intro">
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="yui3-g">
|
||||
<div class="yui3-u-1-2">
|
||||
|
||||
<p>This module provides the following classes:</p>
|
||||
|
||||
<ul class="module-classes">
|
||||
|
||||
<li class="module-class">
|
||||
<a href="../classes/TimeManager.html">
|
||||
TimeManager
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="yui3-u-1-2">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="../assets/vendor/prettify/prettify-min.js"></script>
|
||||
<script>prettyPrint();</script>
|
||||
<script src="../assets/js/yui-prettify.js"></script>
|
||||
<script src="../assets/../api.js"></script>
|
||||
<script src="../assets/js/api-filter.js"></script>
|
||||
<script src="../assets/js/api-list.js"></script>
|
||||
<script src="../assets/js/api-search.js"></script>
|
||||
<script src="../assets/js/apidocs.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,37 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<title>phaser - hello world</title>
|
||||
<script src="phaser-min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
(function () {
|
||||
|
||||
var game = new Phaser.Game(800, 600, Phaser.AUTO, '', { preload: preload, create: create, update: update });
|
||||
|
||||
function preload() {
|
||||
|
||||
game.load.image('logo', 'logo.png');
|
||||
|
||||
}
|
||||
|
||||
var logo;
|
||||
|
||||
function create() {
|
||||
|
||||
logo = game.add.sprite(0, 0, 'logo');
|
||||
|
||||
}
|
||||
|
||||
function update() {
|
||||
}
|
||||
|
||||
})();
|
||||
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
After Width: | Height: | Size: 176 KiB |
|
After Width: | Height: | Size: 6.9 MiB |
|
After Width: | Height: | Size: 2.9 MiB |
|
After Width: | Height: | Size: 493 KiB |
|
After Width: | Height: | Size: 176 KiB |
|
Before Width: | Height: | Size: 809 B After Width: | Height: | Size: 809 B |
|
After Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 130 KiB After Width: | Height: | Size: 130 KiB |
|
Before Width: | Height: | Size: 204 KiB After Width: | Height: | Size: 204 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 9.2 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 612 KiB After Width: | Height: | Size: 612 KiB |
|
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 49 KiB |
|
Before Width: | Height: | Size: 106 KiB After Width: | Height: | Size: 106 KiB |
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 62 KiB |
|
Before Width: | Height: | Size: 84 KiB After Width: | Height: | Size: 84 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 176 KiB After Width: | Height: | Size: 176 KiB |
|
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 86 KiB |
|
After Width: | Height: | Size: 99 KiB |
|
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 66 KiB |
|
Before Width: | Height: | Size: 120 KiB After Width: | Height: | Size: 120 KiB |
|
After Width: | Height: | Size: 243 KiB |
|
After Width: | Height: | Size: 210 KiB |
|
After Width: | Height: | Size: 1021 KiB |
|
After Width: | Height: | Size: 1010 KiB |
|
After Width: | Height: | Size: 1022 KiB |
@@ -0,0 +1 @@
|
||||
yuidoc -c ../Phaser/yuidoc.json -o API/ -t yuidoc-theme-dana -e .ts ../Phaser/time
|
||||
@@ -0,0 +1 @@
|
||||
yuidoc -n -e .ts --server 3000 ../Phaser/time
|
||||
|
Before Width: | Height: | Size: 531 B |
@@ -0,0 +1,48 @@
|
||||
/**
|
||||
* @author Richard Davey <rich@photonstorm.com>
|
||||
* @copyright 2013 Photon Storm Ltd.
|
||||
* @license https://github.com/photonstorm/phaser/blob/master/license.txt MIT License
|
||||
* @module Phaser
|
||||
*/
|
||||
|
||||
/**
|
||||
* The class constructor
|
||||
*
|
||||
* @class Name
|
||||
* @constructor
|
||||
* @param {Phaser.Game} game A reference to the currently running game.
|
||||
*/
|
||||
|
||||
/**
|
||||
* A reference to the currently running Game.
|
||||
* @property game
|
||||
* @type {Phaser.Game}
|
||||
*/
|
||||
public game: Phaser.Game;
|
||||
|
||||
/**
|
||||
* My method description. Like other pieces of your comment blocks,
|
||||
* this can span multiple lines.
|
||||
*
|
||||
* @method methodName
|
||||
* @param {String} foo Argument 1
|
||||
* @param {Object} config A config object
|
||||
* @param {String} config.name The name on the config object
|
||||
* @param {Function} config.callback A callback function on the config object
|
||||
* @param {Boolean} [extra=false] Do extra, optional work
|
||||
* @return {Boolean} Returns true on success
|
||||
*/
|
||||
|
||||
/**
|
||||
* My property description. Like other pieces of your comment blocks,
|
||||
* this can span multiple lines.
|
||||
*
|
||||
* @property propertyName
|
||||
* @public
|
||||
* @type {Object}
|
||||
* @default "foo"
|
||||
*/
|
||||
|
||||
@param {Type} Name Description
|
||||
Object, Array, String, Boolean, Number, Mixed, MyType
|
||||
|
||||
@@ -51,15 +51,6 @@ module.exports = function (grunt) {
|
||||
comments: true
|
||||
}
|
||||
},
|
||||
fx: {
|
||||
src: ['SpecialFX/**/*.ts'],
|
||||
dest: 'build/phaser-fx.js',
|
||||
options: {
|
||||
target: 'ES5',
|
||||
declaration: true,
|
||||
comments: true
|
||||
}
|
||||
}
|
||||
},
|
||||
copy: {
|
||||
main: {
|
||||
@@ -68,12 +59,6 @@ module.exports = function (grunt) {
|
||||
dest: 'Tests/phaser.js'
|
||||
}]
|
||||
},
|
||||
fx: {
|
||||
files: [{
|
||||
src: 'build/phaser-fx.js',
|
||||
dest: 'Tests/phaser-fx.js'
|
||||
}]
|
||||
},
|
||||
mainAmd: {
|
||||
files: [{
|
||||
src: 'build/phaser.js',
|
||||
@@ -83,15 +68,6 @@ module.exports = function (grunt) {
|
||||
processContent: wrapPhaserInUmd
|
||||
}
|
||||
},
|
||||
fxAmd: {
|
||||
files: [{
|
||||
src: 'build/phaser-fx.js',
|
||||
dest: 'build/phaser-fx.amd.js'
|
||||
}],
|
||||
options: {
|
||||
processContent: wrapAddonInUmd
|
||||
}
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
files: '**/*.ts',
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
|
||||
#ignore thumbnails created by windows
|
||||
Thumbs.db
|
||||
#Ignore files build by Visual Studio
|
||||
*.obj
|
||||
*.exe
|
||||
*.pdb
|
||||
*.user
|
||||
*.aps
|
||||
*.pch
|
||||
*.vspscc
|
||||
*_i.c
|
||||
*_p.c
|
||||
*.ncb
|
||||
*.suo
|
||||
*.sln
|
||||
*.tlb
|
||||
*.tlh
|
||||
*.bak
|
||||
*.cache
|
||||
*.ilk
|
||||
*.log
|
||||
*.map
|
||||
*.orig
|
||||
*.js
|
||||
!phaser.js
|
||||
*.map
|
||||
*.config
|
||||
.DS_Store
|
||||
[Bb]in
|
||||
[Dd]ebug*/
|
||||
*.lib
|
||||
*.sbr
|
||||
obj/
|
||||
[Rr]elease*/
|
||||
_ReSharper*/
|
||||
[Tt]est[Rr]esult*
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
/// <reference path="Game.d.ts" />
|
||||
/// <reference path="gameobjects/Sprite.d.ts" />
|
||||
/// <reference path="system/animation/Animation.d.ts" />
|
||||
/// <reference path="system/animation/AnimationLoader.d.ts" />
|
||||
/// <reference path="system/animation/Frame.d.ts" />
|
||||
/// <reference path="system/animation/FrameData.d.ts" />
|
||||
module Phaser {
|
||||
class AnimationManager {
|
||||
constructor(game: Game, parent: Sprite);
|
||||
private _game;
|
||||
private _parent;
|
||||
private _anims;
|
||||
private _frameIndex;
|
||||
private _frameData;
|
||||
public currentAnim: Animation;
|
||||
public currentFrame: Frame;
|
||||
public loadFrameData(frameData: FrameData): void;
|
||||
public add(name: string, frames?: any[], frameRate?: number, loop?: bool, useNumericIndex?: bool): void;
|
||||
private validateFrames(frames, useNumericIndex);
|
||||
public play(name: string, frameRate?: number, loop?: bool): void;
|
||||
public stop(name: string): void;
|
||||
public update(): void;
|
||||
public frameData : FrameData;
|
||||
public frameTotal : number;
|
||||
public frame : number;
|
||||
public frameName : string;
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
/// <reference path="Game.d.ts" />
|
||||
module Phaser {
|
||||
class Basic {
|
||||
constructor(game: Game);
|
||||
public _game: Game;
|
||||
public name: string;
|
||||
public ID: number;
|
||||
public isGroup: bool;
|
||||
public exists: bool;
|
||||
public active: bool;
|
||||
public visible: bool;
|
||||
public alive: bool;
|
||||
public ignoreDrawDebug: bool;
|
||||
public destroy(): void;
|
||||
public preUpdate(): void;
|
||||
public update(): void;
|
||||
public postUpdate(): void;
|
||||
public render(camera: Camera, cameraOffsetX: number, cameraOffsetY: number): void;
|
||||
public kill(): void;
|
||||
public revive(): void;
|
||||
public toString(): string;
|
||||
}
|
||||
}
|
||||
@@ -1,150 +0,0 @@
|
||||
/// <reference path="Game.ts" />
|
||||
|
||||
/**
|
||||
* Phaser - Basic
|
||||
*
|
||||
* A useful "generic" object on which all GameObjects and Groups are based.
|
||||
* It has no size, position or graphical data.
|
||||
*/
|
||||
|
||||
module Phaser {
|
||||
|
||||
export class Basic {
|
||||
|
||||
/**
|
||||
* Instantiate the basic object.
|
||||
*/
|
||||
constructor(game: Game) {
|
||||
|
||||
this._game = game;
|
||||
this.ID = -1;
|
||||
this.exists = true;
|
||||
this.active = true;
|
||||
this.visible = true;
|
||||
this.alive = true;
|
||||
this.isGroup = false;
|
||||
this.ignoreGlobalUpdate = false;
|
||||
this.ignoreGlobalRender = false;
|
||||
this.ignoreDrawDebug = false;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* The essential reference to the main game object
|
||||
*/
|
||||
public _game: Game;
|
||||
|
||||
/**
|
||||
* Allows you to give this object a name. Useful for debugging, but not actually used internally.
|
||||
*/
|
||||
public name: string = '';
|
||||
|
||||
/**
|
||||
* IDs seem like they could be pretty useful, huh?
|
||||
* They're not actually used for anything yet though.
|
||||
*/
|
||||
public ID: number;
|
||||
|
||||
/**
|
||||
* A boolean to store if this object is a Group or not.
|
||||
* Saves us an expensive typeof check inside of core loops.
|
||||
*/
|
||||
public isGroup: bool;
|
||||
|
||||
/**
|
||||
* Controls whether <code>update()</code> and <code>draw()</code> are automatically called by State/Group.
|
||||
*/
|
||||
public exists: bool;
|
||||
|
||||
/**
|
||||
* Controls whether <code>update()</code> is automatically called by State/Group.
|
||||
*/
|
||||
public active: bool;
|
||||
|
||||
/**
|
||||
* Controls whether <code>draw()</code> is automatically called by State/Group.
|
||||
*/
|
||||
public visible: bool;
|
||||
|
||||
/**
|
||||
* Useful state for many game objects - "dead" (!alive) vs alive.
|
||||
* <code>kill()</code> and <code>revive()</code> both flip this switch (along with exists, but you can override that).
|
||||
*/
|
||||
public alive: bool;
|
||||
|
||||
/**
|
||||
* Setting this to true will prevent the object from being updated during the main game loop (you will have to call update on it yourself)
|
||||
*/
|
||||
public ignoreGlobalUpdate: bool;
|
||||
|
||||
/**
|
||||
* Setting this to true will prevent the object from being rendered during the main game loop (you will have to call render on it yourself)
|
||||
*/
|
||||
public ignoreGlobalRender: bool;
|
||||
|
||||
/**
|
||||
* Setting this to true will prevent the object from appearing
|
||||
* when the visual debug mode in the debugger overlay is toggled on.
|
||||
*/
|
||||
public ignoreDrawDebug: bool;
|
||||
|
||||
/**
|
||||
* Override this to null out iables or manually call
|
||||
* <code>destroy()</code> on class members if necessary.
|
||||
* Don't forget to call <code>super.destroy()</code>!
|
||||
*/
|
||||
public destroy() { }
|
||||
|
||||
/**
|
||||
* Pre-update is called right before <code>update()</code> on each object in the game loop.
|
||||
*/
|
||||
public preUpdate() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Override this to update your class's position and appearance.
|
||||
* This is where most of your game rules and behavioral code will go.
|
||||
*/
|
||||
public update(forceUpdate?: bool = false) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Post-update is called right after <code>update()</code> on each object in the game loop.
|
||||
*/
|
||||
public postUpdate() {
|
||||
}
|
||||
|
||||
public render(camera: Camera, cameraOffsetX: number, cameraOffsetY: number, forceRender?: bool = false) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Handy for "killing" game objects.
|
||||
* Default behavior is to flag them as nonexistent AND dead.
|
||||
* However, if you want the "corpse" to remain in the game,
|
||||
* like to animate an effect or whatever, you should override this,
|
||||
* setting only alive to false, and leaving exists true.
|
||||
*/
|
||||
public kill() {
|
||||
this.alive = false;
|
||||
this.exists = false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handy for bringing game objects "back to life". Just sets alive and exists back to true.
|
||||
* In practice, this is most often called by <code>Object.reset()</code>.
|
||||
*/
|
||||
public revive() {
|
||||
this.alive = true;
|
||||
this.exists = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert object to readable string name. Useful for debugging, save games, etc.
|
||||
*/
|
||||
public toString(): string {
|
||||
return "";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
/// <reference path="Game.d.ts" />
|
||||
module Phaser {
|
||||
class Cache {
|
||||
constructor(game: Game);
|
||||
private _game;
|
||||
private _canvases;
|
||||
private _images;
|
||||
private _sounds;
|
||||
private _text;
|
||||
public addCanvas(key: string, canvas: HTMLCanvasElement, context: CanvasRenderingContext2D): void;
|
||||
public addSpriteSheet(key: string, url: string, data, frameWidth: number, frameHeight: number, frameMax: number): void;
|
||||
public addTextureAtlas(key: string, url: string, data, jsonData): void;
|
||||
public addImage(key: string, url: string, data): void;
|
||||
public addSound(key: string, url: string, data): void;
|
||||
public decodedSound(key: string, data): void;
|
||||
public addText(key: string, url: string, data): void;
|
||||
public getCanvas(key: string);
|
||||
public getImage(key: string);
|
||||
public getFrameData(key: string): FrameData;
|
||||
public getSound(key: string);
|
||||
public isSoundDecoded(key: string): bool;
|
||||
public isSpriteSheet(key: string): bool;
|
||||
public getText(key: string);
|
||||
public destroy(): void;
|
||||
}
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
/// <reference path="Game.d.ts" />
|
||||
/// <reference path="system/Camera.d.ts" />
|
||||
module Phaser {
|
||||
class CameraManager {
|
||||
constructor(game: Game, x: number, y: number, width: number, height: number);
|
||||
private _game;
|
||||
private _cameras;
|
||||
private _cameraInstance;
|
||||
public current: Camera;
|
||||
public getAll(): Camera[];
|
||||
public update(): void;
|
||||
public render(): void;
|
||||
public addCamera(x: number, y: number, width: number, height: number): Camera;
|
||||
public removeCamera(id: number): bool;
|
||||
public destroy(): void;
|
||||
}
|
||||
}
|
||||
@@ -1,138 +0,0 @@
|
||||
/// <reference path="Game.ts" />
|
||||
/// <reference path="system/Camera.ts" />
|
||||
|
||||
/**
|
||||
* Phaser - CameraManager
|
||||
*
|
||||
* Your game only has one CameraManager instance and it's responsible for looking after, creating and destroying
|
||||
* all of the cameras in the world.
|
||||
*/
|
||||
|
||||
module Phaser {
|
||||
|
||||
export class CameraManager {
|
||||
|
||||
/**
|
||||
* CameraManager constructor
|
||||
* This will create a new <code>Camera</code> with position and size.
|
||||
*
|
||||
* @param x {number} X Position of the created camera.
|
||||
* @param y {number} y Position of the created camera.
|
||||
* @param width {number} Width of the created camera.
|
||||
* @param height {number} Height of the created camera.
|
||||
*/
|
||||
constructor(game: Game, x: number, y: number, width: number, height: number) {
|
||||
|
||||
this._game = game;
|
||||
|
||||
this._cameras = [];
|
||||
|
||||
this.current = this.addCamera(x, y, width, height);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Local private reference to Game.
|
||||
*/
|
||||
private _game: Game;
|
||||
|
||||
/**
|
||||
* Local container for storing cameras.
|
||||
*/
|
||||
private _cameras: Camera[];
|
||||
|
||||
/**
|
||||
* Local helper stores index of next created camera.
|
||||
*/
|
||||
private _cameraInstance: number = 0;
|
||||
|
||||
/**
|
||||
* Currently used camera.
|
||||
*/
|
||||
public current: Camera;
|
||||
|
||||
/**
|
||||
* Get all the cameras.
|
||||
*
|
||||
* @returns {Camera[]} An array contains all the cameras.
|
||||
*/
|
||||
public getAll(): Camera[] {
|
||||
return this._cameras;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update cameras.
|
||||
*/
|
||||
public update() {
|
||||
this._cameras.forEach((camera) => camera.update());
|
||||
}
|
||||
|
||||
/**
|
||||
* Render cameras.
|
||||
*/
|
||||
public render() {
|
||||
this._cameras.forEach((camera) => camera.render());
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new camera with specific position and size.
|
||||
*
|
||||
* @param x {number} X position of the new camera.
|
||||
* @param y {number} Y position of the new camera.
|
||||
* @param width {number} Width of the new camera.
|
||||
* @param height {number} Height of the new camera.
|
||||
* @returns {Camera} The newly created camera object.
|
||||
*/
|
||||
public addCamera(x: number, y: number, width: number, height: number): Camera {
|
||||
|
||||
var newCam: Camera = new Camera(this._game, this._cameraInstance, x, y, width, height);
|
||||
|
||||
this._cameras.push(newCam);
|
||||
|
||||
this._cameraInstance++;
|
||||
|
||||
return newCam;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove a new camera with its id.
|
||||
*
|
||||
* @param id {number} ID of the camera you want to remove.
|
||||
* @returns {boolean} True if successfully removed the camera, otherwise return false.
|
||||
*/
|
||||
public removeCamera(id: number): bool {
|
||||
|
||||
for (var c = 0; c < this._cameras.length; c++)
|
||||
{
|
||||
if (this._cameras[c].ID == id)
|
||||
{
|
||||
if (this.current.ID === this._cameras[c].ID)
|
||||
{
|
||||
this.current = null;
|
||||
}
|
||||
|
||||
this._cameras.splice(c, 1);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Clean up memory.
|
||||
*/
|
||||
public destroy() {
|
||||
|
||||
this._cameras.length = 0;
|
||||
|
||||
this.current = this.addCamera(0, 0, this._game.stage.width, this._game.stage.height);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,53 +0,0 @@
|
||||
/// <reference path="Game.d.ts" />
|
||||
/// <reference path="geom/Point.d.ts" />
|
||||
/// <reference path="geom/Rectangle.d.ts" />
|
||||
/// <reference path="geom/Quad.d.ts" />
|
||||
/// <reference path="geom/Circle.d.ts" />
|
||||
/// <reference path="geom/Line.d.ts" />
|
||||
/// <reference path="geom/IntersectResult.d.ts" />
|
||||
/// <reference path="system/QuadTree.d.ts" />
|
||||
module Phaser {
|
||||
class Collision {
|
||||
constructor(game: Game);
|
||||
private _game;
|
||||
static LEFT: number;
|
||||
static RIGHT: number;
|
||||
static UP: number;
|
||||
static DOWN: number;
|
||||
static NONE: number;
|
||||
static CEILING: number;
|
||||
static FLOOR: number;
|
||||
static WALL: number;
|
||||
static ANY: number;
|
||||
static OVERLAP_BIAS: number;
|
||||
static TILE_OVERLAP: bool;
|
||||
static _tempBounds: Quad;
|
||||
static lineToLine(line1: Line, line2: Line, output?: IntersectResult): IntersectResult;
|
||||
static lineToLineSegment(line: Line, seg: Line, output?: IntersectResult): IntersectResult;
|
||||
static lineToRawSegment(line: Line, x1: number, y1: number, x2: number, y2: number, output?: IntersectResult): IntersectResult;
|
||||
static lineToRay(line1: Line, ray: Line, output?: IntersectResult): IntersectResult;
|
||||
static lineToCircle(line: Line, circle: Circle, output?: IntersectResult): IntersectResult;
|
||||
static lineToRectangle(line: Line, rect: Rectangle, output?: IntersectResult): IntersectResult;
|
||||
static lineSegmentToLineSegment(line1: Line, line2: Line, output?: IntersectResult): IntersectResult;
|
||||
static lineSegmentToRay(line: Line, ray: Line, output?: IntersectResult): IntersectResult;
|
||||
static lineSegmentToCircle(seg: Line, circle: Circle, output?: IntersectResult): IntersectResult;
|
||||
static lineSegmentToRectangle(seg: Line, rect: Rectangle, output?: IntersectResult): IntersectResult;
|
||||
static rayToRectangle(ray: Line, rect: Rectangle, output?: IntersectResult): IntersectResult;
|
||||
static rayToLineSegment(rayX1, rayY1, rayX2, rayY2, lineX1, lineY1, lineX2, lineY2, output?: IntersectResult): IntersectResult;
|
||||
static pointToRectangle(point, rect: Rectangle, output?: IntersectResult): IntersectResult;
|
||||
static rectangleToRectangle(rect1: Rectangle, rect2: Rectangle, output?: IntersectResult): IntersectResult;
|
||||
static rectangleToCircle(rect: Rectangle, circle: Circle, output?: IntersectResult): IntersectResult;
|
||||
static circleToCircle(circle1: Circle, circle2: Circle, output?: IntersectResult): IntersectResult;
|
||||
static circleToRectangle(circle: Circle, rect: Rectangle, output?: IntersectResult): IntersectResult;
|
||||
static circleContainsPoint(circle: Circle, point, output?: IntersectResult): IntersectResult;
|
||||
public overlap(object1?: Basic, object2?: Basic, notifyCallback?, processCallback?): bool;
|
||||
static separate(object1, object2): bool;
|
||||
static separateTile(object: GameObject, x: number, y: number, width: number, height: number, mass: number, collideLeft: bool, collideRight: bool, collideUp: bool, collideDown: bool): bool;
|
||||
static separateTileX(object: GameObject, x: number, y: number, width: number, height: number, mass: number, collideLeft: bool, collideRight: bool): bool;
|
||||
static separateTileY(object: GameObject, x: number, y: number, width: number, height: number, mass: number, collideUp: bool, collideDown: bool): bool;
|
||||
static separateX(object1, object2): bool;
|
||||
static separateY(object1, object2): bool;
|
||||
static distance(x1: number, y1: number, x2: number, y2: number): number;
|
||||
static distanceSquared(x1: number, y1: number, x2: number, y2: number): number;
|
||||
}
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
/// <reference path="Game.d.ts" />
|
||||
module Phaser {
|
||||
class DynamicTexture {
|
||||
constructor(game: Game, width: number, height: number);
|
||||
private _game;
|
||||
private _sx;
|
||||
private _sy;
|
||||
private _sw;
|
||||
private _sh;
|
||||
private _dx;
|
||||
private _dy;
|
||||
private _dw;
|
||||
private _dh;
|
||||
public bounds: Rectangle;
|
||||
public canvas: HTMLCanvasElement;
|
||||
public context: CanvasRenderingContext2D;
|
||||
public getPixel(x: number, y: number): number;
|
||||
public getPixel32(x: number, y: number): number;
|
||||
public getPixels(rect: Rectangle): ImageData;
|
||||
public setPixel(x: number, y: number, color: number): void;
|
||||
public setPixel32(x: number, y: number, color: number): void;
|
||||
public setPixels(rect: Rectangle, input): void;
|
||||
public fillRect(rect: Rectangle, color: number): void;
|
||||
public pasteImage(key: string, frame?: number, destX?: number, destY?: number, destWidth?: number, destHeight?: number): void;
|
||||
public copyPixels(sourceTexture: DynamicTexture, sourceRect: Rectangle, destPoint: Point): void;
|
||||
public clear(): void;
|
||||
public width : number;
|
||||
public height : number;
|
||||
private getColor32(alpha, red, green, blue);
|
||||
private getColor(red, green, blue);
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
/// <reference path="Game.d.ts" />
|
||||
module Phaser {
|
||||
class FXManager {
|
||||
constructor(game: Game);
|
||||
private _fx;
|
||||
private _length;
|
||||
private _game;
|
||||
public active: bool;
|
||||
public visible: bool;
|
||||
public add(effect): any;
|
||||
public preUpdate(): void;
|
||||
public postUpdate(): void;
|
||||
public preRender(camera: Camera, cameraX: number, cameraY: number, cameraWidth: number, cameraHeight: number): void;
|
||||
public render(camera: Camera, cameraX: number, cameraY: number, cameraWidth: number, cameraHeight: number): void;
|
||||
public postRender(camera: Camera, cameraX: number, cameraY: number, cameraWidth: number, cameraHeight: number): void;
|
||||
public destroy(): void;
|
||||
}
|
||||
}
|
||||
@@ -1,232 +0,0 @@
|
||||
/// <reference path="Game.ts" />
|
||||
|
||||
/**
|
||||
* Phaser - FXManager
|
||||
*
|
||||
* The FXManager controls all special effects applied to game objects such as Cameras.
|
||||
*/
|
||||
|
||||
module Phaser {
|
||||
|
||||
export class FXManager {
|
||||
|
||||
constructor(game: Game, parent) {
|
||||
|
||||
this._game = game;
|
||||
this._parent = parent;
|
||||
this._fx = [];
|
||||
|
||||
this.active = true;
|
||||
this.visible = true;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* The essential reference to the main game object.
|
||||
*/
|
||||
private _game: Game;
|
||||
|
||||
/**
|
||||
* A reference to the object that owns this FXManager instance.
|
||||
*/
|
||||
private _parent;
|
||||
|
||||
/**
|
||||
* The array in which we keep all of the registered FX
|
||||
*/
|
||||
private _fx;
|
||||
|
||||
/**
|
||||
* Holds the size of the _fx array
|
||||
*/
|
||||
private _length: number;
|
||||
|
||||
/**
|
||||
* Controls whether any of the FX have preUpdate, update or postUpdate called
|
||||
*/
|
||||
public active: bool;
|
||||
|
||||
/**
|
||||
* Controls whether any of the FX have preRender, render or postRender called
|
||||
*/
|
||||
public visible: bool;
|
||||
|
||||
/**
|
||||
* Adds a new FX to the FXManager.
|
||||
* The effect must be an object with at least one of the following methods: preUpdate, postUpdate, preRender, render or postRender.
|
||||
* A new instance of the effect will be created and a reference to Game will be passed to the object constructor.
|
||||
* @param {object} effect
|
||||
* @return {any}
|
||||
*/
|
||||
public add(effect): any {
|
||||
|
||||
var result: bool = false;
|
||||
var newEffect = { effect: {}, preUpdate: false, postUpdate: false, preRender: false, render: false, postRender: false };
|
||||
|
||||
if (typeof effect === 'function')
|
||||
{
|
||||
newEffect.effect = new effect(this._game, this._parent);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Error("Invalid object given to Phaser.FXManager.add");
|
||||
}
|
||||
|
||||
// Check for methods now to avoid having to do this every loop
|
||||
|
||||
if (typeof newEffect.effect['preUpdate'] === 'function')
|
||||
{
|
||||
newEffect.preUpdate = true;
|
||||
result = true;
|
||||
}
|
||||
|
||||
if (typeof newEffect.effect['postUpdate'] === 'function')
|
||||
{
|
||||
newEffect.postUpdate = true;
|
||||
result = true;
|
||||
}
|
||||
|
||||
if (typeof newEffect.effect['preRender'] === 'function')
|
||||
{
|
||||
newEffect.preRender = true;
|
||||
result = true;
|
||||
}
|
||||
|
||||
if (typeof newEffect.effect['render'] === 'function')
|
||||
{
|
||||
newEffect.render = true;
|
||||
result = true;
|
||||
}
|
||||
|
||||
if (typeof newEffect.effect['postRender'] === 'function')
|
||||
{
|
||||
newEffect.postRender = true;
|
||||
result = true;
|
||||
}
|
||||
|
||||
if (result == true)
|
||||
{
|
||||
this._length = this._fx.push(newEffect);
|
||||
|
||||
return newEffect.effect;
|
||||
}
|
||||
else
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Pre-update is called at the start of the objects update cycle, before any other updates have taken place.
|
||||
*/
|
||||
public preUpdate() {
|
||||
|
||||
if (this.active)
|
||||
{
|
||||
for (var i = 0; i < this._length; i++)
|
||||
{
|
||||
if (this._fx[i].preUpdate)
|
||||
{
|
||||
this._fx[i].effect.preUpdate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Post-update is called at the end of the objects update cycle, after other update logic has taken place.
|
||||
*/
|
||||
public postUpdate() {
|
||||
|
||||
if (this.active)
|
||||
{
|
||||
for (var i = 0; i < this._length; i++)
|
||||
{
|
||||
if (this._fx[i].postUpdate)
|
||||
{
|
||||
this._fx[i].effect.postUpdate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Pre-render is called at the start of the object render cycle, before any transforms have taken place.
|
||||
* It happens directly AFTER a canvas context.save has happened if added to a Camera.
|
||||
* @param {Camera} camera
|
||||
* @param {number} cameraX
|
||||
* @param {number} cameraY
|
||||
* @param {number} cameraWidth
|
||||
* @param {number} cameraHeight
|
||||
*/
|
||||
public preRender(camera:Camera, cameraX: number, cameraY: number, cameraWidth: number, cameraHeight: number) {
|
||||
|
||||
if (this.visible)
|
||||
{
|
||||
for (var i = 0; i < this._length; i++)
|
||||
{
|
||||
if (this._fx[i].preRender)
|
||||
{
|
||||
this._fx[i].effect.preRender(camera, cameraX, cameraY, cameraWidth, cameraHeight);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* render is called during the objects render cycle, right after all transforms have finished, but before any children/image data is rendered.
|
||||
* @param {Camera} camera
|
||||
* @param {number} cameraX
|
||||
* @param {number} cameraY
|
||||
* @param {number} cameraWidth
|
||||
* @param {number} cameraHeight
|
||||
*/
|
||||
public render(camera:Camera, cameraX: number, cameraY: number, cameraWidth: number, cameraHeight: number) {
|
||||
|
||||
if (this.visible)
|
||||
{
|
||||
for (var i = 0; i < this._length; i++)
|
||||
{
|
||||
if (this._fx[i].preRender)
|
||||
{
|
||||
this._fx[i].effect.preRender(camera, cameraX, cameraY, cameraWidth, cameraHeight);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Post-render is called during the objects render cycle, after the children/image data has been rendered.
|
||||
* It happens directly BEFORE a canvas context.restore has happened if added to a Camera.
|
||||
*/
|
||||
public postRender(camera:Camera, cameraX: number, cameraY: number, cameraWidth: number, cameraHeight: number) {
|
||||
|
||||
if (this.visible)
|
||||
{
|
||||
for (var i = 0; i < this._length; i++)
|
||||
{
|
||||
if (this._fx[i].postRender)
|
||||
{
|
||||
this._fx[i].effect.postRender(camera, cameraX, cameraY, cameraWidth, cameraHeight);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Clear down this FXManager and null out references
|
||||
*/
|
||||
public destroy() {
|
||||
this._game = null;
|
||||
this._fx = null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,88 +0,0 @@
|
||||
/// <reference path="AnimationManager.d.ts" />
|
||||
/// <reference path="Basic.d.ts" />
|
||||
/// <reference path="Cache.d.ts" />
|
||||
/// <reference path="CameraManager.d.ts" />
|
||||
/// <reference path="Collision.d.ts" />
|
||||
/// <reference path="DynamicTexture.d.ts" />
|
||||
/// <reference path="FXManager.d.ts" />
|
||||
/// <reference path="GameMath.d.ts" />
|
||||
/// <reference path="Group.d.ts" />
|
||||
/// <reference path="Loader.d.ts" />
|
||||
/// <reference path="Motion.d.ts" />
|
||||
/// <reference path="Signal.d.ts" />
|
||||
/// <reference path="SignalBinding.d.ts" />
|
||||
/// <reference path="SoundManager.d.ts" />
|
||||
/// <reference path="Stage.d.ts" />
|
||||
/// <reference path="Time.d.ts" />
|
||||
/// <reference path="TweenManager.d.ts" />
|
||||
/// <reference path="World.d.ts" />
|
||||
/// <reference path="system/Device.d.ts" />
|
||||
/// <reference path="system/RandomDataGenerator.d.ts" />
|
||||
/// <reference path="system/RequestAnimationFrame.d.ts" />
|
||||
/// <reference path="system/input/Input.d.ts" />
|
||||
/// <reference path="system/input/Keyboard.d.ts" />
|
||||
/// <reference path="system/input/Mouse.d.ts" />
|
||||
/// <reference path="system/input/Touch.d.ts" />
|
||||
/// <reference path="gameobjects/Emitter.d.ts" />
|
||||
/// <reference path="gameobjects/GameObject.d.ts" />
|
||||
/// <reference path="gameobjects/GeomSprite.d.ts" />
|
||||
/// <reference path="gameobjects/Particle.d.ts" />
|
||||
/// <reference path="gameobjects/Sprite.d.ts" />
|
||||
/// <reference path="gameobjects/Tilemap.d.ts" />
|
||||
/// <reference path="gameobjects/ScrollZone.d.ts" />
|
||||
module Phaser {
|
||||
class Game {
|
||||
constructor(callbackContext, parent?: string, width?: number, height?: number, initCallback?, createCallback?, updateCallback?, renderCallback?);
|
||||
private _raf;
|
||||
private _maxAccumulation;
|
||||
private _accumulator;
|
||||
private _step;
|
||||
private _loadComplete;
|
||||
private _paused;
|
||||
private _pendingState;
|
||||
public callbackContext;
|
||||
public onInitCallback;
|
||||
public onCreateCallback;
|
||||
public onUpdateCallback;
|
||||
public onRenderCallback;
|
||||
public onPausedCallback;
|
||||
public cache: Cache;
|
||||
public collision: Collision;
|
||||
public input: Input;
|
||||
public loader: Loader;
|
||||
public math: GameMath;
|
||||
public motion: Motion;
|
||||
public sound: SoundManager;
|
||||
public stage: Stage;
|
||||
public time: Time;
|
||||
public tweens: TweenManager;
|
||||
public world: World;
|
||||
public rnd: RandomDataGenerator;
|
||||
public device: Device;
|
||||
public isBooted: bool;
|
||||
public isRunning: bool;
|
||||
private boot(parent, width, height);
|
||||
private loadComplete();
|
||||
private bootLoop();
|
||||
private pausedLoop();
|
||||
private loop();
|
||||
private startState();
|
||||
public setCallbacks(initCallback?, createCallback?, updateCallback?, renderCallback?): void;
|
||||
public switchState(state, clearWorld?: bool, clearCache?: bool): void;
|
||||
public destroy(): void;
|
||||
public paused : bool;
|
||||
public framerate : number;
|
||||
public createCamera(x: number, y: number, width: number, height: number): Camera;
|
||||
public createGeomSprite(x: number, y: number): GeomSprite;
|
||||
public createSprite(x: number, y: number, key?: string): Sprite;
|
||||
public createDynamicTexture(width: number, height: number): DynamicTexture;
|
||||
public createGroup(MaxSize?: number): Group;
|
||||
public createParticle(): Particle;
|
||||
public createEmitter(x?: number, y?: number, size?: number): Emitter;
|
||||
public createScrollZone(key: string, x?: number, y?: number, width?: number, height?: number): ScrollZone;
|
||||
public createTilemap(key: string, mapData: string, format: number, resizeWorld?: bool, tileWidth?: number, tileHeight?: number): Tilemap;
|
||||
public createTween(obj): Tween;
|
||||
public collide(objectOrGroup1?: Basic, objectOrGroup2?: Basic, notifyCallback?): bool;
|
||||
public camera : Camera;
|
||||
}
|
||||
}
|
||||
@@ -1,110 +0,0 @@
|
||||
/// <reference path="Game.d.ts" />
|
||||
module Phaser {
|
||||
class GameMath {
|
||||
constructor(game: Game);
|
||||
private _game;
|
||||
static PI: number;
|
||||
static PI_2: number;
|
||||
static PI_4: number;
|
||||
static PI_8: number;
|
||||
static PI_16: number;
|
||||
static TWO_PI: number;
|
||||
static THREE_PI_2: number;
|
||||
static E: number;
|
||||
static LN10: number;
|
||||
static LN2: number;
|
||||
static LOG10E: number;
|
||||
static LOG2E: number;
|
||||
static SQRT1_2: number;
|
||||
static SQRT2: number;
|
||||
static DEG_TO_RAD: number;
|
||||
static RAD_TO_DEG: number;
|
||||
static B_16: number;
|
||||
static B_31: number;
|
||||
static B_32: number;
|
||||
static B_48: number;
|
||||
static B_53: number;
|
||||
static B_64: number;
|
||||
static ONE_THIRD: number;
|
||||
static TWO_THIRDS: number;
|
||||
static ONE_SIXTH: number;
|
||||
static COS_PI_3: number;
|
||||
static SIN_2PI_3: number;
|
||||
static CIRCLE_ALPHA: number;
|
||||
static ON: bool;
|
||||
static OFF: bool;
|
||||
static SHORT_EPSILON: number;
|
||||
static PERC_EPSILON: number;
|
||||
static EPSILON: number;
|
||||
static LONG_EPSILON: number;
|
||||
public cosTable: any[];
|
||||
public sinTable: any[];
|
||||
public fuzzyEqual(a: number, b: number, epsilon?: number): bool;
|
||||
public fuzzyLessThan(a: number, b: number, epsilon?: number): bool;
|
||||
public fuzzyGreaterThan(a: number, b: number, epsilon?: number): bool;
|
||||
public fuzzyCeil(val: number, epsilon?: number): number;
|
||||
public fuzzyFloor(val: number, epsilon?: number): number;
|
||||
public average(...args: any[]): number;
|
||||
public slam(value: number, target: number, epsilon?: number): number;
|
||||
public percentageMinMax(val: number, max: number, min?: number): number;
|
||||
public sign(n: number): number;
|
||||
public truncate(n: number): number;
|
||||
public shear(n: number): number;
|
||||
public wrap(val: number, max: number, min?: number): number;
|
||||
public arithWrap(value: number, max: number, min?: number): number;
|
||||
public clamp(input: number, max: number, min?: number): number;
|
||||
public snapTo(input: number, gap: number, start?: number): number;
|
||||
public snapToFloor(input: number, gap: number, start?: number): number;
|
||||
public snapToCeil(input: number, gap: number, start?: number): number;
|
||||
public snapToInArray(input: number, arr: number[], sort?: bool): number;
|
||||
public roundTo(value: number, place?: number, base?: number): number;
|
||||
public floorTo(value: number, place?: number, base?: number): number;
|
||||
public ceilTo(value: number, place?: number, base?: number): number;
|
||||
public interpolateFloat(a: number, b: number, weight: number): number;
|
||||
public radiansToDegrees(angle: number): number;
|
||||
public degreesToRadians(angle: number): number;
|
||||
public angleBetween(x1: number, y1: number, x2: number, y2: number): number;
|
||||
public normalizeAngle(angle: number, radians?: bool): number;
|
||||
public nearestAngleBetween(a1: number, a2: number, radians?: bool): number;
|
||||
public normalizeAngleToAnother(dep: number, ind: number, radians?: bool): number;
|
||||
public normalizeAngleAfterAnother(dep: number, ind: number, radians?: bool): number;
|
||||
public normalizeAngleBeforeAnother(dep: number, ind: number, radians?: bool): number;
|
||||
public interpolateAngles(a1: number, a2: number, weight: number, radians?: bool, ease?): number;
|
||||
public logBaseOf(value: number, base: number): number;
|
||||
public GCD(m: number, n: number): number;
|
||||
public LCM(m: number, n: number): number;
|
||||
public factorial(value: number): number;
|
||||
public gammaFunction(value: number): number;
|
||||
public fallingFactorial(base: number, exp: number): number;
|
||||
public risingFactorial(base: number, exp: number): number;
|
||||
public binCoef(n: number, k: number): number;
|
||||
public risingBinCoef(n: number, k: number): number;
|
||||
public chanceRoll(chance?: number): bool;
|
||||
public maxAdd(value: number, amount: number, max: number): number;
|
||||
public minSub(value: number, amount: number, min: number): number;
|
||||
public wrapValue(value: number, amount: number, max: number): number;
|
||||
public randomSign(): number;
|
||||
public isOdd(n: number): bool;
|
||||
public isEven(n: number): bool;
|
||||
public wrapAngle(angle: number): number;
|
||||
public angleLimit(angle: number, min: number, max: number): number;
|
||||
public linearInterpolation(v, k);
|
||||
public bezierInterpolation(v, k): number;
|
||||
public catmullRomInterpolation(v, k);
|
||||
public linear(p0, p1, t);
|
||||
public bernstein(n, i): number;
|
||||
public catmullRom(p0, p1, p2, p3, t);
|
||||
public difference(a: number, b: number): number;
|
||||
public globalSeed: number;
|
||||
public random(): number;
|
||||
public srand(Seed: number): number;
|
||||
public getRandom(Objects, StartIndex?: number, Length?: number);
|
||||
public floor(Value: number): number;
|
||||
public ceil(Value: number): number;
|
||||
public sinCosGenerator(length: number, sinAmplitude?: number, cosAmplitude?: number, frequency?: number): any[];
|
||||
public shiftSinTable(): number;
|
||||
public shiftCosTable(): number;
|
||||
public vectorLength(dx: number, dy: number): number;
|
||||
public dotProduct(ax: number, ay: number, bx: number, by: number): number;
|
||||
}
|
||||
}
|
||||
@@ -1,219 +0,0 @@
|
||||
/// <reference path="Game.ts" />
|
||||
|
||||
/**
|
||||
* Phaser - GameObjectFactory
|
||||
*
|
||||
* A quick way to create new world objects and add existing objects to the current world.
|
||||
*/
|
||||
|
||||
module Phaser {
|
||||
|
||||
export class GameObjectFactory {
|
||||
|
||||
/**
|
||||
* GameObjectFactory constructor
|
||||
* @param game {Game} A reference to the current Game.
|
||||
*/
|
||||
constructor(game: Phaser.Game) {
|
||||
|
||||
this._game = game;
|
||||
this._world = this._game.world;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Local private reference to Game
|
||||
*/
|
||||
private _game: Phaser.Game;
|
||||
|
||||
/**
|
||||
* Local private reference to World
|
||||
*/
|
||||
private _world: Phaser.World;
|
||||
|
||||
/**
|
||||
* Create a new camera with specific position and size.
|
||||
*
|
||||
* @param x {number} X position of the new camera.
|
||||
* @param y {number} Y position of the new camera.
|
||||
* @param width {number} Width of the new camera.
|
||||
* @param height {number} Height of the new camera.
|
||||
* @returns {Camera} The newly created camera object.
|
||||
*/
|
||||
public camera(x: number, y: number, width: number, height: number): Camera {
|
||||
return this._world.createCamera(x, y, width, height);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new GeomSprite with specific position.
|
||||
*
|
||||
* @param x {number} X position of the new geom sprite.
|
||||
* @param y {number} Y position of the new geom sprite.
|
||||
* @returns {GeomSprite} The newly created geom sprite object.
|
||||
*/
|
||||
public geomSprite(x: number, y: number): GeomSprite {
|
||||
return this._world.createGeomSprite(x, y);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new Sprite with specific position and sprite sheet key.
|
||||
*
|
||||
* @param x {number} X position of the new sprite.
|
||||
* @param y {number} Y position of the new sprite.
|
||||
* @param key {string} Optional, key for the sprite sheet you want it to use.
|
||||
* @returns {Sprite} The newly created sprite object.
|
||||
*/
|
||||
public sprite(x: number, y: number, key?: string = ''): Sprite {
|
||||
return this._world.createSprite(x, y, key);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new DynamicTexture with specific size.
|
||||
*
|
||||
* @param width {number} Width of the texture.
|
||||
* @param height {number} Height of the texture.
|
||||
* @returns {DynamicTexture} The newly created dynamic texture object.
|
||||
*/
|
||||
public dynamicTexture(width: number, height: number): DynamicTexture {
|
||||
return this._world.createDynamicTexture(width, height);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new object container.
|
||||
*
|
||||
* @param maxSize {number} Optional, capacity of this group.
|
||||
* @returns {Group} The newly created group.
|
||||
*/
|
||||
public group(maxSize?: number = 0): Group {
|
||||
return this._world.createGroup(maxSize);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new Particle.
|
||||
*
|
||||
* @return {Particle} The newly created particle object.
|
||||
*/
|
||||
public particle(): Particle {
|
||||
return this._world.createParticle();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new Emitter.
|
||||
*
|
||||
* @param x {number} Optional, x position of the emitter.
|
||||
* @param y {number} Optional, y position of the emitter.
|
||||
* @param size {number} Optional, size of this emitter.
|
||||
* @return {Emitter} The newly created emitter object.
|
||||
*/
|
||||
public emitter(x?: number = 0, y?: number = 0, size?: number = 0): Emitter {
|
||||
return this._world.createEmitter(x, y, size);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new ScrollZone object with image key, position and size.
|
||||
*
|
||||
* @param key {string} Key to a image you wish this object to use.
|
||||
* @param x {number} X position of this object.
|
||||
* @param y {number} Y position of this object.
|
||||
* @param width number} Width of this object.
|
||||
* @param height {number} Height of this object.
|
||||
* @returns {ScrollZone} The newly created scroll zone object.
|
||||
*/
|
||||
public scrollZone(key: string, x?: number = 0, y?: number = 0, width?: number = 0, height?: number = 0): ScrollZone {
|
||||
return this._world.createScrollZone(key, x, y, width, height);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new Tilemap.
|
||||
*
|
||||
* @param key {string} Key for tileset image.
|
||||
* @param mapData {string} Data of this tilemap.
|
||||
* @param format {number} Format of map data. (Tilemap.FORMAT_CSV or Tilemap.FORMAT_TILED_JSON)
|
||||
* @param [resizeWorld] {boolean} resize the world to make same as tilemap?
|
||||
* @param [tileWidth] {number} width of each tile.
|
||||
* @param [tileHeight] {number} height of each tile.
|
||||
* @return {Tilemap} The newly created tilemap object.
|
||||
*/
|
||||
public tilemap(key: string, mapData: string, format: number, resizeWorld: bool = true, tileWidth?: number = 0, tileHeight?: number = 0): Tilemap {
|
||||
return this._world.createTilemap(key, mapData, format, resizeWorld, tileWidth, tileHeight);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a tween object for a specific object.
|
||||
*
|
||||
* @param obj Object you wish the tween will affect.
|
||||
* @return {Phaser.Tween} The newly created tween object.
|
||||
*/
|
||||
public tween(obj): Tween {
|
||||
return this._game.tweens.create(obj);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add an existing Sprite to the current world.
|
||||
* Note: This doesn't check or update the objects reference to Game. If that is wrong, all kinds of things will break.
|
||||
*
|
||||
* @param sprite The Sprite to add to the Game World
|
||||
* @return {Phaser.Sprite} The Sprite object
|
||||
*/
|
||||
public existingSprite(sprite: Sprite): Sprite {
|
||||
return this._world.group.add(sprite);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add an existing GeomSprite to the current world.
|
||||
* Note: This doesn't check or update the objects reference to Game. If that is wrong, all kinds of things will break.
|
||||
*
|
||||
* @param sprite The GeomSprite to add to the Game World
|
||||
* @return {Phaser.GeomSprite} The GeomSprite object
|
||||
*/
|
||||
public existingGeomSprite(sprite: GeomSprite): GeomSprite {
|
||||
return this._world.group.add(sprite);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add an existing Emitter to the current world.
|
||||
* Note: This doesn't check or update the objects reference to Game. If that is wrong, all kinds of things will break.
|
||||
*
|
||||
* @param emitter The Emitter to add to the Game World
|
||||
* @return {Phaser.Emitter} The Emitter object
|
||||
*/
|
||||
public existingEmitter(emitter: Emitter): Emitter {
|
||||
return this._world.group.add(emitter);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add an existing ScrollZone to the current world.
|
||||
* Note: This doesn't check or update the objects reference to Game. If that is wrong, all kinds of things will break.
|
||||
*
|
||||
* @param scrollZone The ScrollZone to add to the Game World
|
||||
* @return {Phaser.ScrollZone} The ScrollZone object
|
||||
*/
|
||||
public existingScrollZone(scrollZone: ScrollZone): ScrollZone {
|
||||
return this._world.group.add(scrollZone);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add an existing Tilemap to the current world.
|
||||
* Note: This doesn't check or update the objects reference to Game. If that is wrong, all kinds of things will break.
|
||||
*
|
||||
* @param tilemap The Tilemap to add to the Game World
|
||||
* @return {Phaser.Tilemap} The Tilemap object
|
||||
*/
|
||||
public existingTilemap(tilemap: Tilemap): Tilemap {
|
||||
return this._world.group.add(tilemap);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add an existing Tween to the current world.
|
||||
* Note: This doesn't check or update the objects reference to Game. If that is wrong, all kinds of things will break.
|
||||
*
|
||||
* @param tween The Tween to add to the Game World
|
||||
* @return {Phaser.Tween} The Tween object
|
||||
*/
|
||||
public existingTween(tween: Tween): Tween {
|
||||
return this._game.tweens.add(tween);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
/// <reference path="Basic.d.ts" />
|
||||
/// <reference path="Game.d.ts" />
|
||||
module Phaser {
|
||||
class Group extends Basic {
|
||||
constructor(game: Game, MaxSize?: number);
|
||||
static ASCENDING: number;
|
||||
static DESCENDING: number;
|
||||
public members: Basic[];
|
||||
public length: number;
|
||||
private _maxSize;
|
||||
private _marker;
|
||||
private _sortIndex;
|
||||
private _sortOrder;
|
||||
public destroy(): void;
|
||||
public update(): void;
|
||||
public render(camera: Camera, cameraOffsetX: number, cameraOffsetY: number): void;
|
||||
public maxSize : number;
|
||||
public add(Object: Basic): Basic;
|
||||
public recycle(ObjectClass?);
|
||||
public remove(Object: Basic, Splice?: bool): Basic;
|
||||
public replace(OldObject: Basic, NewObject: Basic): Basic;
|
||||
public sort(Index?: string, Order?: number): void;
|
||||
public setAll(VariableName: string, Value: Object, Recurse?: bool): void;
|
||||
public callAll(FunctionName: string, Recurse?: bool): void;
|
||||
public forEach(callback, recursive?: bool): void;
|
||||
public forEachAlive(context, callback, recursive?: bool): void;
|
||||
public getFirstAvailable(ObjectClass?);
|
||||
public getFirstNull(): number;
|
||||
public getFirstExtant(): Basic;
|
||||
public getFirstAlive(): Basic;
|
||||
public getFirstDead(): Basic;
|
||||
public countLiving(): number;
|
||||
public countDead(): number;
|
||||
public getRandom(StartIndex?: number, Length?: number): Basic;
|
||||
public clear(): void;
|
||||
public kill(): void;
|
||||
public sortHandler(Obj1: Basic, Obj2: Basic): number;
|
||||
}
|
||||
}
|
||||
@@ -1,872 +0,0 @@
|
||||
/// <reference path="Basic.ts" />
|
||||
/// <reference path="Game.ts" />
|
||||
|
||||
/**
|
||||
* Phaser - Group
|
||||
*
|
||||
* This class is used for organising, updating and sorting game objects.
|
||||
*/
|
||||
|
||||
module Phaser {
|
||||
|
||||
export class Group extends Basic {
|
||||
|
||||
constructor(game: Game, MaxSize?: number = 0) {
|
||||
|
||||
super(game);
|
||||
|
||||
this.isGroup = true;
|
||||
this.members = [];
|
||||
this.length = 0;
|
||||
this._maxSize = MaxSize;
|
||||
this._marker = 0;
|
||||
this._sortIndex = null;
|
||||
this.cameraBlacklist = [];
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Internal tracker for the maximum capacity of the group.
|
||||
* Default is 0, or no max capacity.
|
||||
*/
|
||||
private _maxSize: number;
|
||||
|
||||
/**
|
||||
* Internal helper variable for recycling objects a la <code>Emitter</code>.
|
||||
*/
|
||||
private _marker: number;
|
||||
|
||||
/**
|
||||
* Helper for sort.
|
||||
*/
|
||||
private _sortIndex: string;
|
||||
|
||||
/**
|
||||
* Helper for sort.
|
||||
*/
|
||||
private _sortOrder: number;
|
||||
|
||||
/**
|
||||
* Use with <code>sort()</code> to sort in ascending order.
|
||||
*/
|
||||
public static ASCENDING: number = -1;
|
||||
|
||||
/**
|
||||
* Use with <code>sort()</code> to sort in descending order.
|
||||
*/
|
||||
public static DESCENDING: number = 1;
|
||||
|
||||
/**
|
||||
* Array of all the <code>Basic</code>s that exist in this group.
|
||||
*/
|
||||
public members: Basic[];
|
||||
|
||||
/**
|
||||
* The number of entries in the members array.
|
||||
* For performance and safety you should check this variable
|
||||
* instead of members.length unless you really know what you're doing!
|
||||
*/
|
||||
public length: number;
|
||||
|
||||
/**
|
||||
* You can set a globalCompositeOperation that will be applied before the render method is called on this Groups children.
|
||||
* This is useful if you wish to apply an effect like 'lighten' to a whole group of children as it saves doing it one-by-one.
|
||||
* If this value is set it will call a canvas context save and restore before and after the render pass.
|
||||
* Set to null to disable.
|
||||
*/
|
||||
public globalCompositeOperation: string = null;
|
||||
|
||||
/**
|
||||
* You can set an alpha value on this Group that will be applied before the render method is called on this Groups children.
|
||||
* This is useful if you wish to alpha a whole group of children as it saves doing it one-by-one.
|
||||
* Set to 0 to disable.
|
||||
*/
|
||||
public alpha: number = 0;
|
||||
|
||||
/**
|
||||
* An Array of Cameras to which this Group, or any of its children, won't render
|
||||
* @type {Array}
|
||||
*/
|
||||
public cameraBlacklist: number[];
|
||||
|
||||
/**
|
||||
* If you do not wish this object to be visible to a specific camera, pass the camera here.
|
||||
*
|
||||
* @param camera {Camera} The specific camera.
|
||||
*/
|
||||
public hideFromCamera(camera: Camera) {
|
||||
|
||||
if (this.cameraBlacklist.indexOf(camera.ID) == -1)
|
||||
{
|
||||
this.cameraBlacklist.push(camera.ID);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Make this object only visible to a specific camera.
|
||||
*
|
||||
* @param camera {Camera} The camera you wish it to be visible.
|
||||
*/
|
||||
public showToCamera(camera: Camera) {
|
||||
|
||||
if (this.cameraBlacklist.indexOf(camera.ID) !== -1)
|
||||
{
|
||||
this.cameraBlacklist.slice(this.cameraBlacklist.indexOf(camera.ID), 1);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* This clears the camera black list, making the GameObject visible to all cameras.
|
||||
*/
|
||||
public clearCameraList() {
|
||||
|
||||
this.cameraBlacklist.length = 0;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Override this function to handle any deleting or "shutdown" type operations you might need,
|
||||
* such as removing traditional Flash children like Basic objects.
|
||||
*/
|
||||
public destroy() {
|
||||
|
||||
if (this.members != null)
|
||||
{
|
||||
var basic: Basic;
|
||||
var i: number = 0;
|
||||
|
||||
while (i < this.length)
|
||||
{
|
||||
basic = this.members[i++];
|
||||
|
||||
if (basic != null)
|
||||
{
|
||||
basic.destroy();
|
||||
}
|
||||
}
|
||||
|
||||
this.members.length = 0;
|
||||
}
|
||||
|
||||
this._sortIndex = null;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Automatically goes through and calls update on everything you added.
|
||||
*/
|
||||
public update(forceUpdate?: bool = false) {
|
||||
|
||||
if (this.ignoreGlobalUpdate && forceUpdate == false)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var basic: Basic;
|
||||
var i: number = 0;
|
||||
|
||||
while (i < this.length)
|
||||
{
|
||||
basic = this.members[i++];
|
||||
|
||||
if ((basic != null) && basic.exists && basic.active && basic.ignoreGlobalUpdate == false)
|
||||
{
|
||||
basic.preUpdate();
|
||||
basic.update(forceUpdate);
|
||||
basic.postUpdate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Automatically goes through and calls render on everything you added.
|
||||
*/
|
||||
public render(camera: Camera, cameraOffsetX: number, cameraOffsetY: number, forceRender?: bool = false) {
|
||||
|
||||
if (this.cameraBlacklist.indexOf(camera.ID) !== -1)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.ignoreGlobalRender && forceRender == false)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.globalCompositeOperation)
|
||||
{
|
||||
this._game.stage.context.save();
|
||||
this._game.stage.context.globalCompositeOperation = this.globalCompositeOperation;
|
||||
}
|
||||
|
||||
if (this.alpha > 0)
|
||||
{
|
||||
var prevAlpha: number = this._game.stage.context.globalAlpha;
|
||||
this._game.stage.context.globalAlpha = this.alpha;
|
||||
}
|
||||
|
||||
var basic: Basic;
|
||||
var i: number = 0;
|
||||
|
||||
while (i < this.length)
|
||||
{
|
||||
basic = this.members[i++];
|
||||
|
||||
if ((basic != null) && basic.exists && basic.visible && basic.ignoreGlobalRender == false)
|
||||
{
|
||||
basic.render(camera, cameraOffsetX, cameraOffsetY, forceRender);
|
||||
}
|
||||
}
|
||||
|
||||
if (this.alpha > 0)
|
||||
{
|
||||
this._game.stage.context.globalAlpha = prevAlpha;
|
||||
}
|
||||
|
||||
if (this.globalCompositeOperation)
|
||||
{
|
||||
this._game.stage.context.restore();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The maximum capacity of this group. Default is 0, meaning no max capacity, and the group can just grow.
|
||||
*/
|
||||
public get maxSize(): number {
|
||||
return this._maxSize;
|
||||
}
|
||||
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
public set maxSize(Size: number) {
|
||||
|
||||
this._maxSize = Size;
|
||||
|
||||
if (this._marker >= this._maxSize)
|
||||
{
|
||||
this._marker = 0;
|
||||
}
|
||||
|
||||
if ((this._maxSize == 0) || (this.members == null) || (this._maxSize >= this.members.length))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//If the max size has shrunk, we need to get rid of some objects
|
||||
var basic: Basic;
|
||||
var i: number = this._maxSize;
|
||||
var l: number = this.members.length;
|
||||
|
||||
while (i < l)
|
||||
{
|
||||
basic = this.members[i++];
|
||||
|
||||
if (basic != null)
|
||||
{
|
||||
basic.destroy();
|
||||
}
|
||||
}
|
||||
|
||||
this.length = this.members.length = this._maxSize;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a new <code>Basic</code> subclass (Basic, GameObject, Sprite, etc) to the group.
|
||||
* Group will try to replace a null member of the array first.
|
||||
* Failing that, Group will add it to the end of the member array,
|
||||
* assuming there is room for it, and doubling the size of the array if necessary.
|
||||
*
|
||||
* <p>WARNING: If the group has a maxSize that has already been met,
|
||||
* the object will NOT be added to the group!</p>
|
||||
*
|
||||
* @param {Basic} Object The object you want to add to the group.
|
||||
* @return {Basic} The same <code>Basic</code> object that was passed in.
|
||||
*/
|
||||
public add(Object: Basic): any {
|
||||
|
||||
//Don't bother adding an object twice.
|
||||
if (this.members.indexOf(Object) >= 0)
|
||||
{
|
||||
return Object;
|
||||
}
|
||||
|
||||
//First, look for a null entry where we can add the object.
|
||||
var i: number = 0;
|
||||
var l: number = this.members.length;
|
||||
|
||||
while (i < l)
|
||||
{
|
||||
if (this.members[i] == null)
|
||||
{
|
||||
this.members[i] = Object;
|
||||
|
||||
if (i >= this.length)
|
||||
{
|
||||
this.length = i + 1;
|
||||
}
|
||||
|
||||
return Object;
|
||||
}
|
||||
|
||||
i++;
|
||||
}
|
||||
|
||||
//Failing that, expand the array (if we can) and add the object.
|
||||
if (this._maxSize > 0)
|
||||
{
|
||||
if (this.members.length >= this._maxSize)
|
||||
{
|
||||
return Object;
|
||||
}
|
||||
else if (this.members.length * 2 <= this._maxSize)
|
||||
{
|
||||
this.members.length *= 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.members.length = this._maxSize;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
this.members.length *= 2;
|
||||
}
|
||||
|
||||
//If we made it this far, then we successfully grew the group,
|
||||
//and we can go ahead and add the object at the first open slot.
|
||||
this.members[i] = Object;
|
||||
this.length = i + 1;
|
||||
|
||||
return Object;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Recycling is designed to help you reuse game objects without always re-allocating or "newing" them.
|
||||
*
|
||||
* <p>If you specified a maximum size for this group (like in Emitter),
|
||||
* then recycle will employ what we're calling "rotating" recycling.
|
||||
* Recycle() will first check to see if the group is at capacity yet.
|
||||
* If group is not yet at capacity, recycle() returns a new object.
|
||||
* If the group IS at capacity, then recycle() just returns the next object in line.</p>
|
||||
*
|
||||
* <p>If you did NOT specify a maximum size for this group,
|
||||
* then recycle() will employ what we're calling "grow-style" recycling.
|
||||
* Recycle() will return either the first object with exists == false,
|
||||
* or, finding none, add a new object to the array,
|
||||
* doubling the size of the array if necessary.</p>
|
||||
*
|
||||
* <p>WARNING: If this function needs to create a new object,
|
||||
* and no object class was provided, it will return null
|
||||
* instead of a valid object!</p>
|
||||
*
|
||||
* @param {class} ObjectClass The class type you want to recycle (e.g. Basic, EvilRobot, etc). Do NOT "new" the class in the parameter!
|
||||
*
|
||||
* @return {any} A reference to the object that was created. Don't forget to cast it back to the Class you want (e.g. myObject = myGroup.recycle(myObjectClass) as myObjectClass;).
|
||||
*/
|
||||
public recycle(ObjectClass = null) {
|
||||
|
||||
var basic;
|
||||
|
||||
if (this._maxSize > 0)
|
||||
{
|
||||
if (this.length < this._maxSize)
|
||||
{
|
||||
if (ObjectClass == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return this.add(new ObjectClass(this._game));
|
||||
}
|
||||
else
|
||||
{
|
||||
basic = this.members[this._marker++];
|
||||
|
||||
if (this._marker >= this._maxSize)
|
||||
{
|
||||
this._marker = 0;
|
||||
}
|
||||
|
||||
return basic;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
basic = this.getFirstAvailable(ObjectClass);
|
||||
|
||||
if (basic != null)
|
||||
{
|
||||
return basic;
|
||||
}
|
||||
|
||||
if (ObjectClass == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return this.add(new ObjectClass(this._game));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes an object from the group.
|
||||
*
|
||||
* @param {Basic} object The <code>Basic</code> you want to remove.
|
||||
* @param {boolean} splice Whether the object should be cut from the array entirely or not.
|
||||
*
|
||||
* @return {Basic} The removed object.
|
||||
*/
|
||||
public remove(object: Basic, splice: bool = false): Basic {
|
||||
|
||||
var index: number = this.members.indexOf(object);
|
||||
|
||||
if ((index < 0) || (index >= this.members.length))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (splice)
|
||||
{
|
||||
this.members.splice(index, 1);
|
||||
this.length--;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.members[index] = null;
|
||||
}
|
||||
|
||||
return object;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Replaces an existing <code>Basic</code> with a new one.
|
||||
*
|
||||
* @param {Basic} oldObject The object you want to replace.
|
||||
* @param {Basic} newObject The new object you want to use instead.
|
||||
*
|
||||
* @return {Basic} The new object.
|
||||
*/
|
||||
public replace(oldObject: Basic, newObject: Basic): Basic {
|
||||
|
||||
var index: number = this.members.indexOf(oldObject);
|
||||
|
||||
if ((index < 0) || (index >= this.members.length))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
this.members[index] = newObject;
|
||||
|
||||
return newObject;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Call this function to sort the group according to a particular value and order.
|
||||
* For example, to sort game objects for Zelda-style overlaps you might call
|
||||
* <code>myGroup.sort("y",Group.ASCENDING)</code> at the bottom of your
|
||||
* <code>State.update()</code> override. To sort all existing objects after
|
||||
* a big explosion or bomb attack, you might call <code>myGroup.sort("exists",Group.DESCENDING)</code>.
|
||||
*
|
||||
* @param {string} index The <code>string</code> name of the member variable you want to sort on. Default value is "y".
|
||||
* @param {number} order A <code>Group</code> constant that defines the sort order. Possible values are <code>Group.ASCENDING</code> and <code>Group.DESCENDING</code>. Default value is <code>Group.ASCENDING</code>.
|
||||
*/
|
||||
public sort(index: string = "y", order: number = Group.ASCENDING) {
|
||||
|
||||
this._sortIndex = index;
|
||||
this._sortOrder = order;
|
||||
this.members.sort(this.sortHandler);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Go through and set the specified variable to the specified value on all members of the group.
|
||||
*
|
||||
* @param {string} VariableName The string representation of the variable name you want to modify, for example "visible" or "scrollFactor".
|
||||
* @param {Object} Value The value you want to assign to that variable.
|
||||
* @param {boolean} Recurse Default value is true, meaning if <code>setAll()</code> encounters a member that is a group, it will call <code>setAll()</code> on that group rather than modifying its variable.
|
||||
*/
|
||||
public setAll(VariableName: string, Value: Object, Recurse: bool = true) {
|
||||
|
||||
var basic: Basic;
|
||||
var i: number = 0;
|
||||
|
||||
while (i < length)
|
||||
{
|
||||
basic = this.members[i++];
|
||||
|
||||
if (basic != null)
|
||||
{
|
||||
if (Recurse && (basic.isGroup == true))
|
||||
{
|
||||
<Group> basic['setAll'](VariableName, Value, Recurse);
|
||||
}
|
||||
else
|
||||
{
|
||||
basic[VariableName] = Value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Go through and call the specified function on all members of the group.
|
||||
* Currently only works on functions that have no required parameters.
|
||||
*
|
||||
* @param {string} FunctionName The string representation of the function you want to call on each object, for example "kill()" or "init()".
|
||||
* @param {boolean} Recurse Default value is true, meaning if <code>callAll()</code> encounters a member that is a group, it will call <code>callAll()</code> on that group rather than calling the group's function.
|
||||
*/
|
||||
public callAll(FunctionName: string, Recurse: bool = true) {
|
||||
|
||||
var basic: Basic;
|
||||
var i: number = 0;
|
||||
|
||||
while (i < this.length)
|
||||
{
|
||||
basic = this.members[i++];
|
||||
|
||||
if (basic != null)
|
||||
{
|
||||
if (Recurse && (basic.isGroup == true))
|
||||
{
|
||||
<Group> basic['callAll'](FunctionName, Recurse);
|
||||
}
|
||||
else
|
||||
{
|
||||
basic[FunctionName]();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {function} callback
|
||||
* @param {boolean} recursive
|
||||
*/
|
||||
public forEach(callback, recursive: bool = false) {
|
||||
|
||||
var basic;
|
||||
var i: number = 0;
|
||||
|
||||
while (i < this.length)
|
||||
{
|
||||
basic = this.members[i++];
|
||||
|
||||
if (basic != null)
|
||||
{
|
||||
if (recursive && (basic.isGroup == true))
|
||||
{
|
||||
basic.forEach(callback, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
callback.call(this, basic);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {any} context
|
||||
* @param {function} callback
|
||||
* @param {boolean} recursive
|
||||
*/
|
||||
public forEachAlive(context, callback, recursive: bool = false) {
|
||||
|
||||
var basic;
|
||||
var i: number = 0;
|
||||
|
||||
while (i < this.length)
|
||||
{
|
||||
basic = this.members[i++];
|
||||
|
||||
if (basic != null && basic.alive)
|
||||
{
|
||||
if (recursive && (basic.isGroup == true))
|
||||
{
|
||||
basic.forEachAlive(context, callback, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
callback.call(context, basic);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Call this function to retrieve the first object with exists == false in the group.
|
||||
* This is handy for recycling in general, e.g. respawning enemies.
|
||||
*
|
||||
* @param {any} [ObjectClass] An optional parameter that lets you narrow the results to instances of this particular class.
|
||||
*
|
||||
* @return {any} A <code>Basic</code> currently flagged as not existing.
|
||||
*/
|
||||
public getFirstAvailable(ObjectClass = null) {
|
||||
|
||||
var basic;
|
||||
var i: number = 0;
|
||||
|
||||
while (i < this.length)
|
||||
{
|
||||
basic = this.members[i++];
|
||||
|
||||
if ((basic != null) && !basic.exists && ((ObjectClass == null) || (typeof basic === ObjectClass)))
|
||||
{
|
||||
return basic;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Call this function to retrieve the first index set to 'null'.
|
||||
* Returns -1 if no index stores a null object.
|
||||
*
|
||||
* @return {number} An <code>int</code> indicating the first null slot in the group.
|
||||
*/
|
||||
public getFirstNull(): number {
|
||||
|
||||
var basic: Basic;
|
||||
var i: number = 0;
|
||||
var l: number = this.members.length;
|
||||
|
||||
while (i < l)
|
||||
{
|
||||
if (this.members[i] == null)
|
||||
{
|
||||
return i;
|
||||
}
|
||||
else
|
||||
{
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
return -1;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Call this function to retrieve the first object with exists == true in the group.
|
||||
* This is handy for checking if everything's wiped out, or choosing a squad leader, etc.
|
||||
*
|
||||
* @return {Basic} A <code>Basic</code> currently flagged as existing.
|
||||
*/
|
||||
public getFirstExtant(): Basic {
|
||||
|
||||
var basic: Basic;
|
||||
var i: number = 0;
|
||||
|
||||
while (i < length)
|
||||
{
|
||||
basic = this.members[i++];
|
||||
|
||||
if ((basic != null) && basic.exists)
|
||||
{
|
||||
return basic;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Call this function to retrieve the first object with dead == false in the group.
|
||||
* This is handy for checking if everything's wiped out, or choosing a squad leader, etc.
|
||||
*
|
||||
* @return {Basic} A <code>Basic</code> currently flagged as not dead.
|
||||
*/
|
||||
public getFirstAlive(): Basic {
|
||||
|
||||
var basic: Basic;
|
||||
var i: number = 0;
|
||||
|
||||
while (i < this.length)
|
||||
{
|
||||
basic = this.members[i++];
|
||||
|
||||
if ((basic != null) && basic.exists && basic.alive)
|
||||
{
|
||||
return basic;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Call this function to retrieve the first object with dead == true in the group.
|
||||
* This is handy for checking if everything's wiped out, or choosing a squad leader, etc.
|
||||
*
|
||||
* @return {Basic} A <code>Basic</code> currently flagged as dead.
|
||||
*/
|
||||
public getFirstDead(): Basic {
|
||||
|
||||
var basic: Basic;
|
||||
var i: number = 0;
|
||||
|
||||
while (i < this.length)
|
||||
{
|
||||
basic = this.members[i++];
|
||||
|
||||
if ((basic != null) && !basic.alive)
|
||||
{
|
||||
return basic;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Call this function to find out how many members of the group are not dead.
|
||||
*
|
||||
* @return {number} The number of <code>Basic</code>s flagged as not dead. Returns -1 if group is empty.
|
||||
*/
|
||||
public countLiving(): number {
|
||||
|
||||
var count: number = -1;
|
||||
var basic: Basic;
|
||||
var i: number = 0;
|
||||
|
||||
while (i < this.length)
|
||||
{
|
||||
basic = this.members[i++];
|
||||
|
||||
if (basic != null)
|
||||
{
|
||||
if (count < 0)
|
||||
{
|
||||
count = 0;
|
||||
}
|
||||
|
||||
if (basic.exists && basic.alive)
|
||||
{
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return count;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Call this function to find out how many members of the group are dead.
|
||||
*
|
||||
* @return {number} The number of <code>Basic</code>s flagged as dead. Returns -1 if group is empty.
|
||||
*/
|
||||
public countDead(): number {
|
||||
|
||||
var count: number = -1;
|
||||
var basic: Basic;
|
||||
var i: number = 0;
|
||||
|
||||
while (i < this.length)
|
||||
{
|
||||
basic = this.members[i++];
|
||||
|
||||
if (basic != null)
|
||||
{
|
||||
if (count < 0)
|
||||
{
|
||||
count = 0;
|
||||
}
|
||||
|
||||
if (!basic.alive)
|
||||
{
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return count;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a member at random from the group.
|
||||
*
|
||||
* @param {number} StartIndex Optional offset off the front of the array. Default value is 0, or the beginning of the array.
|
||||
* @param {number} Length Optional restriction on the number of values you want to randomly select from.
|
||||
*
|
||||
* @return {Basic} A <code>Basic</code> from the members list.
|
||||
*/
|
||||
public getRandom(StartIndex: number = 0, Length: number = 0): Basic {
|
||||
|
||||
if (Length == 0)
|
||||
{
|
||||
Length = this.length;
|
||||
}
|
||||
|
||||
return this._game.math.getRandom(this.members, StartIndex, Length);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove all instances of <code>Basic</code> subclass (Basic, Block, etc) from the list.
|
||||
* WARNING: does not destroy() or kill() any of these objects!
|
||||
*/
|
||||
public clear() {
|
||||
this.length = this.members.length = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Calls kill on the group's members and then on the group itself.
|
||||
*/
|
||||
public kill() {
|
||||
|
||||
var basic: Basic;
|
||||
var i: number = 0;
|
||||
|
||||
while (i < this.length)
|
||||
{
|
||||
basic = this.members[i++];
|
||||
|
||||
if ((basic != null) && basic.exists)
|
||||
{
|
||||
basic.kill();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper function for the sort process.
|
||||
*
|
||||
* @param {Basic} Obj1 The first object being sorted.
|
||||
* @param {Basic} Obj2 The second object being sorted.
|
||||
*
|
||||
* @return {number} An integer value: -1 (Obj1 before Obj2), 0 (same), or 1 (Obj1 after Obj2).
|
||||
*/
|
||||
public sortHandler(Obj1: Basic, Obj2: Basic): number {
|
||||
|
||||
if (Obj1[this._sortIndex] < Obj2[this._sortIndex])
|
||||
{
|
||||
return this._sortOrder;
|
||||
}
|
||||
else if (Obj1[this._sortIndex] > Obj2[this._sortIndex])
|
||||
{
|
||||
return -this._sortOrder;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
/// <reference path="Game.d.ts" />
|
||||
module Phaser {
|
||||
class Loader {
|
||||
constructor(game: Game, callback);
|
||||
private _game;
|
||||
private _keys;
|
||||
private _fileList;
|
||||
private _gameCreateComplete;
|
||||
private _onComplete;
|
||||
private _onFileLoad;
|
||||
private _progressChunk;
|
||||
private _xhr;
|
||||
private _queueSize;
|
||||
public hasLoaded: bool;
|
||||
public progress: number;
|
||||
public reset(): void;
|
||||
public queueSize : number;
|
||||
public addImageFile(key: string, url: string): void;
|
||||
public addSpriteSheet(key: string, url: string, frameWidth: number, frameHeight: number, frameMax?: number): void;
|
||||
public addTextureAtlas(key: string, url: string, jsonURL?: string, jsonData?): void;
|
||||
public addAudioFile(key: string, url: string): void;
|
||||
public addTextFile(key: string, url: string): void;
|
||||
public removeFile(key: string): void;
|
||||
public removeAll(): void;
|
||||
public load(onFileLoadCallback?, onCompleteCallback?): void;
|
||||
private loadFile();
|
||||
private fileError(key);
|
||||
private fileComplete(key);
|
||||
private jsonLoadComplete(key);
|
||||
private jsonLoadError(key);
|
||||
private nextFile(previousKey, success);
|
||||
private checkKeyExists(key);
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
/// <reference path="Game.d.ts" />
|
||||
/// <reference path="gameobjects/GameObject.d.ts" />
|
||||
module Phaser {
|
||||
class Motion {
|
||||
constructor(game: Game);
|
||||
private _game;
|
||||
public computeVelocity(Velocity: number, Acceleration?: number, Drag?: number, Max?: number): number;
|
||||
public velocityFromAngle(angle: number, speed: number): Point;
|
||||
public moveTowardsObject(source: GameObject, dest: GameObject, speed?: number, maxTime?: number): void;
|
||||
public accelerateTowardsObject(source: GameObject, dest: GameObject, speed: number, xSpeedMax: number, ySpeedMax: number): void;
|
||||
public moveTowardsMouse(source: GameObject, speed?: number, maxTime?: number): void;
|
||||
public accelerateTowardsMouse(source: GameObject, speed: number, xSpeedMax: number, ySpeedMax: number): void;
|
||||
public moveTowardsPoint(source: GameObject, target: Point, speed?: number, maxTime?: number): void;
|
||||
public accelerateTowardsPoint(source: GameObject, target: Point, speed: number, xSpeedMax: number, ySpeedMax: number): void;
|
||||
public distanceBetween(a: GameObject, b: GameObject): number;
|
||||
public distanceToPoint(a: GameObject, target: Point): number;
|
||||
public distanceToMouse(a: GameObject): number;
|
||||
public angleBetweenPoint(a: GameObject, target: Point, asDegrees?: bool): number;
|
||||
public angleBetween(a: GameObject, b: GameObject, asDegrees?: bool): number;
|
||||
public velocityFromFacing(parent: GameObject, speed: number): Point;
|
||||
public angleBetweenMouse(a: GameObject, asDegrees?: bool): number;
|
||||
}
|
||||
}
|
||||
@@ -1,397 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<ProjectGuid>{A90BE60F-CAEA-4747-904A-CDB097BA2459}</ProjectGuid>
|
||||
<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
|
||||
<OutputType>Library</OutputType>
|
||||
<OutputPath>bin</OutputPath>
|
||||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
||||
<DebugType>full</DebugType>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<UseIISExpress>true</UseIISExpress>
|
||||
<IISExpressSSLPort />
|
||||
<IISExpressAnonymousAuthentication />
|
||||
<IISExpressWindowsAuthentication />
|
||||
<IISExpressUseClassicPipelineMode />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
|
||||
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<RootNamespace>Phaser</RootNamespace>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
|
||||
<ProjectExtensions>
|
||||
<VisualStudio>
|
||||
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
|
||||
<WebProjectProperties>
|
||||
<UseIIS>True</UseIIS>
|
||||
<AutoAssignPort>True</AutoAssignPort>
|
||||
<DevelopmentServerPort>0</DevelopmentServerPort>
|
||||
<DevelopmentServerVPath>/</DevelopmentServerVPath>
|
||||
<IISUrl>http://localhost:51891/</IISUrl>
|
||||
<NTLMAuthentication>False</NTLMAuthentication>
|
||||
<UseCustomServer>False</UseCustomServer>
|
||||
<CustomServerUrl>
|
||||
</CustomServerUrl>
|
||||
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
|
||||
</WebProjectProperties>
|
||||
</FlavorProperties>
|
||||
</VisualStudio>
|
||||
</ProjectExtensions>
|
||||
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
|
||||
<TypeScriptTarget>ES5</TypeScriptTarget>
|
||||
<TypeScriptIncludeComments>true</TypeScriptIncludeComments>
|
||||
<TypeScriptSourceMap>false</TypeScriptSourceMap>
|
||||
<TypeScriptOutFile>../build/phaser.js</TypeScriptOutFile>
|
||||
<TypeScriptGeneratesDeclarations>true</TypeScriptGeneratesDeclarations>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)' == 'Release'">
|
||||
<TypeScriptTarget>ES5</TypeScriptTarget>
|
||||
<TypeScriptIncludeComments>false</TypeScriptIncludeComments>
|
||||
<TypeScriptSourceMap>false</TypeScriptSourceMap>
|
||||
<TypeScriptOutFile>../build/phaser.js</TypeScriptOutFile>
|
||||
<TypeScriptGeneratesDeclarations>true</TypeScriptGeneratesDeclarations>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="plugins\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="AnimationManager.js">
|
||||
<DependentUpon>AnimationManager.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="Collision.js">
|
||||
<DependentUpon>Collision.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="DynamicTexture.js">
|
||||
<DependentUpon>DynamicTexture.ts</DependentUpon>
|
||||
</Content>
|
||||
<TypeScriptCompile Include="FXManager.ts" />
|
||||
<Content Include="FXManager.js">
|
||||
<DependentUpon>FXManager.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="Game.js">
|
||||
<DependentUpon>Game.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="GameMath.js">
|
||||
<DependentUpon>GameMath.ts</DependentUpon>
|
||||
</Content>
|
||||
<TypeScriptCompile Include="GameObjectFactory.ts" />
|
||||
<Content Include="GameObjectFactory.js">
|
||||
<DependentUpon>GameObjectFactory.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="gameobjects\Emitter.js">
|
||||
<DependentUpon>Emitter.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="gameobjects\GameObject.js">
|
||||
<DependentUpon>GameObject.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="gameobjects\GeomSprite.js">
|
||||
<DependentUpon>GeomSprite.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="gameobjects\Particle.js">
|
||||
<DependentUpon>Particle.ts</DependentUpon>
|
||||
</Content>
|
||||
<TypeScriptCompile Include="gameobjects\ScrollZone.ts" />
|
||||
<TypeScriptCompile Include="gameobjects\ScrollRegion.ts" />
|
||||
<Content Include="gameobjects\ScrollRegion.js">
|
||||
<DependentUpon>ScrollRegion.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="gameobjects\ScrollZone.js">
|
||||
<DependentUpon>ScrollZone.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="gameobjects\Sprite.js">
|
||||
<DependentUpon>Sprite.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="gameobjects\Tilemap.js">
|
||||
<DependentUpon>Tilemap.ts</DependentUpon>
|
||||
</Content>
|
||||
<TypeScriptCompile Include="verlet\AngleConstraint.ts" />
|
||||
<TypeScriptCompile Include="VerletManager.ts" />
|
||||
<TypeScriptCompile Include="geom\Polygon.ts" />
|
||||
<Content Include="geom\Polygon.js">
|
||||
<DependentUpon>Polygon.ts</DependentUpon>
|
||||
</Content>
|
||||
<TypeScriptCompile Include="geom\Response.ts" />
|
||||
<Content Include="geom\Response.js">
|
||||
<DependentUpon>Response.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="VerletManager.js">
|
||||
<DependentUpon>VerletManager.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="verlet\AngleConstraint.js">
|
||||
<DependentUpon>AngleConstraint.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="geom\Circle.js">
|
||||
<DependentUpon>Circle.ts</DependentUpon>
|
||||
</Content>
|
||||
<TypeScriptCompile Include="verlet\DistanceConstraint.ts" />
|
||||
<TypeScriptCompile Include="verlet\Composite.ts" />
|
||||
<Content Include="verlet\Composite.js">
|
||||
<DependentUpon>Composite.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="verlet\DistanceConstraint.js">
|
||||
<DependentUpon>DistanceConstraint.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="geom\IntersectResult.js">
|
||||
<DependentUpon>IntersectResult.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="geom\Line.js">
|
||||
<DependentUpon>Line.ts</DependentUpon>
|
||||
</Content>
|
||||
<TypeScriptCompile Include="geom\MicroPoint.ts" />
|
||||
<Content Include="geom\MicroPoint.js">
|
||||
<DependentUpon>MicroPoint.ts</DependentUpon>
|
||||
</Content>
|
||||
<TypeScriptCompile Include="verlet\PinConstraint.ts" />
|
||||
<TypeScriptCompile Include="verlet\Particle.ts" />
|
||||
<Content Include="verlet\Particle.js">
|
||||
<DependentUpon>Particle.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="verlet\PinConstraint.js">
|
||||
<DependentUpon>PinConstraint.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="geom\Point.js">
|
||||
<DependentUpon>Point.ts</DependentUpon>
|
||||
</Content>
|
||||
<TypeScriptCompile Include="geom\Quad.ts" />
|
||||
<Content Include="geom\Quad.js">
|
||||
<DependentUpon>Quad.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="geom\Rectangle.js">
|
||||
<DependentUpon>Rectangle.ts</DependentUpon>
|
||||
</Content>
|
||||
<TypeScriptCompile Include="geom\Vector2.ts" />
|
||||
<Content Include="geom\Vector2.js">
|
||||
<DependentUpon>Vector2.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="SoundManager.js">
|
||||
<DependentUpon>SoundManager.ts</DependentUpon>
|
||||
</Content>
|
||||
<TypeScriptCompile Include="system\screens\PauseScreen.ts" />
|
||||
<TypeScriptCompile Include="system\screens\BootScreen.ts" />
|
||||
<TypeScriptCompile Include="system\input\MSPointer.ts" />
|
||||
<TypeScriptCompile Include="system\input\Gestures.ts" />
|
||||
<TypeScriptCompile Include="system\CollisionMask.ts" />
|
||||
<Content Include="system\CollisionMask.js">
|
||||
<DependentUpon>CollisionMask.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="system\input\Gestures.js">
|
||||
<DependentUpon>Gestures.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="system\input\MSPointer.js">
|
||||
<DependentUpon>MSPointer.ts</DependentUpon>
|
||||
</Content>
|
||||
<TypeScriptCompile Include="system\input\Pointer.ts" />
|
||||
<Content Include="system\input\Pointer.js">
|
||||
<DependentUpon>Pointer.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="system\screens\BootScreen.js">
|
||||
<DependentUpon>BootScreen.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="system\screens\PauseScreen.js">
|
||||
<DependentUpon>PauseScreen.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="system\Sound.js">
|
||||
<DependentUpon>Sound.ts</DependentUpon>
|
||||
</Content>
|
||||
<TypeScriptCompile Include="system\Sound.ts" />
|
||||
<TypeScriptCompile Include="SoundManager.ts" />
|
||||
<Content Include="system\animation\Animation.js">
|
||||
<DependentUpon>Animation.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="system\animation\AnimationLoader.js">
|
||||
<DependentUpon>AnimationLoader.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="system\animation\Frame.js">
|
||||
<DependentUpon>Frame.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="system\animation\FrameData.js">
|
||||
<DependentUpon>FrameData.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="system\Camera.js">
|
||||
<DependentUpon>Camera.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="system\Device.js">
|
||||
<DependentUpon>Device.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="system\LinkedList.js">
|
||||
<DependentUpon>LinkedList.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="system\QuadTree.js">
|
||||
<DependentUpon>QuadTree.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="system\RandomDataGenerator.js">
|
||||
<DependentUpon>RandomDataGenerator.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="system\RequestAnimationFrame.js">
|
||||
<DependentUpon>RequestAnimationFrame.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="system\StageScaleMode.js">
|
||||
<DependentUpon>StageScaleMode.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="system\Tile.js">
|
||||
<DependentUpon>Tile.ts</DependentUpon>
|
||||
</Content>
|
||||
<TypeScriptCompile Include="system\TilemapLayer.ts" />
|
||||
<Content Include="system\TilemapLayer.js">
|
||||
<DependentUpon>TilemapLayer.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="system\Tween.js">
|
||||
<DependentUpon>Tween.ts</DependentUpon>
|
||||
</Content>
|
||||
<TypeScriptCompile Include="system\Tween.ts" />
|
||||
<TypeScriptCompile Include="system\Tile.ts" />
|
||||
<TypeScriptCompile Include="system\StageScaleMode.ts" />
|
||||
<TypeScriptCompile Include="system\RequestAnimationFrame.ts" />
|
||||
<TypeScriptCompile Include="system\RandomDataGenerator.ts" />
|
||||
<TypeScriptCompile Include="system\QuadTree.ts" />
|
||||
<TypeScriptCompile Include="system\LinkedList.ts" />
|
||||
<TypeScriptCompile Include="system\Device.ts" />
|
||||
<TypeScriptCompile Include="system\Camera.ts" />
|
||||
<Content Include="system\easing\Back.js">
|
||||
<DependentUpon>Back.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="system\easing\Bounce.js">
|
||||
<DependentUpon>Bounce.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="system\easing\Circular.js">
|
||||
<DependentUpon>Circular.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="system\easing\Cubic.js">
|
||||
<DependentUpon>Cubic.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="system\easing\Elastic.js">
|
||||
<DependentUpon>Elastic.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="system\easing\Exponential.js">
|
||||
<DependentUpon>Exponential.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="system\easing\Linear.js">
|
||||
<DependentUpon>Linear.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="system\easing\Quadratic.js">
|
||||
<DependentUpon>Quadratic.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="system\easing\Quartic.js">
|
||||
<DependentUpon>Quartic.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="system\easing\Quintic.js">
|
||||
<DependentUpon>Quintic.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="system\easing\Sinusoidal.js">
|
||||
<DependentUpon>Sinusoidal.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="system\input\Input.js">
|
||||
<DependentUpon>Input.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="system\input\Keyboard.js">
|
||||
<DependentUpon>Keyboard.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="system\input\Mouse.js">
|
||||
<DependentUpon>Mouse.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="system\input\Touch.js">
|
||||
<DependentUpon>Touch.ts</DependentUpon>
|
||||
</Content>
|
||||
<TypeScriptCompile Include="system\input\Touch.ts" />
|
||||
<TypeScriptCompile Include="system\input\Mouse.ts" />
|
||||
<TypeScriptCompile Include="system\input\Keyboard.ts" />
|
||||
<TypeScriptCompile Include="system\input\Input.ts" />
|
||||
<TypeScriptCompile Include="system\easing\Sinusoidal.ts" />
|
||||
<TypeScriptCompile Include="system\easing\Quintic.ts" />
|
||||
<TypeScriptCompile Include="system\easing\Quartic.ts" />
|
||||
<TypeScriptCompile Include="system\easing\Quadratic.ts" />
|
||||
<TypeScriptCompile Include="system\easing\Linear.ts" />
|
||||
<TypeScriptCompile Include="system\easing\Exponential.ts" />
|
||||
<TypeScriptCompile Include="system\easing\Elastic.ts" />
|
||||
<TypeScriptCompile Include="system\easing\Cubic.ts" />
|
||||
<TypeScriptCompile Include="system\easing\Circular.ts" />
|
||||
<TypeScriptCompile Include="system\easing\Bounce.ts" />
|
||||
<TypeScriptCompile Include="system\easing\Back.ts" />
|
||||
<TypeScriptCompile Include="system\animation\FrameData.ts" />
|
||||
<TypeScriptCompile Include="system\animation\Frame.ts" />
|
||||
<TypeScriptCompile Include="system\animation\AnimationLoader.ts" />
|
||||
<TypeScriptCompile Include="system\animation\Animation.ts" />
|
||||
<TypeScriptCompile Include="geom\Rectangle.ts" />
|
||||
<TypeScriptCompile Include="geom\Point.ts" />
|
||||
<TypeScriptCompile Include="geom\Line.ts" />
|
||||
<TypeScriptCompile Include="geom\IntersectResult.ts" />
|
||||
<TypeScriptCompile Include="geom\Circle.ts" />
|
||||
<TypeScriptCompile Include="gameobjects\Tilemap.ts" />
|
||||
<TypeScriptCompile Include="gameobjects\Sprite.ts" />
|
||||
<TypeScriptCompile Include="gameobjects\Particle.ts" />
|
||||
<TypeScriptCompile Include="gameobjects\GeomSprite.ts" />
|
||||
<TypeScriptCompile Include="gameobjects\GameObject.ts" />
|
||||
<TypeScriptCompile Include="gameobjects\Emitter.ts" />
|
||||
<Content Include="Group.js">
|
||||
<DependentUpon>Group.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="Loader.js">
|
||||
<DependentUpon>Loader.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="Motion.js">
|
||||
<DependentUpon>Motion.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="Phaser.js">
|
||||
<DependentUpon>Phaser.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="Signal.js">
|
||||
<DependentUpon>Signal.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="SignalBinding.js">
|
||||
<DependentUpon>SignalBinding.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="Stage.js">
|
||||
<DependentUpon>Stage.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="State.js">
|
||||
<DependentUpon>State.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="Time.js">
|
||||
<DependentUpon>Time.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="TweenManager.js">
|
||||
<DependentUpon>TweenManager.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="World.js">
|
||||
<DependentUpon>World.ts</DependentUpon>
|
||||
</Content>
|
||||
<TypeScriptCompile Include="World.ts" />
|
||||
<TypeScriptCompile Include="TweenManager.ts" />
|
||||
<TypeScriptCompile Include="Time.ts" />
|
||||
<TypeScriptCompile Include="State.ts" />
|
||||
<TypeScriptCompile Include="Stage.ts" />
|
||||
<TypeScriptCompile Include="SignalBinding.ts" />
|
||||
<TypeScriptCompile Include="Signal.ts" />
|
||||
<TypeScriptCompile Include="Phaser.ts" />
|
||||
<TypeScriptCompile Include="Motion.ts" />
|
||||
<TypeScriptCompile Include="Loader.ts" />
|
||||
<TypeScriptCompile Include="Group.ts" />
|
||||
<TypeScriptCompile Include="GameMath.ts" />
|
||||
<TypeScriptCompile Include="Game.ts" />
|
||||
<TypeScriptCompile Include="DynamicTexture.ts" />
|
||||
<TypeScriptCompile Include="Collision.ts" />
|
||||
<TypeScriptCompile Include="AnimationManager.ts" />
|
||||
<Content Include="Basic.js">
|
||||
<DependentUpon>Basic.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="Cache.js">
|
||||
<DependentUpon>Cache.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="CameraManager.js">
|
||||
<DependentUpon>CameraManager.ts</DependentUpon>
|
||||
</Content>
|
||||
<TypeScriptCompile Include="CameraManager.ts" />
|
||||
<TypeScriptCompile Include="Cache.ts" />
|
||||
<TypeScriptCompile Include="Basic.ts" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VSToolsPath)\TypeScript\Microsoft.TypeScript.targets" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>cd $(ProjectDir)..\build
|
||||
copy phaser.js ..\Tests\</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -1,3 +0,0 @@
|
||||
module Phaser {
|
||||
var VERSION: string;
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
/**
|
||||
* Phaser
|
||||
*
|
||||
* v0.9.6 - May 21st 2013
|
||||
*
|
||||
* A small and feature-packed 2D canvas game framework born from the firey pits of Flixel and Kiwi.
|
||||
*
|
||||
* Richard Davey (@photonstorm)
|
||||
*
|
||||
* Many thanks to Adam Saltsman (@ADAMATOMIC) for releasing Flixel on which Phaser took a lot of inspiration.
|
||||
*
|
||||
* "If you want your children to be intelligent, read them fairy tales."
|
||||
* "If you want them to be more intelligent, read them more fairy tales."
|
||||
* -- Albert Einstein
|
||||
*/
|
||||
|
||||
module Phaser {
|
||||
|
||||
export var VERSION: string = 'Phaser version 0.9.6';
|
||||
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
/// <reference path="SignalBinding.d.ts" />
|
||||
module Phaser {
|
||||
class Signal {
|
||||
private _bindings;
|
||||
private _prevParams;
|
||||
static VERSION: string;
|
||||
public memorize: bool;
|
||||
private _shouldPropagate;
|
||||
public active: bool;
|
||||
public validateListener(listener, fnName): void;
|
||||
private _registerListener(listener, isOnce, listenerContext, priority);
|
||||
private _addBinding(binding);
|
||||
private _indexOfListener(listener, context);
|
||||
public has(listener, context?: any): bool;
|
||||
public add(listener, listenerContext?: any, priority?: number): SignalBinding;
|
||||
public addOnce(listener, listenerContext?: any, priority?: number): SignalBinding;
|
||||
public remove(listener, context?: any);
|
||||
public removeAll(): void;
|
||||
public getNumListeners(): number;
|
||||
public halt(): void;
|
||||
public dispatch(...paramsArr: any[]): void;
|
||||
public forget(): void;
|
||||
public dispose(): void;
|
||||
public toString(): string;
|
||||
}
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
/// <reference path="Signal.d.ts" />
|
||||
module Phaser {
|
||||
class SignalBinding {
|
||||
constructor(signal: Signal, listener, isOnce: bool, listenerContext, priority?: number);
|
||||
private _listener;
|
||||
private _isOnce;
|
||||
public context;
|
||||
private _signal;
|
||||
public priority: number;
|
||||
public active: bool;
|
||||
public params;
|
||||
public execute(paramsArr?: any[]);
|
||||
public detach();
|
||||
public isBound(): bool;
|
||||
public isOnce(): bool;
|
||||
public getListener();
|
||||
public getSignal(): Signal;
|
||||
public _destroy(): void;
|
||||
public toString(): string;
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
/// <reference path="Game.d.ts" />
|
||||
/// <reference path="system/Sound.d.ts" />
|
||||
module Phaser {
|
||||
class SoundManager {
|
||||
constructor(game: Game);
|
||||
private _game;
|
||||
private _context;
|
||||
private _gainNode;
|
||||
private _volume;
|
||||
public mute(): void;
|
||||
public unmute(): void;
|
||||
public volume : number;
|
||||
public decode(key: string, callback?, sound?: Sound): void;
|
||||
public play(key: string, volume?: number, loop?: bool): Sound;
|
||||
}
|
||||
}
|
||||
@@ -1,162 +0,0 @@
|
||||
/// <reference path="Game.ts" />
|
||||
/// <reference path="system/Sound.ts" />
|
||||
|
||||
/**
|
||||
* Phaser - SoundManager
|
||||
*
|
||||
* This is an embroyonic web audio sound management class. There is a lot of work still to do here.
|
||||
*/
|
||||
|
||||
module Phaser {
|
||||
|
||||
export class SoundManager {
|
||||
|
||||
/**
|
||||
* SoundManager constructor
|
||||
* Create a new <code>SoundManager</code>.
|
||||
*/
|
||||
constructor(game: Game) {
|
||||
|
||||
this._game = game;
|
||||
|
||||
if (game.device.webaudio == true)
|
||||
{
|
||||
if (!!window['AudioContext'])
|
||||
{
|
||||
this._context = new window['AudioContext']();
|
||||
}
|
||||
else if (!!window['webkitAudioContext'])
|
||||
{
|
||||
this._context = new window['webkitAudioContext']();
|
||||
}
|
||||
|
||||
if (this._context !== null)
|
||||
{
|
||||
this._gainNode = this._context.createGainNode();
|
||||
this._gainNode.connect(this._context.destination);
|
||||
this._volume = 1;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Local private reference to game.
|
||||
*/
|
||||
private _game: Game;
|
||||
|
||||
/**
|
||||
* Reference to AudioContext instance.
|
||||
*/
|
||||
private _context = null;
|
||||
|
||||
/**
|
||||
* Gain node created from audio context.
|
||||
*/
|
||||
private _gainNode;
|
||||
|
||||
/**
|
||||
* Volume of sounds.
|
||||
* @type {number}
|
||||
*/
|
||||
private _volume: number;
|
||||
|
||||
/**
|
||||
* Mute sounds.
|
||||
*/
|
||||
public mute() {
|
||||
|
||||
this._gainNode.gain.value = 0;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable sounds.
|
||||
*/
|
||||
public unmute() {
|
||||
|
||||
this._gainNode.gain.value = this._volume;
|
||||
|
||||
}
|
||||
|
||||
public set volume(value: number) {
|
||||
|
||||
this._volume = value;
|
||||
this._gainNode.gain.value = this._volume;
|
||||
|
||||
}
|
||||
|
||||
public get volume(): number {
|
||||
return this._volume;
|
||||
}
|
||||
|
||||
/**
|
||||
* Decode a sound with its assets key.
|
||||
* @param key {string} Assets key of the sound to be decoded.
|
||||
* @param callback {function} This will be invoked when finished decoding.
|
||||
* @param [sound] {Sound} its bufer will be set to decoded data.
|
||||
*/
|
||||
public decode(key: string, callback = null, sound?: Sound = null) {
|
||||
|
||||
var soundData = this._game.cache.getSound(key);
|
||||
|
||||
if (soundData)
|
||||
{
|
||||
if (this._game.cache.isSoundDecoded(key) === false)
|
||||
{
|
||||
var that = this;
|
||||
|
||||
this._context.decodeAudioData(soundData, function (buffer) {
|
||||
that._game.cache.decodedSound(key, buffer);
|
||||
|
||||
if (sound)
|
||||
{
|
||||
sound.setDecodedBuffer(buffer);
|
||||
}
|
||||
|
||||
callback();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Play a sound with its assets key.
|
||||
* @param key {string} Assets key of the sound you want to play.
|
||||
* @param [volume] {number} volume of the sound you want to play.
|
||||
* @param [loop] {boolean} loop when it finished playing? (Default to false)
|
||||
* @return {Sound} The playing sound object.
|
||||
*/
|
||||
public play(key: string, volume?: number = 1, loop?: bool = false): Sound {
|
||||
|
||||
if (this._context === null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var soundData = this._game.cache.getSound(key);
|
||||
|
||||
if (soundData)
|
||||
{
|
||||
// Does the sound need decoding?
|
||||
if (this._game.cache.isSoundDecoded(key) === true)
|
||||
{
|
||||
return new Sound(this._context, this._gainNode, soundData, volume, loop);
|
||||
}
|
||||
else
|
||||
{
|
||||
var tempSound: Sound = new Sound(this._context, this._gainNode, null, volume, loop);
|
||||
|
||||
// this is an async process, so we can return the Sound object anyway, it just won't be playing yet
|
||||
this.decode(key, () => tempSound.play(), tempSound);
|
||||
|
||||
return tempSound;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,47 +0,0 @@
|
||||
/// <reference path="Phaser.d.ts" />
|
||||
/// <reference path="Game.d.ts" />
|
||||
/// <reference path="system/StageScaleMode.d.ts" />
|
||||
/// <reference path="system/screens/BootScreen.d.ts" />
|
||||
/// <reference path="system/screens/PauseScreen.d.ts" />
|
||||
module Phaser {
|
||||
class Stage {
|
||||
constructor(game: Game, parent: string, width: number, height: number);
|
||||
private _game;
|
||||
private _bgColor;
|
||||
private _bootScreen;
|
||||
private _pauseScreen;
|
||||
static ORIENTATION_LANDSCAPE: number;
|
||||
static ORIENTATION_PORTRAIT: number;
|
||||
public bounds: Rectangle;
|
||||
public aspectRatio: number;
|
||||
public clear: bool;
|
||||
public canvas: HTMLCanvasElement;
|
||||
public context: CanvasRenderingContext2D;
|
||||
public disablePauseScreen: bool;
|
||||
public disableBootScreen: bool;
|
||||
public offset: Point;
|
||||
public scale: StageScaleMode;
|
||||
public scaleMode: number;
|
||||
public minScaleX: number;
|
||||
public maxScaleX: number;
|
||||
public minScaleY: number;
|
||||
public maxScaleY: number;
|
||||
public update(): void;
|
||||
private visibilityChange(event);
|
||||
private getOffset(element);
|
||||
public strokeStyle: string;
|
||||
public lineWidth: number;
|
||||
public fillStyle: string;
|
||||
public saveCanvasValues(): void;
|
||||
public restoreCanvasValues(): void;
|
||||
public backgroundColor : string;
|
||||
public x : number;
|
||||
public y : number;
|
||||
public width : number;
|
||||
public height : number;
|
||||
public centerX : number;
|
||||
public centerY : number;
|
||||
public randomX : number;
|
||||
public randomY : number;
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
/// <reference path="Game.d.ts" />
|
||||
module Phaser {
|
||||
class Time {
|
||||
constructor(game: Game);
|
||||
private _game;
|
||||
private _started;
|
||||
public timeScale: number;
|
||||
public elapsed: number;
|
||||
public time: number;
|
||||
public now: number;
|
||||
public delta: number;
|
||||
public totalElapsedSeconds : number;
|
||||
public fps: number;
|
||||
public fpsMin: number;
|
||||
public fpsMax: number;
|
||||
public msMin: number;
|
||||
public msMax: number;
|
||||
public frames: number;
|
||||
private _timeLastSecond;
|
||||
public update(): void;
|
||||
public elapsedSince(since: number): number;
|
||||
public elapsedSecondsSince(since: number): number;
|
||||
public reset(): void;
|
||||
}
|
||||
}
|
||||
@@ -1,193 +0,0 @@
|
||||
/// <reference path="Game.ts" />
|
||||
|
||||
/**
|
||||
* Phaser - Time
|
||||
*
|
||||
* This is the game clock and it manages elapsed time and calculation of delta values, used for game object motion.
|
||||
*/
|
||||
|
||||
module Phaser {
|
||||
|
||||
export class Time {
|
||||
|
||||
/**
|
||||
* Time constructor
|
||||
* Create a new <code>Time</code>.
|
||||
*
|
||||
* @param game {Phaser.Game} Current game instance.
|
||||
*/
|
||||
constructor(game: Game) {
|
||||
|
||||
this._started = 0;
|
||||
this._timeLastSecond = this._started;
|
||||
this.time = this._started;
|
||||
this._game = game;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Local private reference to game.
|
||||
*/
|
||||
private _game: Game;
|
||||
|
||||
/**
|
||||
* Time when this object created.
|
||||
* @param {number}
|
||||
*/
|
||||
private _started: number;
|
||||
|
||||
/**
|
||||
* Time scale factor.
|
||||
* Set it to 0.5 for slow motion, to 2.0 makes game twice faster.
|
||||
* @type {number}
|
||||
*/
|
||||
public timeScale: number = 1.0;
|
||||
|
||||
/**
|
||||
* Elapsed since last frame.
|
||||
* @type {number}
|
||||
*/
|
||||
public elapsed: number = 0;
|
||||
|
||||
/**
|
||||
* Game time counter.
|
||||
* @property time
|
||||
* @type {number}
|
||||
*/
|
||||
public time: number = 0;
|
||||
|
||||
/**
|
||||
* Time of current frame.
|
||||
* @property now
|
||||
* @type {number}
|
||||
*/
|
||||
public now: number = 0;
|
||||
|
||||
/**
|
||||
* Elapsed time since last frame.
|
||||
* @property delta
|
||||
* @type {number}
|
||||
*/
|
||||
public delta: number = 0;
|
||||
|
||||
/**
|
||||
*
|
||||
* @method totalElapsedSeconds
|
||||
* @return {Number}
|
||||
*/
|
||||
public get totalElapsedSeconds(): number {
|
||||
|
||||
return (this.now - this._started) * 0.001;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Frames per second.
|
||||
* @type {number}
|
||||
*/
|
||||
public fps: number = 0;
|
||||
|
||||
/**
|
||||
* Minimal fps.
|
||||
* @type {number}
|
||||
*/
|
||||
public fpsMin: number = 1000;
|
||||
|
||||
/**
|
||||
* Maximal fps.
|
||||
* @type {number}
|
||||
*/
|
||||
public fpsMax: number = 0;
|
||||
|
||||
/**
|
||||
* Mininal duration between 2 frames.
|
||||
* @type {number}
|
||||
*/
|
||||
public msMin: number = 1000;
|
||||
|
||||
/**
|
||||
* Maximal duration between 2 frames.
|
||||
* @type {number}
|
||||
*/
|
||||
public msMax: number = 0;
|
||||
|
||||
/**
|
||||
* How many frames in last second.
|
||||
* @type {number}
|
||||
*/
|
||||
public frames: number = 0;
|
||||
|
||||
/**
|
||||
* Time of last second.
|
||||
* @type {number}
|
||||
*/
|
||||
private _timeLastSecond: number = 0;
|
||||
|
||||
/**
|
||||
* Update clock and calculate the fps.
|
||||
* This is called automatically by Game._raf
|
||||
* @method update
|
||||
* @param {number} raf The current timestamp, either performance.now or Date.now
|
||||
*/
|
||||
public update(raf: number) {
|
||||
|
||||
this.now = raf; // mark
|
||||
//this.now = Date.now(); // mark
|
||||
this.delta = this.now - this.time; // elapsedMS
|
||||
|
||||
this.msMin = Math.min(this.msMin, this.delta);
|
||||
this.msMax = Math.max(this.msMax, this.delta);
|
||||
|
||||
this.frames++;
|
||||
|
||||
if (this.now > this._timeLastSecond + 1000)
|
||||
{
|
||||
this.fps = Math.round((this.frames * 1000) / (this.now - this._timeLastSecond));
|
||||
this.fpsMin = Math.min(this.fpsMin, this.fps);
|
||||
this.fpsMax = Math.max(this.fpsMax, this.fps);
|
||||
|
||||
this._timeLastSecond = this.now;
|
||||
this.frames = 0;
|
||||
}
|
||||
|
||||
this.time = this.now; // _total
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* How long has passed since given time.
|
||||
* @method elapsedSince
|
||||
* @param {number} since The time you want to measure.
|
||||
* @return {number} Duration between given time and now.
|
||||
*/
|
||||
public elapsedSince(since: number): number {
|
||||
|
||||
return this.now - since;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* How long has passed since give time (in seconds).
|
||||
* @method elapsedSecondsSince
|
||||
* @param {number} since The time you want to measure (in seconds).
|
||||
* @return {number} Duration between given time and now (in seconds).
|
||||
*/
|
||||
public elapsedSecondsSince(since: number): number {
|
||||
|
||||
return (this.now - since) * 0.001;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the start time to now.
|
||||
* @method reset
|
||||
*/
|
||||
public reset() {
|
||||
|
||||
this._started = this.now;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||