PROGRESO | WEBESTEEM | ART&DESIGN MAGAZINE 
Forum webesteem Strona Główna webesteem:forum

   Regulamin | Szukaj | Użytkownicy | Grupy | Statystyki | Ostatnie tematy | RSS | Rejestracja | Profil | Skrzynka | Zaloguj

konwersja string -> hex

 
Napisz nowy temat   Odpowiedz do tematu    Forum webesteem Strona Główna | flash
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
zapolski




Od: 2004.06.21
Posty: 730
Skąd: stolnica

PostWysłany: 2012.02.09 12:42    Temat postu: konwersja string -> hex

Biorę całe spektrum kolorów i dzielę je na 100 części (16777216/100)
Ruszam myszą po ekranie i na bazie stosunku położenia myszy do szer ekranu chciałbym ustawić tintę w kolorze.

Problem w tym, że Color.setTint akceptuje jeno kolory hexadecymalne
Kod:

var val:int = Math.round((stage.mouseX / stage.stageWidth) * 100);
var colsStr:String = "0x" + (val * colStep).toString()

jakakolwiek konwersja stringa sprawia, że zamiast "0x9c28ec" dostaję "10234092" - a tego ni cholery w setTint nie wepnę.
Wiem, że można to zrobić inaczej, przez r/g/b offset itd ale chciałbym to zrobić titną, a przede wszystkim dowiedzieć się jak przekonwertować stringa do hexa



reell
M jak 'motion' - wiele imion ma...
^
Odpowiedz z cytatem
kenzo.mono




Od: 2007.05.06
Posty: 22

PostWysłany: 2012.02.09 13:35    Temat postu:

a tak się nie da?

colsStr:String = (val * colStep).toString(16);
^
Odpowiedz z cytatem
zapolski




Od: 2004.06.21
Posty: 730
Skąd: stolnica

PostWysłany: 2012.02.09 16:55    Temat postu:

kenzo.mono napisał(a):
a tak się nie da?

colsStr:String = (val * colStep).toString(16);

a gdzie tu jest konwersja stringa do hexa?



reell
M jak 'motion' - wiele imion ma...
^
Odpowiedz z cytatem
kenzo.mono




Od: 2007.05.06
Posty: 22

PostWysłany: 2012.02.09 17:55    Temat postu:

Nie doczytałem, ale od początku:

1) nie ma czegoś takiego jak "hex" może być heksadecymalna reprezentacja liczby, wtedy masz zapis np 0xabcd12

To mnie trochę zmyliło i dlatego podałem sposób na konwersję dowolnej liczby na tekstową postać hex (jak byś chciał ją gdzieś wyświetlać)

2) pamietaj, że:
var w=10;
i
var x= 0xA;
to jedno i to samo.


2) Co do problemu - podając za helpem:

>>public function setTint(tintColor:uint, tintMultiplier:Number):void
>>
>>tintColor:uint — Wartość koloru tinty w formacie 0xRRGGBB.
>>tintMultiplier:Number — Procentowa wartość zabarwienia..

Oznacza to tylko tyle, że, żeby ustawić daną tintę musisz przekazać liczbę całkowitą, w której najmłodsze 8 bitów odpowiada za kolor niebieski,
bity od 8 do 15 odpowiadają za kolor zielony, a bity od 16 do 23 za kolor czerwony.

Czyli, jeśli chcesz uzyskać kolor czerwony, to musisz wywołać ją np tak:
setTint(0xff0000,1)
lub też(co jest tożsame):
setTint(255*256*256,1);
lub też (co również jest tożsame):
setTint(255<<16,1);
lub też zupełnie prosto i dziesiętnie:
setTint(16711680,1);

Innymi słowy, jak już masz wyliczoną tę swoją wartość (zapamiętaną jako liczbę) to po prostu wywołujesz z nią setTint i tyle.
^
Odpowiedz z cytatem
kenzo.mono




Od: 2007.05.06
Posty: 22

PostWysłany: 2012.02.09 17:59    Temat postu:

..i jeszcze kod ostateczny powinien wyglądać tak:

Kod:


//zakładam, że gdzieś colStep jest zdefiniowany i jest to wartość całkowita
var val:int = Math.round((stage.mouseX / stage.stageWidth) * 100);
Color.setTint(val * colStep,1);



i powinno banglać
^
Odpowiedz z cytatem
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum webesteem Strona Główna | flash Wszystkie czasy w strefie EET (Europa)
Strona 1 z 1

 
Skocz do:  
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach

FAQ


serwery wirtualne, tanie domeny

Powered by phpBB © 2001, 2005 phpBB Group

82243546

Page generation time: 0.0311s (PHP: 86% - SQL: 14%) - SQL queries: 14 - GZIP enabled - Debug off