Re: [Flashcoders] Converting hex colour numbers back and forth
I usually don't use parseInt for this purpose I usually just cast it as a uint. i.e. uint(c); would work as well. glad you figured it out. - Taka On Tue, Feb 10, 2009 at 5:54 AM, ali drongo wrote: > Thanks everyone, Juan, you solved the final part of the puzzle and Muzak > thanks for your utility class it's very useful. > Cheers again! > Ali > > On Tue, Feb 10, 2009 at 1:13 PM, Muzak wrote: > >> Maybe this will help? >> http://muzakdeezign.com/flex3/flex3lib/ColorUtil.zip >> >> //docs >> >> http://muzakdeezign.com/flex3/flex3lib/docs/com/muzakdeezign/flex/utils/ColorUtil.html >> >> regards, >> Muzak >> >> - Original Message - From: "ali drongo" >> To: "Flash Coders List" >> Sent: Monday, February 09, 2009 6:26 PM >> Subject: [Flashcoders] Converting hex colour numbers back and forth >> >> >> Hi there, I'm saving a bunch of colours as a string then using this string >>> later to colour objects in the same way. Something is going wrong though >>> as >>> the colours I am getting back are not the same as the ones I put in. >>> If anyone could point out where I'm going wrong I'd be really grateful, >>> I've >>> googled this and and have checked the help files and as far as I can see >>> it's correct (though obviously it isn't!). >>> >>> >> ___ >> Flashcoders mailing list >> [email protected] >> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders >> > ___ > Flashcoders mailing list > [email protected] > http://chattyfig.figleaf.com/mailman/listinfo/flashcoders > ___ Flashcoders mailing list [email protected] http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Converting hex colour numbers back and forth
Thanks everyone, Juan, you solved the final part of the puzzle and Muzak thanks for your utility class it's very useful. Cheers again! Ali On Tue, Feb 10, 2009 at 1:13 PM, Muzak wrote: > Maybe this will help? > http://muzakdeezign.com/flex3/flex3lib/ColorUtil.zip > > //docs > > http://muzakdeezign.com/flex3/flex3lib/docs/com/muzakdeezign/flex/utils/ColorUtil.html > > regards, > Muzak > > - Original Message - From: "ali drongo" > To: "Flash Coders List" > Sent: Monday, February 09, 2009 6:26 PM > Subject: [Flashcoders] Converting hex colour numbers back and forth > > > Hi there, I'm saving a bunch of colours as a string then using this string >> later to colour objects in the same way. Something is going wrong though >> as >> the colours I am getting back are not the same as the ones I put in. >> If anyone could point out where I'm going wrong I'd be really grateful, >> I've >> googled this and and have checked the help files and as far as I can see >> it's correct (though obviously it isn't!). >> >> > ___ > Flashcoders mailing list > [email protected] > http://chattyfig.figleaf.com/mailman/listinfo/flashcoders > ___ Flashcoders mailing list [email protected] http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Converting hex colour numbers back and forth
Hi Ali,
If you need to switch between different number systems, you can also
try this:
var myUint:uint = 0xff; // this is the colour red
trace (myUint.toString(16)); //will trace ff -- in hexadecimal
system;
trace (myUint.toString(2)); //will trace --
in binary system;
Hope this helps,
Sidney
On Feb 10, 2009, at 1:48 PM, Juan Pablo Califano wrote:
The problem seems to be here:
var hexNum:Number = parseInt(c, 16);
You're asking parseInt to convert a string to an integer and telling
it the
string is an hexadecimal representation, when it's decimal,
according to
this line:
trace("string colour:"+c); // e.g. for red: 16711680
So try,
hexNum:Number = parseInt(c,10);
If you have a number, you don't need to worry about decimal /
hexadecimal.
It's just a number: you can have, say, the number 10, which would be
represented as "10" in decimal, "0xa" in hexadecimal, "1010" in
binary, etc,
but those are just a way to display a number. If you already have the
number, you don't need any extra step.
Hope this helps.
Cheers
Juan Pablo Califano
2009/2/10, ali drongo :
Thanks for your responses guys. I'm still stuck on this and I have
been
playing around a lot. I can get the number from the decimal format
to the
hex string but when I try to convert it to a hex number the colour is
incorrect.
Any advice much much appreciated, this is taking up lots of time.
Thanks:
public function colorIn(o:Object):void
{
trace("===");
var colA:Array = o.Colors.split(",");
colA.splice(0,1);
for ( var i:uint=1; i<=totSprites-1; i++ ) {
var c:String = colA[i];
trace("string colour:"+c); // e.g. for red: 16711680
//convert to decimal number
var tmpN:Number = Number(c);
trace("decimal:"+tmpN); // traces: 16711680
//convert to string of hex number
var hexStr:String = tmpN.toString(16);
trace("hexStr:"+hexStr); //traces: ff
//convert to hex number
var hexNum:Number = parseInt(c, 16);
trace("= = = = = = => hex number:"+hexNum); //traces in decimal
format
and
wrong number: 376510080
//set mc to color
var mcToCol:* = mainImage["s"+i];
//transform color
var newColorTransform:ColorTransform =
mcToCol.transform.colorTransform;
newColorTransform.color = hexNum;
mcToCol.transform.colorTransform = newColorTransform;
};
}
On Mon, Feb 9, 2009 at 8:55 PM, Merrill, Jason <
[email protected]> wrote:
Courtesy Evan Mullins of Circlecube Studio:
//bitwise conversion of rgb color to a hex value
function rgb2hex(r, g, b):Number
{
return(r<<16 | g<<8 | b);
}
//bitwise conversion of a hex color into rgb values
function hex2rgb (hex):Object
{
var red = hex>>16;
var greenBlue = hex-(red<<16)
var green = greenBlue>>8;
var blue = greenBlue - (green << 8);
//trace("r: " + red + " g: " + green + " b: " + blue);
return({r:red, g:green, b:blue});
}
Jason Merrill
Bank of America
Learning Performance Solutions Instructional Technology & Media
Learn about the Adobe Flash platform for rich media experiences -
join
the Bank of America Flash Platform Community
-Original Message-
From: [email protected]
[mailto:[email protected]] On Behalf Of ali
drongo
Sent: Monday, February 09, 2009 12:26 PM
To: Flash Coders List
Subject: [Flashcoders] Converting hex colour numbers back and forth
Hi there, I'm saving a bunch of colours as a string then using this
string
later to colour objects in the same way. Something is going wrong
though as
the colours I am getting back are not the same as the ones I put in.
If anyone could point out where I'm going wrong I'd be really
grateful,
I've
googled this and and have checked the help files and as far as I
can see
it's correct (though obviously it isn't!).
Here's my code, I've written comments next to the relevant lines:
/// in my coloured button class
// 1) colour is set on mouse click
private function clickHandler(e:MouseEvent):void
{
// passes hexValue from ColorPicker
colorThis(this.parent.parent["colorPick"].hexValue);
}
// 2) color is stored in var
public function colorThis(c:String):void
{
//stores colour
currColor = Number("0x"+c);
var newColorTransform:ColorTransform =
this.transform.colorTransform;
newColorTransform.color = currColor;
this.transform.colorTransform = newColorTransform;
}
// application class
// 3) stores colors in an array
private function collectColors():Array
{
colors_ar = new Array();
for ( var i:uint=1; i<=totSprites; i++ ) {
//stores colour in array
colors_ar[i] = mainImage["s"+i].currColor;
};
return colors_ar;
}
// 4) array is written to string and sent to php to be written to
txt
file
private function sendData(e:MouseEvent):void
{
showSending(true);
var variables:URLVariables = new URLVariables();
//stores all colours as a string
variables.colors = collectColors().toString();
var request:URLRequest = new URLRequest();
request.url = "http://www..com/text/test.php
Re: [Flashcoders] Converting hex colour numbers back and forth
Maybe this will help? http://muzakdeezign.com/flex3/flex3lib/ColorUtil.zip //docs http://muzakdeezign.com/flex3/flex3lib/docs/com/muzakdeezign/flex/utils/ColorUtil.html regards, Muzak - Original Message - From: "ali drongo" To: "Flash Coders List" Sent: Monday, February 09, 2009 6:26 PM Subject: [Flashcoders] Converting hex colour numbers back and forth Hi there, I'm saving a bunch of colours as a string then using this string later to colour objects in the same way. Something is going wrong though as the colours I am getting back are not the same as the ones I put in. If anyone could point out where I'm going wrong I'd be really grateful, I've googled this and and have checked the help files and as far as I can see it's correct (though obviously it isn't!). ___ Flashcoders mailing list [email protected] http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Converting hex colour numbers back and forth
The problem seems to be here:
var hexNum:Number = parseInt(c, 16);
You're asking parseInt to convert a string to an integer and telling it the
string is an hexadecimal representation, when it's decimal, according to
this line:
trace("string colour:"+c); // e.g. for red: 16711680
So try,
hexNum:Number = parseInt(c,10);
If you have a number, you don't need to worry about decimal / hexadecimal.
It's just a number: you can have, say, the number 10, which would be
represented as "10" in decimal, "0xa" in hexadecimal, "1010" in binary, etc,
but those are just a way to display a number. If you already have the
number, you don't need any extra step.
Hope this helps.
Cheers
Juan Pablo Califano
2009/2/10, ali drongo :
>
> Thanks for your responses guys. I'm still stuck on this and I have been
> playing around a lot. I can get the number from the decimal format to the
> hex string but when I try to convert it to a hex number the colour is
> incorrect.
> Any advice much much appreciated, this is taking up lots of time.
>
> Thanks:
>
>
>
> public function colorIn(o:Object):void
> {
> trace("===");
> var colA:Array = o.Colors.split(",");
> colA.splice(0,1);
> for ( var i:uint=1; i<=totSprites-1; i++ ) {
> var c:String = colA[i];
> trace("string colour:"+c); // e.g. for red: 16711680
> //convert to decimal number
> var tmpN:Number = Number(c);
> trace("decimal:"+tmpN); // traces: 16711680
> //convert to string of hex number
> var hexStr:String = tmpN.toString(16);
> trace("hexStr:"+hexStr); //traces: ff
> //convert to hex number
> var hexNum:Number = parseInt(c, 16);
> trace("= = = = = = => hex number:"+hexNum); //traces in decimal format
> and
> wrong number: 376510080
> //set mc to color
> var mcToCol:* = mainImage["s"+i];
> //transform color
> var newColorTransform:ColorTransform = mcToCol.transform.colorTransform;
> newColorTransform.color = hexNum;
> mcToCol.transform.colorTransform = newColorTransform;
> };
> }
>
>
>
>
>
> On Mon, Feb 9, 2009 at 8:55 PM, Merrill, Jason <
> [email protected]> wrote:
>
> > Courtesy Evan Mullins of Circlecube Studio:
> >
> > //bitwise conversion of rgb color to a hex value
> > function rgb2hex(r, g, b):Number
> > {
> >return(r<<16 | g<<8 | b);
> > }
> >
> > //bitwise conversion of a hex color into rgb values
> > function hex2rgb (hex):Object
> > {
> >var red = hex>>16;
> >var greenBlue = hex-(red<<16)
> >var green = greenBlue>>8;
> >var blue = greenBlue - (green << 8);
> > //trace("r: " + red + " g: " + green + " b: " + blue);
> >return({r:red, g:green, b:blue});
> > }
> >
> >
> >
> > Jason Merrill
> >
> > Bank of America
> > Learning Performance Solutions Instructional Technology & Media
> >
> > Learn about the Adobe Flash platform for rich media experiences - join
> > the Bank of America Flash Platform Community
> >
> >
> >
> >
> >
> >
> > -Original Message-
> > From: [email protected]
> > [mailto:[email protected]] On Behalf Of ali
> > drongo
> > Sent: Monday, February 09, 2009 12:26 PM
> > To: Flash Coders List
> > Subject: [Flashcoders] Converting hex colour numbers back and forth
> >
> > Hi there, I'm saving a bunch of colours as a string then using this
> > string
> > later to colour objects in the same way. Something is going wrong
> > though as
> > the colours I am getting back are not the same as the ones I put in.
> > If anyone could point out where I'm going wrong I'd be really grateful,
> > I've
> > googled this and and have checked the help files and as far as I can see
> > it's correct (though obviously it isn't!).
> >
> > Here's my code, I've written comments next to the relevant lines:
> >
> > /// in my coloured button class
> >
> >
> > // 1) colour is set on mouse click
> > private function clickHandler(e:MouseEvent):void
> > {
> > // passes hexValue from ColorPicker
> > colorThis(this.parent.parent["colorPick"].hexValue);
> > }
> > // 2) color is stored in var
> > public function colorThis(c:String):void
> > {
> > //stores colour
> > currColor = Number("0x"+c);
> > var newColorTransform:ColorTransform = this.transform.colorTransform;
> > newColorTransform.color = currColor;
> > this.transform.colorTransform = newColorTransform;
> > }
> >
> >
> >
> > // application class
> > // 3) stores colors in an array
> > private function collectColors():Array
> > {
> > colors_ar = new Array();
> > for ( var i:uint=1; i<=totSprites; i++ ) {
> > //stores colour in array
> > colors_ar[i] = mainImage["s"+i].currColor;
> > };
> > return colors_ar;
> > }
> >
> > // 4) array is written to string and sent to php to be written to txt
> > file
> >
> > private function sendData(e:MouseEvent):void
> > {
> > showSending(true);
> > var variables:URLVariables = new URLVariables();
> > //stores all colours as a string
> > variables.colors = collectColors().toString();
> > var request:URLRequest = new URLRequest();
> > request.url = "http://www.xxx
Re: [Flashcoders] Converting hex colour numbers back and forth
Thanks for your responses guys. I'm still stuck on this and I have been
playing around a lot. I can get the number from the decimal format to the
hex string but when I try to convert it to a hex number the colour is
incorrect.
Any advice much much appreciated, this is taking up lots of time.
Thanks:
public function colorIn(o:Object):void
{
trace("===");
var colA:Array = o.Colors.split(",");
colA.splice(0,1);
for ( var i:uint=1; i<=totSprites-1; i++ ) {
var c:String = colA[i];
trace("string colour:"+c); // e.g. for red: 16711680
//convert to decimal number
var tmpN:Number = Number(c);
trace("decimal:"+tmpN); // traces: 16711680
//convert to string of hex number
var hexStr:String = tmpN.toString(16);
trace("hexStr:"+hexStr); //traces: ff
//convert to hex number
var hexNum:Number = parseInt(c, 16);
trace("= = = = = = => hex number:"+hexNum); //traces in decimal format and
wrong number: 376510080
//set mc to color
var mcToCol:* = mainImage["s"+i];
//transform color
var newColorTransform:ColorTransform = mcToCol.transform.colorTransform;
newColorTransform.color = hexNum;
mcToCol.transform.colorTransform = newColorTransform;
};
}
On Mon, Feb 9, 2009 at 8:55 PM, Merrill, Jason <
[email protected]> wrote:
> Courtesy Evan Mullins of Circlecube Studio:
>
> //bitwise conversion of rgb color to a hex value
> function rgb2hex(r, g, b):Number
> {
>return(r<<16 | g<<8 | b);
> }
>
> //bitwise conversion of a hex color into rgb values
> function hex2rgb (hex):Object
> {
>var red = hex>>16;
>var greenBlue = hex-(red<<16)
>var green = greenBlue>>8;
>var blue = greenBlue - (green << 8);
> //trace("r: " + red + " g: " + green + " b: " + blue);
>return({r:red, g:green, b:blue});
> }
>
>
>
> Jason Merrill
>
> Bank of America
> Learning Performance Solutions Instructional Technology & Media
>
> Learn about the Adobe Flash platform for rich media experiences - join
> the Bank of America Flash Platform Community
>
>
>
>
>
>
> -Original Message-
> From: [email protected]
> [mailto:[email protected]] On Behalf Of ali
> drongo
> Sent: Monday, February 09, 2009 12:26 PM
> To: Flash Coders List
> Subject: [Flashcoders] Converting hex colour numbers back and forth
>
> Hi there, I'm saving a bunch of colours as a string then using this
> string
> later to colour objects in the same way. Something is going wrong
> though as
> the colours I am getting back are not the same as the ones I put in.
> If anyone could point out where I'm going wrong I'd be really grateful,
> I've
> googled this and and have checked the help files and as far as I can see
> it's correct (though obviously it isn't!).
>
> Here's my code, I've written comments next to the relevant lines:
>
> /// in my coloured button class
>
>
> // 1) colour is set on mouse click
> private function clickHandler(e:MouseEvent):void
> {
> // passes hexValue from ColorPicker
> colorThis(this.parent.parent["colorPick"].hexValue);
> }
> // 2) color is stored in var
> public function colorThis(c:String):void
> {
> //stores colour
> currColor = Number("0x"+c);
> var newColorTransform:ColorTransform = this.transform.colorTransform;
> newColorTransform.color = currColor;
> this.transform.colorTransform = newColorTransform;
> }
>
>
>
> // application class
> // 3) stores colors in an array
> private function collectColors():Array
> {
> colors_ar = new Array();
> for ( var i:uint=1; i<=totSprites; i++ ) {
> //stores colour in array
> colors_ar[i] = mainImage["s"+i].currColor;
> };
> return colors_ar;
> }
>
> // 4) array is written to string and sent to php to be written to txt
> file
>
> private function sendData(e:MouseEvent):void
> {
> showSending(true);
> var variables:URLVariables = new URLVariables();
> //stores all colours as a string
> variables.colors = collectColors().toString();
> var request:URLRequest = new URLRequest();
> request.url = "http://www..com/text/test.php";;
> request.method = URLRequestMethod.POST;
> request.data = variables;
> var loader:URLLoader = new URLLoader();
> loader.dataFormat = URLLoaderDataFormat.TEXT;
> loader.addEventListener(Event.COMPLETE, completeHandler);
> try
> {
>loader.load(request);
> }
> catch (error:Error)
> {
>trace("Unable to load URL");
> }
> }
>
>
> / viewer class
> // 5)
>
> public function colorIn(o:Object):void
> {
> var colA:Array = o.Colors.split(",");
> colA.splice(0,1);
> for ( var i:uint=1; i<=totSprites; i++ ) {
> //calls the method in the coloured button class
> mainImage["s"+i].colorThis(colA[i]).toString(16);
> };
> }
> ___
> Flashcoders mailing list
> [email protected]
> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
> ___
> Flashcoders mailing list
> [email protected]
> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>
_
RE: [Flashcoders] Converting hex colour numbers back and forth
Courtesy Evan Mullins of Circlecube Studio:
//bitwise conversion of rgb color to a hex value
function rgb2hex(r, g, b):Number
{
return(r<<16 | g<<8 | b);
}
//bitwise conversion of a hex color into rgb values
function hex2rgb (hex):Object
{
var red = hex>>16;
var greenBlue = hex-(red<<16)
var green = greenBlue>>8;
var blue = greenBlue - (green << 8);
//trace("r: " + red + " g: " + green + " b: " + blue);
return({r:red, g:green, b:blue});
}
Jason Merrill
Bank of America
Learning Performance Solutions Instructional Technology & Media
Learn about the Adobe Flash platform for rich media experiences - join
the Bank of America Flash Platform Community
-Original Message-
From: [email protected]
[mailto:[email protected]] On Behalf Of ali
drongo
Sent: Monday, February 09, 2009 12:26 PM
To: Flash Coders List
Subject: [Flashcoders] Converting hex colour numbers back and forth
Hi there, I'm saving a bunch of colours as a string then using this
string
later to colour objects in the same way. Something is going wrong
though as
the colours I am getting back are not the same as the ones I put in.
If anyone could point out where I'm going wrong I'd be really grateful,
I've
googled this and and have checked the help files and as far as I can see
it's correct (though obviously it isn't!).
Here's my code, I've written comments next to the relevant lines:
/// in my coloured button class
// 1) colour is set on mouse click
private function clickHandler(e:MouseEvent):void
{
// passes hexValue from ColorPicker
colorThis(this.parent.parent["colorPick"].hexValue);
}
// 2) color is stored in var
public function colorThis(c:String):void
{
//stores colour
currColor = Number("0x"+c);
var newColorTransform:ColorTransform = this.transform.colorTransform;
newColorTransform.color = currColor;
this.transform.colorTransform = newColorTransform;
}
// application class
// 3) stores colors in an array
private function collectColors():Array
{
colors_ar = new Array();
for ( var i:uint=1; i<=totSprites; i++ ) {
//stores colour in array
colors_ar[i] = mainImage["s"+i].currColor;
};
return colors_ar;
}
// 4) array is written to string and sent to php to be written to txt
file
private function sendData(e:MouseEvent):void
{
showSending(true);
var variables:URLVariables = new URLVariables();
//stores all colours as a string
variables.colors = collectColors().toString();
var request:URLRequest = new URLRequest();
request.url = "http://www..com/text/test.php";;
request.method = URLRequestMethod.POST;
request.data = variables;
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.TEXT;
loader.addEventListener(Event.COMPLETE, completeHandler);
try
{
loader.load(request);
}
catch (error:Error)
{
trace("Unable to load URL");
}
}
/ viewer class
// 5)
public function colorIn(o:Object):void
{
var colA:Array = o.Colors.split(",");
colA.splice(0,1);
for ( var i:uint=1; i<=totSprites; i++ ) {
//calls the method in the coloured button class
mainImage["s"+i].colorThis(colA[i]).toString(16);
};
}
___
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
___
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Converting hex colour numbers back and forth
On Mon, Feb 9, 2009 at 6:26 PM, ali drongo wrote:
> currColor = Number("0x"+c);
I haven't looked into it in detail, but I think you would want to use
parseInt( "0x" + c, 16 ) here.
If that doesn't fix it, try tracing the values throughout your
conversion and see where it breaks.
Mark
___
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

