Oh but your so close. :)
Do you have a link to the results your getting?
All you want is red fire on a transparent background right?
I know that in PHP image creation, you have to set how the pixels blend as well after you get the color matrix.
EG: overlay, subtract, add, etc.
Is there maybe something missing here?
Blendmode?

also, if the pixels that are < gp are the ones you want transparent, would

if (_bitmapFlag == true && gp < 1050112)
                {
                    _redArray.push(gp);
                    _alphaArray.push(0);
                    _greenArray.push(0);
                    _blueArray.push(0);
                } else if (_bitmapFlag == false && gp < 1050112) {
                    _redArray.push(255);
                    _alphaArray.push(0);
                    _greenArray.push(gp);
                    _blueArray.push(gp);
                } else {
                    _redArray.push(255);
                    _alphaArray.push(0);
                    _greenArray.push(0);
                    _blueArray.push(0);
                }

work?

Karl


On Sep 9, 2010, at 7:47 AM, George Jones wrote:


From: [email protected]
Subject: Re: [Flashcoders] Impossible?
Date: Thu, 9 Sep 2010 07:39:51 -0500
To: [email protected]

Sorry, didn't see your comment at the bottom.

Yeah. I'm about ready to throw in the towel on this one. I don't think it's possible.
George


Karl


On Sep 9, 2010, at 7:28 AM, George Jones wrote:


From: [email protected]
Subject: Re: [Flashcoders] Impossible?
Date: Wed, 8 Sep 2010 16:18:36 -0500
To: [email protected]


On Sep 8, 2010, at 1:15 PM, George Jones wrote:

  if (gp < 1050112)
                {
                    _redArray.push(0);
                    _alphaArray.push(255);
                    _greenArray.push(0);
                    _blueArray.push(255);



Shouldn't this be
  _blueArray.push(0);

and only alphaArray should be set to 255?
That may be why your getting a blue background.

First up, I fixed the flame coming back. As I supposed, that was
easy. The problem remains with making the background disappear.
I've reworked the code some:

                gp = _fireColor.getPixel(i, 0);
                if (_bitmapFlag == true && gp < 1050112)
                {
                    _redArray.push(255);
                    _alphaArray.push(0);
                    _greenArray.push(255);
                    _blueArray.push(255);
                } else if (_bitmapFlag == false && gp < 1050112) {
                    _redArray.push(gp);
                    _alphaArray.push(0);
                    _greenArray.push(255);
                    _blueArray.push(255);
                } else {
                    _redArray.push(gp);
                    _alphaArray.push(0);
                    _greenArray.push(0);
                    _blueArray.push(0);
                }

I've changed the if statement. Values of gp less than 1050112 are
that which are not the flame, therefore are the background which
should be set to alpha=0. When _bitmapFlag == true, then it's the
mask that's being painted; otherwise, the sprite being masked (the
else if statement). The final else statement is for the flame
itself. Interestingly, changing the value of either the blue, green
or alpha of that final else statement to 255 gives a blue flame
with white border and very attractive, though not what I want. I
wonder why changing the alpha especially would have that effect.

I guess what I'm not clear about is the values I'm pushing. If I push
255 for the red, green and blue arrays, does that result in white?
If I
push 0 for alpha, is that the same as alpha=0 or alpha=1?



Here again is the code for building the sprites:

        private function _onLoadedAll(e:Event):void
        {
            _onLoadedContent(e, _bitmapFlag = false);
            _onLoadedContent(e, _bitmapFlag = true);
        }

        private function _onLoadedContent(e:Event,
_bitmapFlag:Boolean):void {
            _fireColor = Bitmap(LoaderInfo
(e.target).loader.content).bitmapData;
...
            if (_bitmapFlag == false)
            {
                _fire = new BitmapData(865, 92, _bitmapFlag,
0xffffff);
                addChild(new Bitmap(_fire));
                _fireSprite.addChild(new Bitmap(_fireMask));
                addChild(_fireSprite);
                _fireSprite.mask = _fireMaskSprite;
                _fireSprite.cacheAsBitmap = true;
            } else {
                _fireMask = new BitmapData(865, 92, _bitmapFlag,
0xffffff);
                _fireMaskSprite.addChild(new Bitmap(_fireMask));
                addChild(_fireMaskSprite);
                _fireMaskSprite.cacheAsBitmap = true;
            }

I'm wondering now if this is possible, to mask the flame only and
let the background show.


The following combinations give me a blue background and flame:

                if (gp < 1050112)
                {
                    _redArray.push(255);
                    _alphaArray.push(0);
                    _greenArray.push(255);
                    _blueArray.push(255);

                if (gp < 1050112)
                {
                    _redArray.push(0);
                    _alphaArray.push(255);
                    _greenArray.push(0);
                    _blueArray.push(255);

                if (gp < 1050112)
                {
                    _redArray.push(0);
                    _alphaArray.push(255);
                    _greenArray.push(255);
                    _blueArray.push(255);

                if (gp < 1050112)
                {
                    _redArray.push(255);
                    _alphaArray.push(255);
                    _greenArray.push(255);
                    _blueArray.push(255);

This gives me a black background:

                if (gp < 1050112)
                {
                    _redArray.push(0);
                    _alphaArray.push(255);
                    _greenArray.push(0);
                    _blueArray.push(0);

TIA,
George
                                          
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Karl DeSaulniers
Design Drumm
http://designdrumm.com

_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
                                          
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Karl DeSaulniers
Design Drumm
http://designdrumm.com

_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to