He estado teniendo un problema que me ha plagado muchas veces durante el desarrollo de un proyecto de Flash. Se ve algo como esto:¿Cuál es la forma correcta de agregar componentes a la biblioteca de un Swf?
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at fl.containers::BaseScrollPane/fl.containers:BaseScrollPane::drawBackground()
at fl.controls::TileList/fl.controls:TileList::draw()
at fl.core::UIComponent/::callLaterDispatcher()
TypeError: Error #2007: Parameter child must be non-null.
at flash.display::DisplayObjectContainer/addChildAt()
at fl.controls::BaseButton/fl.controls:BaseButton::drawBackground()
at fl.controls::BaseButton/fl.controls:BaseButton::draw()
at fl.core::UIComponent/drawNow()
at fl.controls::ScrollBar/fl.controls:ScrollBar::draw()
at fl.core::UIComponent/::callLaterDispatcher()
Ahora, en mi caso, este error se debe a la inicialización de los componentes de código cuando no se han añadido explícitamente a la biblioteca de componentes de la FLA en CS4. En el pasado, me he encontrado con este problema al intentar crear dinámicamente ScrollPanes en el código. Lo he resuelto agregando componentes de ScrollPane a la biblioteca de Main.fla. Esto pareció funcionar por un tiempo.
Ahora, estoy tratando de usar un cuadro AstraFlash Autocompletar. Importé los archivos fla adecuados en CS4 y coloqué un cuadro Autocompletar en mi Swf. Todo se compila bien, pero el error anterior se produce cuando se carga el Swf. Mi idea es que el cuadro Autocompletar está intentando crear un ScrollPane como parte de su funcionalidad. Ok, entiendo esto, así que agrego el componente ScrollPane a la biblioteca también con los mismos resultados.
Por lo general, me gustaría meterme con los componentes/configuraciones de la biblioteca hasta que me deshago del error, pero estoy cansado de encontrarme con esto, y quiero saber la forma correcta de resolver el problema. Por lo tanto, aquí hay algunas preguntas que tengo:
cuando se le requiere para añadir un componente a la biblioteca de un Fla en lugar de crear el componente de código?
¿A qué Flas necesita agregar el componente? ¿Solo el que lo usa? ¿O todos los padres de esa Fla también?
Digamos que el componente Autocompletar requiere un componente ScrollPane. ¿Por qué no se reconoce esta dependencia cuando agrego el componente? ¿Por qué debo agregarlo explícitamente?
¿Cuál es la diferencia entre agregar un componente a la biblioteca y agregarlo a la carpeta 'Componentes de componentes' de la biblioteca? ¿Cuál es el propósito de esta carpeta?
Realmente necesito este componente Autocompletar para funcionar. Suponiendo que el código AS3 es correcto y sigo recibiendo el error anterior, ¿qué ajustes crees que probablemente sean incorrectos? Por frustración, intenté agregar todos los componentes posibles a la biblioteca, así como a la carpeta de activos de componentes de la biblioteca solo para tener un punto de partida, pero sigo recibiendo el error.
Cualquier ayuda es apreciada.