私は AS3 でゲームを開発していますが、プレーヤーのキーボードが QWERTY の場合は WASD に、Colemak の場合は WARS にバインドするようにゲームを設定したいと考えています。これ?
2 に答える
これは私がこれを読んで思いついたかなりハックなソリューションなので、うまく機能するかどうかはわかりません...しかし、TextField
フォーカスを設定する目に見えないものを作成stage.focus
して、ユーザーのタイプがそこに入るようにすることができます。次に、TextField から値を取得し、テキストフィールドのテキストをリセットする、解放されたボタン用の keyboardEvent リスナーを使用できます。
AS3 でキーボード レイアウトを検出することはできません。
できることは、flash.system.Capabilities.language
プロパティを確認し、言語コードに基づいて、可能性のあるキーボード レイアウトを事前に選択することです。明らかに信頼性が低いため、ユーザーが設定を変更できるようにする必要があります。
たとえば、フランス語は、ユーザーが世界のフランス語圏にいることを意味する可能性が最も高いです。ただし、フランス/ベルギー/ルクセンブルグでは通常 AZERTY が使用されますが、スイス フランス語では QWERTZ レイアウトを意味する可能性が最も高いです (出典: http://en.wikipedia.org/wiki/QWERTZ )。
したがって、言語設定の代わりに国を検出する方が、少し良い方法です。ただし、純粋な AS3 では国を検出することはできません。サーバー側のスクリプトを呼び出す必要があります (国を特定するために IP アドレス ルックアップを使用します)。
このような手間をかける価値があるかどうかはわかりませんが、最も一般的な QWERTY をデフォルトに設定します。