Errata

Essential ActionScript 3.0

Errata for Essential ActionScript 3.0

Submit your own errata for this product.

The errata list is a list of errors and their corrections that were found after the product was released. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled "Date Corrected".

The following errata were submitted by our customers and approved as valid errors by the author or editor.

Color key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update

Version Location Description Submitted By Date submitted Date corrected
Printed
Page p 565
Last paragraph before the Input Events Table

"Table 22-4 lists Flash Player's built in text input fsevent types"

"fsevent" should be "event"

Note from the Author or Editor:
Page 565, last prose paragraph, first sentence. Change "fsevent" to "event".

Anonymous  Oct 03, 2008  Jul 01, 2009
Printed
Page 25
top of last paragraph

Where the book states 'Using the preceding generalized parameter code is a guide...', shouldn't the 'is' be 'as'?

Anonymous    Aug 01, 2007
Printed
Page 37
3rd paragraph

Error found in the printed 1st edition (august 2007).

I'm not sure if this is the correct type or clasification for this error, but here it goes:

The 3rd paragraph states:

"Failure to supply a constructor argument for the required parameter causes an error..."

I found the previous text confusing as the heading for the section is "Method Parameters and Arguments", and the Constructor Parameters and Arguments are covered 6 sections earlier in page 24.

In fact the 3rd paragraph on page 25 up the first period is exactly the same as the one I found the error on. It appears as some copy-paste was left without revision...

BTW, so far I'm very pleased with the book, kudos!

Note from the Author or Editor:
Page 37, second prose paragraph. Change "Failure to supply a constructor" to "Failure to provide a method"

Anonymous  Sep 11, 2008  Jul 01, 2009
Printed
Page 74
immediately following the beartrap warning

1) After the beartrap warning, remove everything from "When a set method is called" up to and including "tarnish the counter's record keeping". (I.e., remove two paragraphs and one code block).

2) Change the style of the last note on the page from Note style to regular prose text (the note reads "A get/set pseudo-variable can be...").

Colin Moock
Colin Moock
 
Nov 17, 2008  Jul 01, 2009
Printed
Page 109
second prose paragraph

Directly after "Finally, super must not be used twice in a constructor method", add the following sentence, in O'Reilly's "Bear Trap" format.

"Due to a bug, in Flash Player 9 and Flash Player 10 ActionScript does not actually enforce the requirement that the superclass constructor invocation must occur before instance method and instance variable access. Adobe expects to fix this bug in the future."

Note from the Author or Editor:

Colin Moock
Colin Moock
 
Nov 17, 2008 
Printed
Page 119
Paragraph 2 (and possibly paragraph 1 as well)

In the second paragraph, there are two unended quotes:
"Has-A
and
"Uses-A
These should both have ending quotation marks.

Furthermore, if this is the style for the introduction of these terms, then the first paragraph on page 119 should wrap the first occasion of "Is-A" in quotation marks, which it does not currently do.

Anonymous    Aug 01, 2007
Printed
Page 129
Last sentence

"that you precede to the next chapter"

should read

"that you proceed to the next chapter"

Note from the Author or Editor:
the reader is correct. please fix.

Anonymous  Jul 19, 2008  Sep 01, 2008
Printed
Page 164
Interface Inheritance

Second sentence of the paragraph turns upside down the relation between IntA and IntB:

"...For example , the following code shows an interface, IntA that extends another interface IntB..."

Code following is:

public interface IntB extends IntA{...}

Note from the Author or Editor:
p. 164, First paragraph after heading "Interface Inheritance", second sentence.

Change:
"IntA, that extends another interface, IntB"

To:
"IntB, that extends another interface, IntA"

Anonymous  Jul 15, 2008  Jul 01, 2009
Printed
Page 290
code in the middle of the page

About "Using function to create Object".
I place the following code in the first frame of .fla,
IDE: FLASH CS3 PROFESSIONAL Version 9.0
-------------------------------------------------------
function Employee(age,salary)
{
this.age=age;
this.salary=salary;
}

var worker=new Employee(27,27000);
trace(worker.age);
-------------------------------------------------------
It throws this error:
1048: Method cannot be used as a constructor.
-------------------------------------------------------
As far as I know
Problem resides in Employee function, which is placed as a dynamicaly attached method on the main MovieClip.
It should be instead a variable whose value is a function.
--------------------------------------------------------
My Solution
Write Employee as a variable passing a function literal as value:

var Employee=function(age,salary)
{
this.age=age;
this.salary=salary;
}

var worker=new Employee(27,27000);
trace(worker.age);
----------------------------------------------------------

This way we have the correct output: '27'.

