Hi Ali,

If you need to switch between different number systems, you can also try this:

var myUint:uint = 0xff0000; // this is the colour red

trace (myUint.toString(16)); //will trace ff0000 -- in hexadecimal system; trace (myUint.toString(2)); //will trace 111111110000000000000000 -- 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 <[email protected]>:

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: ff0000
//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.xxxx.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

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

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

Sidney de Koning - be a geek, in rockstar style!
Flash / AIR Developer @ www.funky-monkey.nl
Technical Writer @ www.insideria.com

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

Reply via email to