• 締切済み

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