flex air flex4 flash-builder scroller

flex - Adobe Air: el desplazamiento arroja un error cuando cambia el enfoque entre diferentes aplicaciones



flex4 flash-builder (4)

Tengo el mismo problema en uno de mis proyectos y parece que es un error conocido de SDK . En mi caso, simplemente escribí una clase de desplazamiento personalizada donde se agregó el control de enfoque! = Verificación nula. Algo como

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

Los mejores regrads, Roman

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]

En mi programa Adobe Air, recibí el error anterior, cada vez que uso mi aplicación, y cambio el enfoque entre esta aplicación y otras aplicaciones. (Lo he intentado varias veces y este error es reproducible).

¿Qué causa este problema y cómo solucionarlo?

EDITAR: mi programa tiene un stackview, y uno de los stackviews tiene una lista. Este error anterior se producirá cuando la lista tenga al menos un objeto en.


Me encontré con el mismo problema, y ​​la causa principal fue que PopUpManager / PopUpAnchor no configuraría adecuadamente el focusManager si el componente que se está creando no implementa la interfaz IFocusManagerContainer . Después de implementar dicha interfaz, el problema desaparece.


Estaba teniendo este problema, y ​​resulta que fue causado por algunos botones que tenía como renderizadores de elementos en mi grilla. Estos botones cambiarían la vista a una sección diferente, y aparentemente mantendrían el foco después de presionar, causando todo tipo de problemas. Los configuré en focusEnabled = false, y resolvió el problema.


Sé que esto es viejo, pero aquí hay una solución que funciona para mí.

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

y

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

también podría haberse aplicado a una lista que anticipo

Cheers Adz