Flex 中很幽灵的一个bug

如题:

 

偶尔会出现如下错误,在debug的时候:

 

TypeError: Error #1009: Cannot access a property or method of a null object reference

at spark.components::Scroller/focusInHandler()[....\sdks\4.5.1\frameworks\projects\spark\src\spark\components\Scroller.as:1273]

 

跟进代码中去看1273 行如下:

 

override protected function focusInHandler(event:FocusEvent):void
    {
        super.focusInHandler(event);
       
        // When we gain focus, make sure the focused element is visible
        if (viewport && ensureElementIsVisibleForSoftKeyboard)
        {
            var elt:IVisualElement = focusManager.getFocus() as IVisualElement;
            lastFocusedElement = elt;
        }
    }

 

我的项目中有四个popup,至于到底是不是popup弹出窗口引起的,还不是很清楚、、、

先按照他提供的方法fix掉了:

 

解决办法如下:

 

The problem is that your popup doesn't implement the IFocusManagerContainer interface.

Implementing IFocusManagerContainer allows the system to assign a FocusManager to the popup, and this error goes away.

 

于是我在popup弹出窗口的(也就是TitleWindow)中加了个属性:

implements="mx.managers.IFocusManagerContainer"

 

至于好没有好,还得验证过一段时间。。。O(∩_∩)O~

你可能感兴趣的:(Flex)