Adobe AIR Error 104 and 105 FileType

I have discovered that most AIR ‘Build Project’ errors are related to a malformed yourapp-app.xml file. Such is the case with the 105 Error of the FileType variety.

Error 105

I created an AIR app that would support my own File Type extension (mime type). In the fileType’s ‘name’ node, I put ‘My Custom App’. Seemed reasonable since the template comments stated ‘The name that the system displays for the registered file type. Required.

Turns out that the ‘name’ needs to be space-free and separated by dots:

<name>My.Custom.App</name>

Error 104

In the case of the 104 Error, I uncommented the ‘contentType’ and entered the mime type (which was text/xml in my case).

<contenttype>text/xml</contenttype>

Hope this saves someone some time and aggravation.

Flex CSS LinkBar ToggleButtonBar Selected Text Color

Wouldn’t any reasonable coding human assume textSelectedColor to be the color of the text of the selected button in a Flex LinkBar or ToggleButtonBar?

After trying every possible ‘selected’ or ‘active’ CSS tag know to man (actually to Flex), and tracking down every possible path of  inheritance, I embraced one of my coding standards: counter-intuitive measures often prevail over reasonable assumptions.

To my dismay, disabledColor was the ticket. It has nothing to do with the selected state and unlike textRolloverColor and textSelectedColor, it has no mention of ‘text’!

So if I had been smart enough to assume that a selected button is actually disabled, I would have been fine. So when you want to dress up your selected button in your LinkBar/ToggleButtonBar with all kinds of nice-nices, just remember that LinkBar and ToggleButtonBar buttons operate like politicians – just because you’ve been selected does not imply that you’re enabled.

LinkButton
{
textRollOverColor: #006699;
textSelectedColor: #003366;
/* Yes, this one controls the selected button's text color */
disabledColor: #0099cc;

/*Use DownSkin for Disabled to simulate Active/Selected Button */
disabledSkin: Embed(source="theme1.swf", symbol="LinkButton_downSkin");
downSkin: Embed(source="theme1.swf", symbol="LinkButton_downSkin");
overSkin: Embed(source="theme1.swf", symbol="LinkButton_overSkin");
upSkin: Embed(source="theme1.swf", symbol="LinkButton_upSkin");
font-size: 14;
font-weight: bold;
}