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.
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 |
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 |
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 |
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 |
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 |
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 |
Jul 02, 2010 |
|