| 681 | |
| 682 | === Wie bekomme ich plattformunabhängige Tastencodes bei !KeyUp und !KeyDown? === |
| 683 | |
| 684 | Die mit keyValue bzw. keyCharacter abrufbaren Tastencodes, die dem `KeyboardEvent`, welches mit `keyUp:` und `keyDown:` übergeben wird, wenn man diese Events durch seine Morph-Klasse behandeln lässt, sind von Plattform zu Plattform bzw. von VM zu VM verschieden. Beim `keyStroke:`-Event sind die Codes plattformunabhängig, allerdings bietet einem dieses Event unter Umständen nicht das gewünschte Verhalten. Gruppen, die sowohl mit Windows als auch Mac OS X oder Linux arbeiten und ein zum Beispiel Spiel entwickeln, bei dem man Tasten gedrückt halten soll, könnte das Probleme bereiten. |
| 685 | |
| 686 | Leider muss man sich darum selbst kümmern, indem man die benötigten Tastencodes für jede Plattform herausfindet und dann anhand der Plattform, auf der die VM gerade läuft, entscheidet, welche Codes berücksichtigt werden sollen. Die Plattform kann man mit `Smalltalk os platformName` ermitteln (die Rückgabewerte sind z. B. `'mac os'`, `'win32'` und `'unix'`). Eine Möglichkeit wäre, die Tastencodes auf der Klassenseite abzulegen und beim Zugriff darauf anhand der Plattform zu entscheiden, welcher der Codes zurückgegeben werden soll. Hier gibt es mehrere Varianten jeweils mit Vor- und Nachteilen (Plattform-Unterscheidung bei jedem Zugriff? Objekt mit aktuellen Codes anlegen? Wie sicherstellen, dass das richtige verwendet wird, wenn man das Image von einer Plattform zur anderen kopiert?). Überlegt, was sich für euer Projekt am besten eignet. |