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

パスワード:


パスワード紛失

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

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
clubMember
Åê¹ÆNo.3523
投稿日時: 2004-2-4 19:20
新米
居住地:
投稿: 18
使用環境:
IME文字確定の[ENTER]なのか、ただの[ENTER]キーなのかを判定したい
clubMemberです。どうもです。

[ENTER]キーで次のテキストフィールドにフォーカスを移す仕組みを本(伊藤博康先生著「FLASH MX ActionScript RDBMS プログラミング」)を読みながら作りました。

[ENTER]キーのカウントと、テキストフィールドのonChangeイベントの発生で、IME全角入力の文字確定の[ENTER]なのか、次のフォーカスに移動するリクエストを出す[ENTER]なのかを判定しています。

_global.enterKeyCount = 0;
watchKeyListner = new Object();
watchKeyListner.onKeyUp = function() {
	focusObj = Selection.getFocus();
	trace(Key.getCode());
	if (Key.getCode() == Key.ENTER) {
		_global.enterKeyCount++;
	} else if (Key.getCode() != Key.ENTER) {
		if (_root.input_data == 1) {
			_global.enterKeyCount=1;
			_root.input_data = 0;
		}
	}
	if (_global.enterKeyCount>=2) {
		switch (focusObj) {
			case "_level0.text1_txt" :
				Selection.setFocus("_root.text2_txt");
				_global.enterKeyCount = 0;
				break;
			case "_level0.text2_txt" :
				Selection.setFocus("_root.text1_txt");
				_global.enterKeyCount = 0;
		} 
	}
}
Key.addListener(watchKeyListner);
watchTFListner = new Object();
watchTFListner.onChanged = function() {
	_global.enterKeyCount = 0;
	_root.input_data = "1";
}
_root.text1_txt.addListener(watchTFListner);
_root.text2_txt.addListener(watchTFListner);


これで「ある程度」判定が出来るようになりました。
しかし、シンプルなキー判定とは別に、onChangeを使っている以上、下記の欠陥があります。

・何も入力しないまま次へフォーカスを移したい時、[ENTER]を2回押さなければならない
・以前入力してあるテキストフィールドに再びフォーカスが当たった時、前に入力した内容が選択された状態になり、その状態でまったく同じ文字(1バイト文字1文字、あるは任意2バイト文字の文字列)を入力した場合、テキストフィールドonChangeにならないため、文字が確定された後に更に[ENTER]キーを2回押さなければフォーカスが次へ行かない

これらの問題を何とか解決したいですが、ロジックが複雑になりすぎると、思わぬところでバグッたりしやすいので、怖いです。

FLASHはIMEを制御できないのですが、IMEはどのモードになっているかを探知することも出来ないでしょうか。

何とかFLASHでWindowsアプリケーションみたいな[ENTER]キーによるフィールド移動を実現させたいので、どなたか是非御知恵を貸して下さい!よろしくお願いします!

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

題名 投稿者 日時
 » 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