トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     IME文字確定の[ENTER]なのか、ただの[ENTER]キーなのかを判定したい
投稿するにはまず登録を

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
Fumio
Åê¹ÆNo.3524
投稿日時: 2004-2-4 22:35
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
Re: IME文字確定の[ENTER]なのか、ただの[ENTER]キーなのかを判定したい
TextField.onChangedメソッドでは、入力値の変更が必要になりますので、限界はありますね。
引用:
clubMemberさんは書きました:
[ENTER]キーのカウントと、テキストフィールドのonChangeイベントの発生で、IME全角入力の文字確定の[ENTER]なのか、次のフォーカスに移動するリクエストを出す[ENTER]なのかを判定しています。

押されたキーが[Enter]に等しくなければ、そのキーは[Enter]ではありません。else ifでなく、elseを使えば足ります。
	if (Key.getCode() == Key.ENTER) {
		_global.enterKeyCount++;
	} else if (Key.getCode() != Key.ENTER) {

Flashは基本的に、ホストアプリケーション(ブラウザ)の外にアクセスすることが、厳格に制限されています。IMEの設定を、調べることもできません。それに、それがわかったとしても、以下の問題を解決することはできないでしょう(日本語モードでなくても、同じ問題は発生しますよね)。
引用:
・何も入力しないまま次へフォーカスを移したい時、[ENTER]を2回押さなければならない
・以前入力してあるテキストフィールドに再びフォーカスが当たった時、前に入力した内容が選択された状態になり、その状態でまったく同じ文字(1バイト文字1文字、あるは任意2バイト文字の文字列)を入力した場合、テキストフィールドonChangeにならないため、文字が確定された後に更に[ENTER]キーを2回押さなければフォーカスが次へ行かない
...
FLASHはIMEを制御できないのですが、IMEはどのモードになっているかを探知することも出来ないでしょうか。

異なったアプローチで、日本語入力の確定と、改行キーの[Enter]を区別することが一応できました。
// MovieClip: TextFieldインスタンスmy_txtを配置
// フレームアクション
keyListener = new Object();
my_txt.onSetFocus = function() {
  xListenEnter(keyListener);
  // コールバック関数
  // 引数bEnter: 普通の改行ならtrue、日本語入力確定ならfalse
  keyListener.onGetEnter = function(bEnter) {
    if (bEnter) {
      trace("Enter");
    } else {
      trace("確定");
    }
  };
};
my_txt.onKillFocus = function() {
  Key.removeListener(keyListener);
};
function xListenEnter(oListener) {
  Key.addListener(oListener);
  oListener.onKeyDown = function() {
    this.nDownKey = Key.getCode();
  };
  oListener.onKeyUp = function() {
    this.nUpKey = Key.getCode();
    if (this.nUpKey == Key.ENTER) {
      if (this.nUpKey == this.nDownKey) {
        this.onGetEnter(true);
      } else {
        this.onGetEnter(false);
      }
    }
  };
}


----------------
 

フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
   IME文字確定の[ENTER]なのか、ただの[ENTER]キーなのかを判定したい clubMember 2004-2-4 19:20
   » Re: IME文字確定の[ENTER]なのか、ただの[ENTER]キーなのかを判定したい Fumio 2004-2-4 22:35
       ありがとうございます! clubMember 2004-2-6 11:35

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops