Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 30-09-2005, 14:38   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2004
Beiträge: 29
0xff0000 zu #ff0000 umwandeln

Hallo ich hab zwar schon gesucht und probiert, aber noch keine gescheite, einfache Lösung gefunden.

Problem:
Ich übergebe einen Hexwert in bewährter Form 0xff0000 für eine Linienfarbe
Diese Linienfarbe möchte ich auch zum einfärben des Textes verwenden. Mit TextFormat.color konnte ich diesen Wert verwenden. Seit Flash 8 geht nur noch setStyle (nehme ich eh lieber), aber das will einen String ala "#ff0000". Aus der übergebenen Integerzahl kann ich durch Bitverschiebung alles wieder herstellen.
Mit lineColor.toString(16) gehts noch einfacher. Wenn allerding Rot oder grün fehlen muss ich die Nullen auffüllen.

0x0000ff ergibt nun mal nur ff.

aktueller Code:
ActionScript:
  1. //hex to String
  2.         var colcss = buttLineColor.toString(16);
  3.         var coldiff = 6 - colcss.length;
  4.         for(var i = 0; i < coldiff; i++){
  5.             colcss = "0" + colcss;
  6.         }
  7.         colcss = "#" + colcss;
  8.         trace(Flashout.INFO + "colcss: " + colcss);  
  9.         trace(Flashout.INFO + "colcss: " + coldiff);

Gibt es da vielleicht noch eine einfachere Lösung?

Geändert von landschaf (30-09-2005 um 14:46 Uhr)
landschaf ist offline   Mit Zitat antworten
Alt 30-09-2005, 14:56   #2 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
Ich hab da ne Klasse StringUtils, und die hat eine Methode multiply.
Das ist zwar nicht schneller, aber es ist nur noch eine Zeile, und kann man immer wiederverwenden.
__________________
»Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!)
Janoscharlipp ist offline   Mit Zitat antworten
Alt 30-09-2005, 14:58   #3 (permalink)
Neuer User
 
Registriert seit: Jan 2004
Beiträge: 29
ok auf 3 zeilen reduziert ;-)

ActionScript:
  1. var colcss = buttLineColor.toString(16);
  2. while(colcss.length<6) colcss = "0" + colcss;
  3. colcss = "#" + colcss;
landschaf ist offline   Mit Zitat antworten
Alt 30-09-2005, 15:12   #4 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
schick, kürzer geht wohl nicht
__________________
»Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!)
Janoscharlipp ist offline   Mit Zitat antworten
Alt 30-09-2005, 15:22   #5 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Nur so zum Spaß:
ActionScript:
  1. var colcss = ("#000000").substr(0, 7-buttLineColor.toString(16).length)+buttLineColor.toString(16);
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 30-09-2005, 15:41   #6 (permalink)
Neuer User
 
Registriert seit: Jan 2004
Beiträge: 29
Danke, woran man so Spaß haben kann ;-)

Schreibfehlerbereinigt reduziert es das ganze auf zwei Zeilen, da ich bei 80 Zeichen eh umbreche (Eclipse)
landschaf ist offline   Mit Zitat antworten
Alt 30-09-2005, 15:56   #7 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Ja, toll! Wenn deine Vars auch "buttLineColor" heißen ("bLC" tut's doch auch)
...oder ist das irgendwas neues aus Flash 8?
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 30-09-2005, 16:26   #8 (permalink)
Neuer User
 
Registriert seit: Jan 2004
Beiträge: 29
BLC ist der Gegenlichtschalter an der Videokamera ;-)

wenn ich den Code in einem Jahr oder früh um 4 lese möchte ich halt sofort wissen wofür die Variable da ist. Aussagekräftige Namen halt ;-)
landschaf ist offline   Mit Zitat antworten
Alt 30-09-2005, 16:39   #9 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Zitat:
Zitat von landschaf
BLC ist der Gegenlichtschalter an der Videokamera ;-)
Business Location Center
Lebensmittelchemiker Bundesverband (BLC)
Boston Library Consortium
British Logic Colloquium
Business Language Center
Biology Learning Center at the University of Arizona
Burma Lawyers' Council
...

Merkt man eigentlich, dass ich nix Besseres zu tun habe?
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 30-09-2005, 16:46   #10 (permalink)
Neuer User
 
Registriert seit: Jan 2004
Beiträge: 29
BackLightControl ;-)

Du siehst also der Variablenname könnte vieles bedeuten.

Zitat:
Merkt man eigentlich, dass ich nix Besseres zu tun habe?
Ja!!!

Ich stricke gerade ein Projekt auf Flash 8 und FAME um.

Geändert von landschaf (30-09-2005 um 16:55 Uhr)
landschaf ist offline   Mit Zitat antworten
Alt 30-09-2005, 19:39   #11 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.321
var colcss = "#"+("000000"+buttLineColor.toString(16)).subs tr(-6);

meiner ist kürzer! --- ups ;-)

und man kann noch eine von den nullen weglassen, weil buttLineColor ja mindestens 0 sein sollte.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (30-09-2005 um 19:47 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 30-09-2005, 23:03   #12 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
LOL,
das ist wohl die Geekversion von "Meiner ist am längsten"

mfg. r
bokel ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 19:03 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele