| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| xtremeist Registriert seit: Jun 2001 Ort: Dresden
Beiträge: 103
| ARGB auslesen (gelöst)
Versuch grad ein Hexdezimalwert der eine ARGB-Farbkombination darstellt auszulesen. Klappt alles super bis auf den Alpha-Wert, der streikt ab 127 (dez) bzw. '7F' (hex). Kann mir das irgendwie nicht erklären, deswegen hier mal mein Code: Code: // a r g b
var argb:Number = 0x11223344; // funzt prima
//var argb:Number = 0x7FAABBCC; // funzt auch noch
//var argb:Number = 0xAABBCCDD; // funzt garnicht
var a:Number = (argb & 0xFF000000) >> 24;
var r:Number = (argb & 0x00FF0000) >> 16;
var g:Number = (argb & 0x0000FF00) >> 8 ;
var b:Number = (argb & 0x000000FF);
trace("argb: "+ argb.toString(16).toUpperCase());
trace("\tdez\t\thex");
trace("a: \t"+ a +"\t\t"+ a.toString(16).toUpperCase());
trace("r: \t"+ r +"\t\t"+ r.toString(16).toUpperCase());
trace("g: \t"+ g +"\t\t"+ g.toString(16).toUpperCase());
trace("b: \t"+ b +"\t\t"+ b.toString(16).toUpperCase()); mfg sHo ps.: Testplatform ist Flash MX 2004, sollte aber eigentlich ab F5 funktionieren.
__________________ Das Durchschnittliche gibt der Welt Ihren Bestand, das Außergewöhnliche Ihren Wert. [Oscar Wilde] Geändert von Stefan H. (01-12-2005 um 11:21 Uhr) |
| | |
| | #2 (permalink) |
| xtremeist Registriert seit: Jun 2001 Ort: Dresden
Beiträge: 103
|
Problem ist wohl, dass Flash da an das Maximum der zulässigen numerischen Werte einer Variablen stößt. Wird wohl noch mit unsigned 32bit Integer gerechnet (0 bis 4294967295) ab Flash 8 scheint das aber schon behoben. Frag ich mich aber: rechnet F8 schon mit 64bit Integer? Naja auf F7 muss ich das wohl irgendwie anders lösen und die Werte seperat speichern und berechnen. Thema kann geschlossen werden. mfg sHo
__________________ Das Durchschnittliche gibt der Welt Ihren Bestand, das Außergewöhnliche Ihren Wert. [Oscar Wilde] Geändert von Stefan H. (01-12-2005 um 10:13 Uhr) |
| | |
| | #3 (permalink) |
| xtremeist Registriert seit: Jun 2001 Ort: Dresden
Beiträge: 103
|
Hat mir irgendwie keine Ruhe gelassen also hab ich mir das nochmal angeschaut. Ich streiche den vorherigen Post von mir! Problem scheint nicht beim Datentypen zu liegen. Flash(7) speichert Zahlen von -4294967295 bis 4294967295 also unsigned integer (wobei auch negativ). Irgendwie hat der BITWISE-AND-Operator (&) Problem mit Zahlen über 2147483647. Zum Test: Code: // 0x7FFFFFFF (hex) entspricht 2147483647 (dez) trace( (0x7FFFFFFF & 0xFF000000) ); // Ausgabe: 2147483647 - richtig! // 0x80000000 (hex) entspricht 2147483648 (dez) trace( (0x80000000 & 0xFF000000) ); // Ausgabe: -2147483648 - falsch! The result is a new 32-bit unsigned integer." Also sollte es ja funktionieren, scheint aber so als würde signed Integer unterstützen also bis maximal 2147483647. Seis drumm, habs mit dem Operator ">>>" gelöst : Code: // a r g b
var argb:Number = 0xAABBCCDD; // funzt prima
var a:Number = argb >>> 24;
var r:Number = (argb & 0x00FF0000) >> 16;
var g:Number = (argb & 0x0000FF00) >> 8 ;
var b:Number = (argb & 0x000000FF);
trace("argb: "+ argb.toString(16).toUpperCase());
trace("\tdez\t\thex");
trace("a: \t"+ a +"\t\t"+ a.toString(16).toUpperCase());
trace("r: \t"+ r +"\t\t"+ r.toString(16).toUpperCase());
trace("g: \t"+ g +"\t\t"+ g.toString(16).toUpperCase());
trace("b: \t"+ b +"\t\t"+ b.toString(16).toUpperCase());
__________________ Das Durchschnittliche gibt der Welt Ihren Bestand, das Außergewöhnliche Ihren Wert. [Oscar Wilde] Geändert von Stefan H. (01-12-2005 um 23:15 Uhr) |
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: Sep 2004 Ort: Spain/Ibiza
Beiträge: 942
| PHP-Code:
__________________ Languages : (in the order of knowledge/preference) Read: Flash AS, PHP, JS, Html, DHtml, Basic, C++, DOS, 3DMaxScript, English, Deutsch, Magyar, XML, Pascal, VB, Spanish Write: Flash AS, Basic, PHP, JS, DHtml, Html, ..., C++, ...., ..., English, ..., ..., ..., ...., Deutsch, ..., Magyar wen du mein deutsch nicht magst whele eine andere sparache von den obrigen ;) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |