2009-04-12 13 views
0

Ich habe ein AJAX-Chat-System, an dem ich arbeite, und bis jetzt habe ich es funktioniert. Eine Sache, die ich tun möchte, ist es so, wenn der Benutzername auf dem Bildschirm angezeigt wird, ist es eine eindeutige Farbe (wie in einem AIM-Fenster). Wie würde ich eine zufällige Farbe generieren, die dem Benutzernamen für die jeweilige Sitzung zugewiesen wird, für die sie angemeldet sind?Zuweisen zufälliger Farben pro Sitzung, für Chat

Die Farbe müsste etwas dunkler sein als auf weißem Hintergrund und da sie erzeugt werden, können sie nicht zu ähnlich zu den Farben sein, die anderen aktuellen Benutzern zugewiesen wurden.

EDIT Danke, ich denke, eine vordefinierte Liste wäre der einfachste Weg. Wenn ich diese Liste in einer Konfigurationsdatei habe und beim Anmelden eine Farbe zuweisen möchte, wie soll ich sicherstellen, dass zwei angemeldete Benutzer nicht die gleiche Farbe haben?

Antwort

7

Ich denke, Sie werden besser aus einer Liste von vorgenerierten Farben auswählen, die Ihre Anforderungen erfüllen (dunkel genug, unterschiedlich genug voneinander) als zu versuchen, Farben im laufenden Betrieb zu generieren.

Edited hinzufügen:

Soweit von mehr als einem Benutzer halten die gleiche Farbe haben, eine Sache, die ich gesehen habe Systeme tun ist, um nur Farben zuweisen lokal auf dem Computer-Benutzer mit Javascript. Normalerweise ist es nicht so wichtig, dass verschiedene Benutzer die gleichen Farben für andere Personen sehen. Es ist mir egal, ob die Farben auf meinem Bildschirm denen auf einem anderen Benutzerbildschirm entsprechen, solange alle Farben auf meinem Bildschirm einzigartig sind. In der Tat kann es wünschenswert sein, dass der eigene Text eines jeden Benutzers eindeutig ist (seine Farbe ist schwarz, die Farbe aller anderen beispielsweise).

+0

30 Sekunden später als Ihre Antwort! –

+0

Ein guter Ausgangspunkt könnten die Label-Farben in Google Mail sein - sie sind leicht unterscheidbar und so konzipiert, dass sie auf hellem Hintergrund arbeiten. Es kann jedoch nicht genug von ihnen sein. – ozan

+0

hier ist eine gute Liste von Webfarben zur Auswahl: http://www.december.com/html/spec/colorhslhex10.html – Calvin

1

Erstellen Sie eine Liste von Farben (von Hand), die dunkel genug und leicht unterscheidbar sind, und wählen Sie dann eine zufällig aus.

1

Sie möchten nicht zu zufällig mit Farben gehen, wenn Sie auch möchten, dass sie sich gegenseitig kontrastieren und auf der dunklen Seite von Weiß sind.

Es kann besser sein, ein Array von Farben vorzudefinieren und diese von einer zufälligen Startposition aus zu durchlaufen, so dass keine Wiederholungen stattfinden, bis die ganze Menge zugewiesen wurde.

Verwandte Themen