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