Avatar billede Slettet bruger
09. januar 2008 - 18:33 Der er 6 kommentarer og
1 løsning

AS2: RGB ud fra string?

Hej eksperter,

Hvordan kan en RGB-værdi findes ud fra en string?
Avatar billede barklund Nybegynder
09. januar 2008 - 18:47 #1
Først konverterer du til et tal:

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
Avatar billede 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?

var hex:String = "ff99cc";
this.createEmptyMovieClip("dummy", 0);
dummy.beginFill(???, 75); // <<<<<
dummy.lineTo(100, 0);
dummy.lineTo(100, 50);
dummy.lineTo(0, 50);
dummy.endFill();
Avatar billede barklund Nybegynder
09. januar 2008 - 23:28 #3
"Først konverterer du den til et tal" - mon ikke det er det, du skal bruge? ;)

dummy.beginFill(parseInt(hex, 16), 75);

--
Morten Barklund
Avatar billede Slettet bruger
10. januar 2008 - 08:20 #4
Så...
dummy.beginFill(parseInt("string", 16), alpha) er gyldig, hvis string indeholder seks cifre eller bogstaver fra a til f?
Avatar billede barklund Nybegynder
10. januar 2008 - 13:46 #5
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:

dummy.beginFill(parseInt("000000", 16));
dummy.beginFill(parseInt("0", 16));
dummy.beginFill(parseInt("00000000000000000000000000000000000000", 16));
dummy.beginFill(parseInt("0", 6));
dummy.beginFill(0);
dummy.beginFill(0x000000);
dummy.beginFill(100 - 5 * 20);

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
Avatar billede 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!
Avatar billede barklund Nybegynder
10. januar 2008 - 14:33 #7
Så lidt :)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Akademikernes A-kasse

AI Product Owner

Netcompany A/S

Test Consultant

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger IT-Supporter til Svanemøllen

AL Sydbank A/S (tidligere Arbejdernes Landsbank)

Afdelingschef til GDPR & Tech Regulation