var hex:String = "ff99cc"; var num:Number = parseInt(hex, 16);
Så deler du den op i de tre dele:
var red:Number = (num & 0xff0000) >> 16; var green:Number = (num & 0xff00) >> 8; var blue:Number = num & 0xff;
Og så kan du vise værdierne:
trace("hex is "+hex+", r: "+red+", g: "+green+", b: "+blue);
Hvilket for ovenstående hex giver følgende output:
hex is ff99cc, r: 255, g: 153, b: 204
-- Morten Barklund
Synes godt om
Slettet bruger
09. januar 2008 - 22:08#2
Hmm... Jeg ved faktisk ikke, om det kan bruges til mit formål. Jeg skal skrive en kode, der eksempelvis tegner et rektangel med en variabel stregfarve defineret ud fra en string. Hvordan skal jeg gøre det?
parseInt vil returnere NaN, hvis ikke "string" kan fortolkes i den angivne base (her 16). Men strengen skal jo ikke være på 6 tegn hex, for at det er en gyldig farve. Hex-koden "000000" svarer jo til tallet (i hex) 0x000000, hvilket jo er 0. Så alle følgende vil tegne sort:
Jeg håber du forstår - farvekoder er bare tal. Hvordan man skriver disse tal er for flash fuldstændig ligegyldigt. Bare tallet i sidste ende kan fortolkes til en farve ud fra at læse de første 8 bits som rød, de næste 8 bits som grøn og de næste 8 bits som blå. Er der flere bits ignoreres de bare. Er nogle af bits'ne "manglende" så svarer det jo bare til 0.
-- Morten Barklund
Synes godt om
Slettet bruger
10. januar 2008 - 13:54#6
Okay - jeg troede bare, Flash var mere striks :) Uanset hvad har jeg nu, hvad jeg skal bruge. Tak for hjælpen!
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.