Adobe Flex 3: Training from the Source Errata (ISBN 0-321-52918-9)
This page contains a list of known issues, in addition to user reported issues that are still being investigated.
| Lesson 2 |
|
Page 18
|
Issue - Step 3 - Default output folder listed incorrectly under "Creating a Project and an MXML Application"
|
|
Solution - The default output folder is listed as "bin-default" when it should be "bin-debug":
'3. Leave the output folder for the Compiled Flex application as bin-default. Then click Next.
At this time, there is no need to change this default.'
|
|
Page 29
|
Issue - Step 13 - References to labels on buttons are incorrect
|
|
Solution - Change the reference to the "Yes" button to "Continue" and the "No" button to "Cancel".
|
| Lesson 3 |
|
Page 41
|
Issue - Step 3 - A light gray bar should stretch across the top of the page once the ApplicationControlBar is placed. Instead, the bar is the default blue-gray gradient :
|
|
Solution - The color of the ApplicationControlBar can be changed manually by utilizing the Fill property in the Style menu in Design Mode.
|
|
Page 52
|
Issue - Typo under "Using Enhanced Constraint Sizing Options" the second paragraph, second sentence uses "than" instead of "that":
|
|
Solution - Just as normal constraints must be used in containers that allow absolute positioning (Canvas, Panel, Module, and Application), so must enhanced constraints. Enhanced constraints divide a container's space into rows and columns than can then be used to position other components constrained to those row and column boundaries. You define horizontal regions using the ConstraintRow class and vertical regions using the ConstraintColumn class.
|
|
Page 54
|
Issue - Typo under "Using Enhanced Constraint Sizing Options" the second paragraph, underneath the first bulleted list, misspells "minWidth":
|
|
Solution - When using percent- or content-sized columns or rows, you can control how the regions grow and shrink by specifying minimum and maximum sizes with the minHeight, minWidht, maxHeight and maxWidth properties.
|
|
Page 64
|
Issue - Reference to target attribute should actually be relativeTo
|
|
Solution - In the first tip on that page, the second line sentence should start "The relativeTo attribute" instead of "The target attribute".
|
| Lesson 4 |
|
Page 75
|
Issue - Typo under "Building a Detail View" :
|
|
Solution - You want the product description to appear when the user rolls the pointer over dairy_milk.jpg image
|
|
Page 86-87
|
Issue - Steps 5-6 - The "data" property of a RadioButton is not valid in Flex 3. :
|
|
Solution - Replace "data" with "value" in the RadioButton component code.
|
| Lesson 5 |
|
Page 100
|
Issue - Step 17 - Misleading wording under "Using Data from the Event Object" :
|
|
Solution - "It is possible to have one debugging session running inside another" suggests that debugging sessions can somehow be nested. "Inside" should be changed to "alongside".
|
|
Page 101
|
Issue - Typo under "Building a Custom ActionScript Class" :
|
|
Solution - "EventTest.mxml" is typed as "EventText.mxml".
|
| Lesson 6 |
|
Page 117
|
Issue - HTTPService url property missing quotes :
|
|
Solution - The code:
<mx:HTTPService id="unitData"
url=http://www.flexgrocer.com/unitData.xml
result="resultHandler(event)"/>
should have the url=<value> in double quotes.
e.g.
<mx:HTTPService id="unitData"
url="http://www.flexgrocer.com/unitData.xml"
result="resultHandler(event)"/>
|
|
Page 129
|
Issue - Possible XML parser issue :
|
|
Solution - a new Version of the e4x parser will be posted shortly.
|
|
Page 129
|
Issue - Word change under "Understanding E4X Operators" :
|
|
Solution - Tip under Step 8:
'When using E4X expressions, the root node (in this case category) is not used in statements.'
Should read:
'When using E4X expressions, the root node (in this case catalog) is not used in statements.'
|
|
Page 138
|
Issue - Step 18 - Bracket missing under "Populating a Tree control with XML data" :
|
|
Solution - Under this heading, if statement is missing a left bracket:
private function populateForm(event:Event):void{
var selectedNode:Object=event.target.selectedItem;
if(selectedNode.@prodName != undefined)
} else {
resetForm();
}
}
|
|
Page 141
|
Issue - The diagram gives the following approach to what will be performed: xml > http service > "ArrayCollection" of generic objects > loop > "ArrayCollection" while the actual implementation has an approach of xml > http service > "array" of generic objects > loop > "array" of value objects > transform array into "array collection" :
|
|
Solution - The XML code example is the correct way to think of how the tasks in this lesson are performed.
|
|
Page 158
|
Issue - Step 3 Errant use of CamelCase under "Updating the Quantity if the Item is Already in the Cart" :
|
|
Solution - The description of the code calls the recalc() method reCalc().
|
| Lesson 7 |
|
Page 171
|
Issue - Step 1 - Possible issues under "Creating an Update/Delete Product Component and Instantiating It" :
|
|
Solution - "Could not resolve <v:UpdateDeleteProd> to a component implementation. FlexGrocer/src DataEntry.mxml" "1046: Type was not found or was not a compile-time constant: XMLListCollection. FlexGrocer/src/views/dataEntry UpdateDeleteProd.mxml line 14". Ensure that when following the instructions in Step 1 that upon creation of the "views" and "dataEntry" folders that the directory views > dataEntry is under the "src" folder.
|
| Lesson 11 |
|
Page 281
|
Issue - Incorrect namespace under "Adding a Generic DataGrid to ChartPod" :
|
|
Solution - Currently reads '2. Below the beginning <mx:MaxRestorePanel> tag, place an <mx:Script> block to enable you to declare attributes that can be passed into the component.
Should read <v:MaxRestorePanel>
|
|
Page 294
|
Issue - Step 5 - Typo in TIP section
|
|
Solution - Should read "As an alternative to the as operator..."
|
| Lesson 12 |
|
Page 343
|
Issue - Step 18 - The call, imageProxy.load("../assets"+groceryItem.imageName); is incorrect. :
|
|
Solution - Change the call to imageProxy.load("/assets"+groceryItem.imageName);
|
| Lesson 15 |
|
Page 397
|
Issue - Step 2 - When instructed to run the History Management application, an error may occur at runtime if Internet Explorer is used :
|
|
Solution - Internet explorer imposes some additional security constraints when executing JavaScript that Firefox does not. So, the history management will function if the files are being served from a web server, but not if they are being executed on a local file system.
|
| Lesson 16 |
|
Page 433
|
Issue - Page 433 - Potentially missing property declaration under "Skinning Components" :
|
|
Solution - In the image at step 15, the "Add to Cart" button also has the style applied to it, but that step is covered in the book. open GroceryDetail.mxml and ADD styleName="homePageButton" to the button with the id of add.
|
|
Solution - Change "Filet mingeon" to "Filet Mignon"
|
| Lesson 23 |
|
Page 580
|
Issue - Step 7 - SortingADG.mxml is the incorrect file to choose as the main application file. :
|
|
Solution - Use PrintingTask1.mxml as the main application file instead.
|
|
|