Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Adobe Air: scroller throws error when changes focus between different applications

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]

In my Adobe Air program, I got the above error, whenever I use my app, and switch focus around between this app and other applications. (I've tried several times and this error is reproducible.)

What causes this problem and how to fix it?

EDIT: my program has a stackview, and one of the stackviews has a list. This error above will occur when the list has at least one object in.

like image 984
Karl Avatar asked Mar 05 '26 10:03

Karl


1 Answers

I've got the same problem in one of my projects and looks like it's known bug of SDK. In my case I just wrote custom Scroller class where added focusManager != null check. Something like

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);
            }
        }
    }
}

Best regrads, Roman

like image 151
CrazyCrow Avatar answered Mar 07 '26 11:03

CrazyCrow



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!