3
TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at spark.components::Scroller/focusInHandler()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\Scroller.as:2139]
    at flash.display::Stage/set focus()
    at mx.core::UIComponent/setFocus()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:9905]
    at spark.components::RichEditableText/setFocus()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\RichEditableText.as:3126]
    at spark.components.supportClasses::SkinnableTextBase/setFocus()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\supportClasses\SkinnableTextBase.as:1874]
    at mx.managers::FocusManager/activateWindowHandler()[E:\dev\4.y\frameworks\projects\framework\src\mx\managers\FocusManager.as:740]
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at mx.core::UIComponent/dispatchEvent()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:13152]
    at spark.components::WindowedApplication/nativeWindow_activateHandler()[E:\dev\4.y\frameworks\projects\airspark\src\spark\components\WindowedApplication.as:2739]

私の Adob​​e Air プログラムでは、アプリを使用するたびに上記のエラーが発生し、このアプリと他のアプリケーションの間でフォーカスを切り替えます。(何度か試しましたが、このエラーは再現可能です。)

この問題の原因とその修正方法を教えてください。

編集:私のプログラムにはスタックビューがあり、スタックビューの1つにリストがあります。上記のエラーは、リストに少なくとも 1 つのオブジェクトが含まれている場合に発生します。

4

4 に答える 4

2

私のプロジェクトの 1 つで同じ問題が発生し、SDK の既知のバグのようです。私の場合、focusManager != null チェックを追加したカスタム Scroller クラスを作成しました。何かのようなもの

package components
{
    import flash.events.FocusEvent;
    import spark.components.Scroller;
    public class MyScroller extends Scroller
    {
        public function MyScroller()
        {
            super();
        }

        override protected function focusInHandler(event:FocusEvent):void
        {
            if(focusManager != null) {
                super.focusInHandler(event);
            }
        }
    }
}

よろしくね、ローマン

于 2012-05-19T21:50:03.980 に答える
1

同じ問題が発生しました。根本的な原因は、ポップアップされるコンポーネントがIFocusManagerContainerインターフェイスを実装していない場合、PopUpManager/PopUpAnchorがfocusManagerを適切に設定しないことでした。そのようなインターフェースを実装した後、問題はなくなります。

于 2012-09-10T11:52:27.717 に答える
1

これは古いことは知っていますが、ここに私にとって有効な解決策があります。

dataGrid.scroller.addEventListener(FocusEvent.FOCUS_IN, dataGridFocusInHandler, false, 1);

protected function dataGridFocusInHandler(event:FocusEvent):void {
    if(dataGrid.scroller.focusManager == null) {
        event.stopImmediatePropagation();
    }
}

私が予想するリストにも適用できます

乾杯アズ

于 2012-08-15T09:32:38.503 に答える