Just to follow up, here's my post that explains the issue and my
workaround:
http://dougmccune.com/blog/2007/01/31/problem-with-transparent-pngs-in-flex-using-embed/
Doug
Pan Troglodytes wrote:
Doug,
Very cool that you tracked it down in SWFLoader. Right now I can get
by with using GIF, but it's great to know if I absolutely have to have
more than 256 colors I can use your code. Hopefully Adobe is
following this thread. Either that, or they already tracked it down
and have it fixed internally but just never read my posts. ;)
On 1/31/07, *Doug McCune* <[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>> wrote:
You're definitely right, that's a clear bug in how SWFLoader
works. I have a solution that involves duplicating the code for
SWFLoader and modifying it a little bit. What's interesting is
that in the Design view of FB, the PNG has perfect transparency in
both cases. But in the published SWF, the transparency is not
preserved when using @Embed.
I will be writing up a blog post and my solution later today.
For now, here's a sample of the problem with a working solution.
I'll be writing up the description of what I had to do (obviously
it's not much since it didn't take very long). So if you want to
check out the code before I write up the post, the important part
has to do with setting the mimeType of the embedded asset, and
then in the modified SWFLoader code, check out around line 1217 in
the loadContent method. It uses loadBytes of the Loader class to
load the bytes of the embedded asset.
http://dougmccune.com/flex/png_test/
<http://dougmccune.com/flex/png_test/>
(right click to View Source)
Doug
Pan Troglodytes wrote:
Could you clarify what you mean by "works for me"? Do you mean
you are getting transparency on the PNG?
I uploaded my full code for an example:
http://three.fsphost.com/flex2/png/PNGBug.html
<http://three.fsphost.com/flex2/png/PNGBug.html>
Just right-click to view the source.
They both use the same png file. The first one renders with an
olive background (the original background color of the image).
The second renders the transparency properly.
Does this work differently under Flex/Flash Player for you?
On 1/31/07, *ben.clinkinbeard* <[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>> wrote:
<mx:Image source="@Embed(source='plusSymbol.png')"/> orks for
me...
Not sure what else to recommend.
--- In [email protected]
<mailto:flexcoders%40yahoogroups.com>, "Pan Troglodytes"
<[EMAIL PROTECTED]> wrote:
>
> Sadly, no. It also doesn't work if you declare a variable like
>
> [Embed(source="/assets/user-big.png")] private var
userIcon:Class;
>
>
> FYI, from the docs:
>
> About the source parameter
>
> In almost all cases, you must specify the source parameter
or nothing is
> embedded.
>
> The source parameter is the default parameter of the [Embed]
metadata tag;
> therefore, if you are not specifying any other parameters,
you can just
> supply its value without explicitly including the parameter
name or
> assigning it the desired value
>
>
> On 1/31/07, ben.clinkinbeard <[EMAIL PROTECTED]> wrote:
> >
> > According to the docs, the correct syntax is:
> >
> > <mx:Image source="@Embed(source='assets/user-big.png')"/>
> >
> > Does that work?
> >
> > HTH,
> > Ben
> >
> > --- In [email protected]
<mailto:flexcoders%40yahoogroups.com>
<flexcoders%40yahoogroups.com <http://roups.com>>, "Pan
> > Troglodytes"
> > <chimpathetic@> wrote:
> > >
> > > This is still a problem. I couldn't remember if I
entered it in the
> > Adobe
> > > bug page, so I just went ahead and did it. This is a bit
of a
pain as
> > > transparent icons are very important in GUIs. GIF works
fine but is
> > limited
> > > to 256 colors.
> > >
> > >
> > >
> > > On 12/6/06, Pan Troglodytes <chimpathetic@> wrote:
> > > >
> > > > I've run into a situation where the exact same PNG
file will show
> > up as
> > > > transparent only when it's not embedded. Here is the mxml:
> > > >
> > > > <mx:Image source="@Embed('assets/user-big.png')"/>
> > > > <mx:Image source="assets/user- big.png"/>
> > > >
> > > > Including both images on the page, the first is
missing the
> > transparent
> > > > background. The second is fine. I have manually
checked the
> > images, both
> > > > in the dev directory and bin directory. In fact, I
have manually
> > copied the
> > > > dev ones over the top of the bin ones to make sure. If
I drag the
> > images to
> > > > Firefox, both appear with no background. The
background color is
> > teal, so I
> > > > would definitely notice.
> > > >
> > > > Near as I can tell, the embed is causing the background
> > transparency to
> > > > not be processed. I can't find anything in the docs
saying this
> > is expected
> > > > behavior.
> > > >
> > > > --
> > > > Jason
> > >
> > >
> > >
> > >
> > > --
> > > Jason
> > >
> >
> >
> >
>
>
>
> --
> Jason
>
--
Jason
--
Jason