Code from Chapter 7
Example A-1. Space Raiders with optimized dynamic network sound and state loader
<!doctype html>
<html
lang=
"en"
>
<head>
<meta
charset=
"UTF-8"
>
<title>
CH7EX9: Space Raiders With Optimized Dynamic Network Sound And State Loader</title>
<
script
src
=
"modernizr.js"
><
/script>
<
script
type
=
"text/javascript"
>
window
.
addEventListener
(
'load'
,
eventWindowLoaded
,
false
);
function
eventWindowLoaded
()
{
canvasApp
();
}
function
supportedAudioFormat
(
audio
)
{
var
returnExtension
=
""
;
if
(
audio
.
canPlayType
(
"audio/ogg"
)
==
"probably"
||
audio
.
canPlayType
(
"audio/ogg"
)
==
"maybe"
)
{
returnExtension
=
"ogg"
;
}
else
if
(
audio
.
canPlayType
(
"audio/wav"
)
==
"probably"
||
audio
.
canPlayType
(
"audio/wav"
)
==
"maybe"
)
{
returnExtension
=
"wav"
;
}
else
if
(
audio
.
canPlayType
(
"audio/mp3"
)
==
"probably"
||
audio
.
canPlayType
(
"audio/mp3"
)
==
"maybe"
)
{
returnExtension
=
"mp3"
;
}
return
returnExtension
;
}
function
canvasSupport
()
{
return
Modernizr
.
canvas
;
}
function
canvasApp
()
{
var
STATE_INIT
=
10
;
var
STATE_LOADING
=
20
;
var
STATE_RESET
=
30
;
var
STATE_PLAYING
=
40
;
var
appState
=
STATE_INIT
;
var
loadCount
=
0
;
var
itemsToLoad
=
0
;
var
alienImage
=
new
Image
();
var
missileImage
=
new
Image
();
var
playerImage
=
new
Image
();
var
SOUND_EXPLODE
=
"explode1"
;
var
SOUND_SHOOT
=
"shoot1"
;
var
MAX_SOUNDS
=
6
;
var
soundPool
=
new
Array
();
var
explodeSound
;
var
explodeSound2
;
var
explodeSound3
;
var
shootSound
;
var
shootSound2
;
var
shootSound3
;
var
audioType
;
var
mouseX
;
var
mouseY
;
var
player
=
{
x
:
250
,
Get HTML5 Canvas, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.