If your PNG files aren’t displaying with their transparent areas transparent, take a look at this post by Doug McCune. While it’s title is Problem with Transparent PNGs in Flex using @Embed, it also solved my problem which didn’t involve @Embed.

Simply stated, I couldn’t get transparency when trying to display a PNG in an Image component. Once I applied Doug’s solution, the problem disappeared.

It’s not clear why most PNGs work fine in Image but a few don’t. Doug seems to think that it may have something to do with how the PNG is encoded. In any case, Doug’s fix seems to remove the problem. Perhaps Adobe should incorporate his fix into the standard Image component.

On November 16th the Adobe Boston User Group is co-sponsoring a meeting organized by the New England Java Users Group featuring Christophe Coenraets.

I attended a presentation by Christophe in September and he was great, combining expert knowledge with excellent communication skills. I’m looking forward to this!

Please note that we’re requesting that you register if you plan to attend. See URL at bottom of post.

Here’s the text of the meeting announcement:

Rich Internet Applications with Flex and Ajax

Overview

In this session, Christophe Coenraets will spend the 1st hour giving an overview of how Ajax and Flex are being used to create “Rich Internet Applications”.

In the 2nd hour, Christophe will present a detailed overview of Flex, using live demonstrations to highlight five themes that can profoundly change the user experience of web applications: expressiveness (using vector graphics), real time (using binary sockets and pub/sub messaging), performance (using the new Flash VM), rich media, and offline data access.

The session will then focus specifically on how to integrate Flex with Java back ends:

  • How to access Java components in the middle-tier from a Flex application
  • How to integrate with JMS
  • How to push data from Java components to Flex applications
  • How to automatically synchronize data between the tiers of your application
  • How to integrate with existing Java infrastructure such as the Spring framework and Portals.

Bio:

Christophe Coenraets is a Senior Technical Evangelist at Adobe. He focuses on rich Internet applications and enterprise integration. Before joining Macromedia and Adobe, Christophe was the head of Java and J2EE Technical Evangelism at Sybase, where he started working on Java Enterprise projects in 1996. Before joining Sybase in the US, Christophe held different positions at Powersoft in Belgium, including Principal Consultant for PowerBuilder, and Manager of the Professional Services organization. Before joining Powersoft, Christophe worked as a developer and architect on several retail and BPM projects. Christophe has been a regular speaker at conferences worldwide for the last 10 years.

Additional information on Christophe and his topic can be found here:

For more information about the meeting, please go to:
http://www.nejug.org/next.jsp
The meeting will be held in the Executive Dining Room in the LaCava Center.
Directions to the campus and to the meeting room can be found on the meeting page – the LaCava Center is building #53 on the map

To register, please go to:
http://www.nejug.org/meetingRegistration.jsp

One of the best ways to learn what is happening in your application or in a tutorial is to run the app in debug mode, step through the code, and see what values your variables are holding, using FlexBuilder’s variable view.

For example you can see things like this:

Variable View - Image

In this example we’re looking at a snapshot of the Advanced view state as seen in the Use View States And Transitions tutorial.

What is even more exciting is that it’s easy to turn this into text, like this:

Variable View - Text

Why is this exciting? After all, it isn’t nearly as pretty… Well, it’s exciting for me because I’m in the process of annotating code. Obviously, if you’re adding comments to code, you’d prefer text. It’s also exciting because it’s easy to edit. Many objects hold hundreds of variables, most of which will hold no interest for you. One can simply delete lines and replace them with “(snip)” as I’ve done here:

Variable View - Snipped Text

How to get the text? It’s pretty simple once you know that it’s possible:

  • Run your app in debug mode with a breakpoint set.
  • Once you’ve hit the breakpoint and are in “code step-through” mode, maximize the Variables View for a much-expanded view of your variables.
  • Expand the variable you’re interested in (for example “states” in the image at the top of this post) and any of its component objects that are of interest (for example “overrides” above) – you’ll only get text for the components that are visible.
  • Select the top-level object (“states” in this example).
  • Press Control-C or, if you’re using the FlexBuilder plugin version, right click the selected variable and select “Copy Variables” from the context menu.
  • Paste the text into your favorite text editor. :-)