4

タイトルで言ったように、Dart で keyup イベントをシミュレートしたいと思います。問題は、新しい KeyboardEvent オブジェクトを作成する方法がわからないことです。

私が見つけた唯一の方法は、 Event(String type) コンストラクターを使用してから、ウィンドウ オブジェクトにディスパッチすることです。しかし、パラメーターで KeyboardEvent を受け取る「keyup」ハンドラーが原因で、それは機能しません。例:

window.on.keyUp.add((KeyboardEvent e){
 print('keyUp handler');
});
KeyboardEvent e = new Event("KeyboardEvent");
window.on.keyUp.dispatch(e);

Dartで「キーア​​ップ」をシミュレートするためにKeyBoardEventを作成してディスパッチする方法はありますか?

また、js-interop ライブラリのおかげで、JavaScript でイベントをトリガーしようとしたことにも言及する必要がありますが、JS ハンドラーのみを起動します。

4

2 に答える 2

1

次のコードを試してください。

window.on.keyUp.add((Event event){
    print('keyUp handler');

    if(event is KeyboardEvent)
    {
      KeyboardEvent keyEvent = event as KeyboardEvent;
      //do stuff with keyEvent if needed
    }  
});

window.on.keyUp.dispatch(new Event("keyup"));

Eventコンストラクターのパラメーターはイベントのタイプでなければならないと思います。また、イベントがkeyboardEventであるかどうかを確認できるため、たとえばKeyIdentifierを処理できます。

于 2012-11-28T03:44:17.780 に答える
0

ウィンドウから KeyBoardEvent をディスパッチできるようになりました。詳細については、Google グループのディスカッションを参照してください: https://groups.google.com/a/dartlang.org/d/topic/misc/mgnd1TUGn68/discussion

于 2012-12-29T17:11:40.973 に答える