Note from the Author or Editor:
page 290. second paragraph. replace everything from (and including) the second sentence to the end of the paragraph with the following:

In ActionScript 3.0, standalone functions declared at the package-level or in frame scripts cannot be used as constructor functions. Hence, the preceding code would be legal within a method or a function, or outside of a package statement only. To create a constructor function that is legal in a frame script in the Flash authoring tool, define an anonymous function and assign it to a variable, as shown in the following code:

var Employee:Function = function () {
};

For the sake of code clarity, the remainder of this section uses regular function definitions to create constructor functions.

Anonymous    Jul 01, 2009
Printed
Page 354
Last paragraph of the page

Commenting the xml fragment, the presence of whitespace node, the second sentence of the last paragraph of the page declare, there is a little imprecision:

"For Example, we say that <TITLE>'s next sibling is a whitespace node, and <AUTHOR>'s previous sibling is another whitespace node".

BOOK __|__whitespace
|__<TITLE>__"Ulysses"
|__whitespace
|__<AUTHOR>__"James Joyce"
|__...

Actually, looking at the xml hierarchy, <TITLE>'s next sibling and <AUTHOR>'s previous sibling are the same node, not the first other than the second one.

Note from the Author or Editor:
p 354. last paragraph. second sentence.

change "is another whitespace node" to "is also a whitespace node"

Anonymous  Aug 08, 2008  Jul 01, 2009
Printed
Page 477
3rd code block

change:
for (;numChildren > 0;) {

to:
for (;theParent.numChildren > 0;) {

Colin Moock
Colin Moock
 
Jun 20, 2008  Sep 01, 2008
Printed
Page 477
Removing All Children, 2nd paragraph

You note that removing all children from the display list is more efficiently done from the bottom up, but don't explain why. An explanation would be helpful since this is somewhat counterintuitive--removing from the bottom, forcing all the others to "shift down" a position would seem to be more costly than deleting top-down, where no such shifting is required. Also, 10 pages later when you describe deleting all Stage children, the code sample uses the top-down syntax, further confusing matters on which is preferred.

Note from the Author or Editor:
p. 477. paragraph 3. Sentence 2.

change:
"from the bottom up"

to:
"from the bottom up (due to the repeated access of numChildren)"

Anonymous  Jul 21, 2008  Jul 01, 2009
Printed
Page 581
table 22-5, "Bubbles" column

The word "Yes" in the "Bubbles" column should be changed to "No" in all four cases.

Note from the Author or Editor:
This erratum is valid. Please make the change as described.

Colin Moock
Colin Moock
 
Sep 20, 2008  Jul 01, 2009
Printed
Page 621
Example 24-6

line 2 of the example should be changed from:

import flash.display.TextField;

to:

import flash.text.TextField;

Colin Moock
Colin Moock
 
Oct 21, 2008  Jul 01, 2009
Printed
Page 630
5th paragraph - lineSyle() signature

In the first line of the signature "lineStyle(thickness:Number = 1.0," 1.0 should be NaN.

Note from the Author or Editor:
page 630. second code block.

change:
lineStyle(thickness:Number = 1.0,

to:
lineStyle(thickness:Number = NaN,

Anonymous  Jan 10, 2009  Jul 01, 2009
Printed
Page 631
First two lines of the page

The following code sets the line style 2 pixel thick, 50% trasparent green:
canvas.graphics.lineStyle(2,0x00FF00,50)

Alpha parameter should be .5, so:
canvas.graphics.lineStyle(2,0x00FF00,.5)

Note from the Author or Editor:
First line of code. change:

canvas.graphics.lineStyle(1, 0x00FF00, 50);

to this:
canvas.graphics.lineStyle(1, 0x00FF00, .5);

(50 becomes .5)

Anonymous  Oct 03, 2008  Jul 01, 2009
Printed
Page 794
3rd code block, last line

The following code as written in the book will generate an 'Implicit coercion...' Error in Flex 3.

var ModuleClass:Class = appDomain.getDefinition(ModuleClassName);

It should be written:

var ModuleClass:Class = appDomain.getDefinition(ModuleClassName) as Class;

Note from the Author or Editor:
p794. 3rd code block.
Change:
someApplicationDomain.getDefinition("SomeClassName")

To:
Class(someApplicationDomain.getDefinition("SomeClassName"))

then, in the 4th code block.

Change:
appDomain.getDefinition(ModuleClassName)

To:
Class(appDomain.getDefinition(ModuleClassName))

Anonymous  Jul 16, 2008  Jul 01, 2009
Printed
Page 885
5th line of code from the top

private var petDead:Loader; // The pet in its alive state

"alive" should be "dead".

Colin Moock
Colin Moock
 
Jul 02, 2010