• 締切済み

Adobe AIR でバーコード入力時に、先頭文字が欠落します

blue-horseと申します。 いつもお世話になっております。 下記内容で困っております。 ご助言頂ければ有り難く存じます。 困っている事: バーコードリーダーで読み取った内容の先頭1文字が欠落する。 状況詳細: 1)Adobe AIR(HTML + JavaScript)でアプリケーションを製作中です。   Eclipse + Aptana   使用ライブラリはJQuery1.3.2のみ 2)フォームのテキストボックスにバーコードで読み取った内容を格納させようとしているのですが、先頭1文字目が欠落します。 3)欠落するのは、先頭1文字目のみです。 4)前の入力を残したまま2回目を読み込めば、2回目は正常に入力されます。   例:読み取り対象「ABC」     1回目->失敗[BC]     2回目->成功[BCABC](※前の入力を残したまま2回目を読み込む)     3回目->失敗[BC](※前の入力をBackspaceで消去して、再入力) 5)作成したHTMLをAIRでなくIEで起動すると、問題なしです。   AIR固有の問題? 6)読み取り内容を1文字ずつ出力するタイプのバーコードリーダーだと問題なし。   ※問題が発生するバーコードリーダーは読み取り内容を一気に流し込んでくるタイプ。    keypressイベントのみが連続していました。    1文字ずつ出力するタイプは律義にdown->press->upを繰り返し。 7)毎回「必ず」現象発生するわけではない。   上手く読み取れる場合も「たまに」あります。   が、成功時と失敗時の状況的差異が判りません。 状況が安定しないので、原因究明もままなりません。 検証方法のアドバイス等ございましたら、ご助言下さい。 解決策の提示があれば、なお有り難いです。 毎回妙な質問ばかりですが、お助け頂ければ有り難く存じます。 以上、失礼いたします。

みんなの回答

  • sugartax
  • ベストアンサー率50% (22/44)
回答No.2

>結果出ましたら、また報告させて頂きます。 参考の投稿にわざわざレスありがとうございます。 ところで、一つ大前提として・・・。 バッファクリアなど初期化に類する機能が「AIR に無い」として 受け取っています。 言わずもがな、十分お分かりだと思いますが、念のため^^

blue-horse
質問者

お礼

sugartax 様: その後経過報告遅くなり、申し訳ございません。 残念ながら未だ解決には至っておりませんが、 検証の結果、薄ぼんやりと見えてきた事を報告させていただきます。 1.keyup,イベントを放り込んでみる。 結果:× バーコードリーダーの販売元さんに問い合わせたところ、元からkeypressイベントのみを連続して送出する仕様だそうです。 バーコードリーダー側でkeydown,keyup,イベントを追加できないかも問い合わせましたが、残念ながら困難とのことでした。 2.いったん変数に取り込んでみる。 結果:× 唯一の送出イベントであるkeypressすら届いておりませんでした。 よってASCIIコードの送出も確認できず。 3.Bluetooth受信器が疑わしい バーコードリーダーの販売元に、問題が発生するAIRアプリを送付し、確認してもらいました。 結果、そちらでは1文字欠落は発生しなかったとのこと。 こちらは、2種類のPCで確認しましたが、いずれも再現。 こちらの2台の共通点は、同じBluetoothドングル(PLANEX MicroEDR2X)を使用していたこと。 販売元さんは、こちらとは異なるBluetoothドングル(PLANEX BT-01UDE)を使用。 よって、状況証拠的にBluetoothドングルが怪しいです。 ※同じPLANEX製なのに?と言う点が引っ掛かりますが 現在の状況: PLANEXさんにメールにて問い合わせ中。 内容が狭いので、同じ様なことで困る方も少ないとは考えますが、 解決するまで、今しばらく締め切らずに置かせて頂きます。 以上、失礼いたします。

blue-horse
質問者

補足

長々と間が空きましたが、その後経過です。 ※PLANEXさんへのメール問合せは、往復2週間ほど覚悟しておく必要があることが判りました。 対応自体は丁寧なんですけれどね。 PLANEXさんより回答(概要) 1.内容検証等はPLANEX指定のTOSHIBAスタックでないので困難 2.機器不具合である可能性があるので、交換には迅速に対応いたします。 とのことでした。 5台ほど購入して、既に2台で現象確認されているので、個体不具合である可能性は低そうですが、可能性にかけて交換依頼してみます。 「スタック違うから駄目」と言うのは、正直ユーザーの感情としては納得し兼ねますが、これ以上粘ってもおそらく成果は期待できないと考えられますので、今回は諦めようと思います。 ご回答頂きありがとうございました。 重ねてお礼申し上げます。

全文を見る
すると、全ての回答が全文表示されます。
  • sugartax
  • ベストアンサー率50% (22/44)
回答No.1

こんにちは。 AIR ですかいいですね。試したいと思いつつ忙しさにかまけて手が出ない状況です。 ということで参考までに思った事を・・・。 毎回発生する訳ではないと言うことと、全流しと1文字の相違から。 スクリプトと言うより寧ろ状態の違いが影響している?って考えちゃいますね。 ただ気になるのは、1文字目をASCコードで見てみるとどうなります? 「無い」のかそれとも「余計なデータが挿入されてる」のとでは大分意味が異なると思います。 その上で一度、Adobe AIR 側で処理を擬似的にイニシャライズするような事や擬似的に成功する状態に持っていく事はできませんか? たとえば・・・ ・ keyup を呼んでやるとかw(おまじないwですがこう言うことから何か分かるかも) ・ 別のところへ一旦書き出す。(擬似的に2回目->成功)とかw

blue-horse
質問者

お礼

sugartax様: 回答ありがとうございます。 お礼遅くなりまして申し訳ございません。 現在、頂いたアドバイスに従い、keypressイベントの前後にdownとupを強制的に放り込む等して検証中です。 結果出ましたら、また報告させて頂きます。 取り急ぎお礼まで。 以上、失礼いたします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • バーコードによる入力を区別したい

    いつもお世話になっております。 blue-horse と申します。 画面上(テキストボックス上でなく)でバーコード入力を検出し、 その内容が定められた字数ならば、定めた処理を行うようにしたいと考えています。 具体的には、バーコード入力による画面遷移です。 例:001 -> 画面A、002 -> 画面B、... バーコードはCode39 スタート/ストップ文字は* body要素でkeypressイベントをキャッチし、スタート/ストップ文字を検出できるかと考えましたが、スタート/ストップ文字はバーコードリーダーが認識するために利用されるだけなので、PCには出力されないようで、いきなりバーコードの値から取得し始めてしまいました。 また、テキストボックスなどで上記の例と同様の入力内容が発生する可能性があるので、charCodeをプールして、特定パターンが発生したらバーコード入力と判断させようとすると、不具合が発生します。 このため、入力がキーボードからなのか、バーコードからなのかを認識することが出来ません。 入力デバイスの位置づけを考えれば当然と言えば当然な話なのですが、どうにかして実現したいと考えています。 何か良い方法、ライブラリ等は無いでしょうか。

  • バーコード入力と手入力の判断はつくのでしょうか?

    はじめまして、表題の質問をさせていただきます。 現在とある機械を管理するプログラムを作成しています。(JDK1.6) 分かりづらいので例えるならば図書館でやっている本の登録、貸出みたいなことです。 そこで質問なのですが、本に貼ってあるバーコードを読んだときにそれが手入力なのかバーコードリーダーから読まれたデータなのかを判別する手段はあるのですが? (不正防止のため手入力は一部の管理者のみ認め、一般ユーザーはバーコードのみとしています) JTextFieldのKeyReleaseイベントだと1文字づつイベントが発生し、ActionPerformedだと1度だけイベントが発生することが分かったのですがそれを組み合わせても判断はできないと思います。 また、JFrameのKeyReleasedイベントで取得してJTextFieldにセットすることを考えたのですが、配下の全コンポーネントのfocusableをfalseにセットしないとJFrameのKeyReleasedイベントが発生しないし、やはりJFrame上でも手入力とバーコードリーダーの判断がつきません。 何か解決策があればご教授願います。

  • パスワード先頭文字が大文字に?

    ノートPC(ASUSU  K53Sですけど当然何故か?パスワード入力しても 一度目に失敗して絶対間違いない!ですけど二度目で認証されます。 よくよく調べると最初の文字がたぶん英大文字になってます。 ★例えばエクセルではファイル→オプション→文章構成→オートコレクトのオプション→文の先頭文字を大文字にする(これのチェックを外す)→OKで二箇所閉じる。 ★上記のような感じでパスワードを入れる時の英文字先頭が大文字になり困ってます。どうすれば解決するでしょうか?

  • バーコードリーダーからエクセル入力時の変換

    バーコードリーダーで読み取り、エクセルのセルへ入力するときに、全てを表示するのではなく一部だけ表示する方法はありますでしょうか。 具体的には、下記のように7ケタを6ケタへとエクセル入力時に変換されて表示されるようにしたいです。(つまり、先頭の#を削除するという設定にし、英字と数字の混合又は数字のみを表示させたいです。) バーコードリーダー   エクセル   #AB1234         AB1234   #123456        123456 エクセルの関数を使って変換する方法はいくつかあるかと思いますが、今回は関数を使わない方法でお願いしたいです。 例えば、セルの書式設定のユーザー定義では変換はできないのでしょうか。 そのような設定のできるバーコードリーダーを購入するしかないのでしょうか。 インターネット検索でも探しましたが全く見つからないので、ご存知の方教えていただけますと幸いです。

  • エクセルVBA 先頭と末尾(後尾)に文字入力する

    エクセルVBAについて教えてください (1)選択した複数のセルに文字入力がされていた場合、入力文字の先頭に*を入力させたい (2)選択した複数のセルに文字入力がされていた場合、入力文字の末尾(後尾)に*を入力させたい (3)選択した複数のセルに文字入力がされていた場合、入力文字の先頭と末尾(後尾)に*を入力させたい (1)一応、これで先頭に*が入力されました Sub test1() Dim c As Range For Each c In Selection If Len(c.Value) > 0 Then c.Value = "*" & c.Text Next End Sub (2)失敗(構文エラーになります) Sub test2() Dim c As Range For Each c In Selection If Len(c.Value) > 0 Then c.Value = c & "*".Text Next End Sub どのようにしたら、末尾に*を入力させられるのでしょうか (3)不明 (1)はできたのですが、(2)(3)はどうしたらよいか分かりません もし、(1)も変更した方が良いのであればそれも教えてください よろしくお願いします

  • 文字入力できなくなる時がある・・・

    突然、文字入力が出来なくなる場合があります。 マウスの操作は出来るので、何かをクリックしたり、検索バーにカーソルを出すことは出来るのですが、キーボードを打っても文字が出ません。 半角/全角キーを押して英語打ちとローマ字打ちの切り替えも出来ません。 こんなことになったのは最近で、ついさっきも入力出来なくなりました。ちなみに今回で2回目です。 再起動すると、「ピピピッ」という音とともに黒い画面に白い文字で「キーボードエラー」やその他に色々書いてある画面が出てきました。 よく分からなかったので、画面の「F1終了する」(「続行する」だったかもしれません)を選択して再起動を続行しました。しかし再起動後も文字入力が出来なかったので、1度電源を切ってから手動で電源をつけたら、普通に入力出来るようになり、今に至ります。 1回目の時も再起動の途中で黒い画面に白い文字が出てきて、今回と同じような操作をしました。 「キーボードエラー」というのが原因だと思うのですが、どうしたら問題解決するでしょうか。

  • 文字入力につきまして

    こんにちは、初めまして。 長らく同じパソコンを使っており、先日まで何も問題はなかったのですが、突然、文字入力について、今までローマ字変換で入力していたのに、パソコンを起動するたびに、文字入力の形態が、文字盤のひらがなで入力されるようになってしまい、起動のたびに文字バーをクリックして、入力形式を変更しなければいけなくなってしまいました。 どうすれば、「常にローマ字変換で入力」という元の状態に戻すことができるのでしょうか。 どうぞよろしくお願いいたします。

  • エクセルで入力規則のあるところに関数などはいれられますか

    カテゴリーよくわかりません。 バーコードで読み取ったものをA列に入力するとき データの入力規則・A列A1,A2,A3…はリスト1から選択 例) A列       リスト1 A1        012345 A2        012346 A3        012347            012348           012349 (ずれがなおりません)                  012350           リスト1の先頭は数字の0がついています。よって、セルの書式表示は文字列です。 リスト1の文字列は6文字ですが、 バーコードをバーコードリーダーなどで読みとりする場合 後ろのほうに必ず余計な数字1つか2つ付いてますよね。 それを読まないでA列に6文字だけ入力することはできないんでしょうか できればバーコードリーダーの設定は変えないで、関数の挿入とかで。 よろしくお願いします。

  • 文字入力がおかしい

    入力モードが平仮名になっているのに(言語バーは「あ」と表示されています)、半角英数で入力されてしまします。で、気づいて一回消した後打ち直すと平仮名で入力されます。 半角英数で入力されるのは、IEなどを開いて最初に入力するときだけで、2回目以降に入力するときは問題ありません。 どうなってるのでしょうか? ご指導お願いします。

  • 帳票形式のフィールド入力の時、TABオーダーで同一列の下のフィールドに

    帳票形式のフィールド入力の時、TABオーダーで同一列の下のフィールドに移動したい 使用環境:ACCESS2003 ↓のように帳票形式で表示しているテーブル 商品ID     納入日     仕入NO    管理コード 13     20091205       2569 14     20100326       6824 15     20100422       2548 16     20100430       3654 バーコードリーダーで管理コードを 順次入力したいのですが 理想はバーコードリーダー入力が終われば次の管理コードフィールドに カーソルが移動してくれるのいいのですが、 それが出来ない場合は、バーコードリーダーで値を入力した後、 TABキーやEnterを押すと 次の管理コードフィールドにカーソールが移動するように出来れば 大変嬉しいのですが、 どなたかよきアドバイスをいただけますようお願い申し上げます。

このQ&Aのポイント
  • PR-1000HDを起動した際に表示される「Current Password」というメッセージについて、パスワードの入力方法がわからない状況です。
  • パスワードの入力を求められることもなく、どのようなパスワードを入力すれば良いのかが分かりません。
  • ローランド製品やボス製品に関する質問であることをご了承ください。
回答を見る