編集可能リストの 'up'と 'down'キーのデフォルト処理をオーバーライドしようとしています。エスケープキーが押されたように動作しますが、 'selected item bar'は上下に動きます。ここフレックス3:編集可能リストのkeyDownHandlerがフォーカスの問題を解決する
ある私の(簡体字)成分:
<?xml version="1.0" encoding="utf-8"?>
<mx:List xmlns:mx="http://www.adobe.com/2006/mxml"
enabled="true" width="100%" height="100%"
creationComplete="initialise()"
editable="true"
>
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
private function initialise():void
{
dataProvider = new ArrayCollection(["this", "is", "a", "very", "simple", "example"]);
}
override protected function keyDownHandler(event:KeyboardEvent):void
{
if (event.keyCode == Keyboard.ESCAPE
|| event.keyCode == Keyboard.DOWN
|| event.keyCode == Keyboard.UP)
endEdit("ENDEDIT"); // Same behaviour with destroyItemEditor();
super.keyDownHandler(event);
//callLater(this.setFocus);
}
]]>
</mx:Script>
これが機能しないいくつかの理由
:行が編集されている場合、「アップ」第一(又はダウン)キー押下終了編集し、バーを移動します。さらに上下のキーを押しても効果はありませんが、リストの近くをクリックすると作業が開始されます。これは私がそれが焦点の問題だと思うようにする。奇妙なことに、エスケープを押すと編集が終了し、正しく上下に移動できます。
リストにフォーカスを保持しようとすると 'callLater'行のコメントが外された場合、バーは最初にキー押し方向に移動しますが、元の行に戻って元の行を再編集します。
誰でもアイデアがありますか?事前に
おかげで、
マイク