13.08.2012 Views

ACTIONSCRIPT 3 Developer’s Guide en

ACTIONSCRIPT 3 Developer’s Guide en

ACTIONSCRIPT 3 Developer’s Guide en

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>ACTIONSCRIPT</strong> 3.0 DEVELOPER’S GUIDE<br />

Mouse input<br />

private function g<strong>en</strong>erateBoard(startX:Number, startY:Number, totalRows:Number,<br />

totalCols:Number, buttonSize:Number):void<br />

{<br />

buttons = new Array();<br />

var colCounter:uint;<br />

var rowCounter:uint;<br />

for (rowCounter = 0; rowCounter < totalRows; rowCounter++)<br />

{<br />

for (colCounter = 0; colCounter < totalCols; colCounter++)<br />

{<br />

var b:Button = new Button();<br />

b.x = startX + (colCounter*buttonSize);<br />

b.y = startY + (rowCounter*buttonSize);<br />

b.addEv<strong>en</strong>tList<strong>en</strong>er(MouseEv<strong>en</strong>t.CLICK, letterClicked);<br />

b.label = getRandomLetter().toUpperCase();<br />

b.setSize(buttonSize,buttonSize);<br />

b.name = "buttonRow"+rowCounter+"Col"+colCounter;<br />

addChild(b);<br />

}<br />

}<br />

}<br />

buttons.push(b);<br />

Although a list<strong>en</strong>er is added for a MouseEv<strong>en</strong>t.CLICK ev<strong>en</strong>t on only one line, because it is in a for loop, it is assigned<br />

to each Button instance. Also, each button is assigned a name derived from its row and column position, which<br />

provides an easy way to refer<strong>en</strong>ce the row and column of each button later in the code.<br />

Building words from user input<br />

Flash Player 9 and later, Adobe AIR 1.0 and later<br />

Words can be spelled by selecting letters that are vertically or horizontally adjac<strong>en</strong>t, but never using the same letter<br />

twice. Each click g<strong>en</strong>erates a mouse ev<strong>en</strong>t, at which point the word the user is spelling must be checked to <strong>en</strong>sure it<br />

properly continues from letters that have previously be<strong>en</strong> clicked. If it is not, the previous word is removed and a new<br />

one is started. This check occurs in the isLegalContinuation() method.<br />

private function isLegalContinuation(prevButton:Button, currButton:Button):Boolean<br />

{<br />

var currButtonRow:Number = Number(currButton.name.charAt(currButton.name. indexOf("Row") +<br />

3));<br />

var currButtonCol:Number = Number(currButton.name.charAt(currButton.name.indexOf("Col") +<br />

3));<br />

var prevButtonRow:Number = Number(prevButton.name.charAt(prevButton.name.indexOf("Row") +<br />

3));<br />

var prevButtonCol:Number = Number(prevButton.name.charAt(prevButton.name.indexOf("Col") +<br />

3));<br />

}<br />

return ((prevButtonCol == currButtonCol && Math.abs(prevButtonRow - currButtonRow)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!