¿Cómo se lee el valor de una entrada de texto en un Flash SWF desde una aplicación Flex?

Tengo una aplicación Flex, que carga un archivo SWF de CS3. El archivo SWF cargado contiene una entrada de texto llamada "myText". Puedo ver esto en SWFLoader.content sin problemas, pero no sé de qué tipo debería tratarlo como en mi aplicación Flex. Pensé que los doc. Flex lo cubrían pero solo puedo encontrar cómo interactuar con otro Flex SWF.

El depurador de Flex me dice que es del tipo fl.controls.TextInput, que tiene sentido. Pero FlexBuilder no parece saber esta clase. Si bien Flash y Flex usan AS3, Flex tiene una biblioteca completamente nueva de clases de GUI. Pensé que también tenía todas las clases de Flash, pero no puedo comunicarme con NINGÚN paquete fl. ***.

0
agregado editado
Puntos de vista: 1

3 Respuestas

La jerarquía de clases fl. * es solo Flash CS3. Es la biblioteca de Flash Components 3 (creo que se llama, podría estar equivocado). Sin embargo, no necesita la clase para trabajar con el objeto. Siempre que pueda obtener una referencia en su código, que parece tener, puede asignar la referencia a una variable sin tipo y trabajar con ella de todos modos:

var textInput : * = getTheTextInput();//insert your own method here

textInput.text = "Lorem ipsum dolor sit amet";

textInput.setSelection(4, 15);

No es necesario conocer el tipo de objeto para interactuar con él. Por supuesto, pierdes el control de tipos en tiempo de compilación, pero eso no es un gran problema, solo tienes que tener mucho cuidado.

Si realmente desea realmente hacer referencia al objeto como su tipo real, la clase en cuestión se encuentra en

Adobe Flash CS3/Configuration/Component Source/ActionScript 3.0/User Interface/fl/controls/TextInput.as

... si tiene instalado Flash CS3, porque solo se envía con esa aplicación.

0
agregado

Los SWF de Flex y Flash son esencialmente los mismos, creados con diferentes herramientas. No estoy seguro de si comparten las mismas bibliotecas de componentes, pero según los nombres de los paquetes supongo que al menos en su mayoría lo hacen.

Si se trata de una entrada de texto normal, supongo que es una instancia de mx.controls.TextInput.

0
agregado

Tenga en cuenta que si hace lo que dijo Theo y lo referencia con el tipo correcto, compilará esa clase en ambos archivos SWF, incluso si no lo está utilizando en el primero. Lamentablemente, las clases fl. * No implementan ninguna interfaz, por lo que no puede escribirlas en la interfaz en lugar de en la implementación. Si pudiera, solo se compilaría la interfaz, que es mucho más pequeña que la implementación. Para este no será un gran problema, probablemente va a agregar solo un par de kb, pero a la larga se suma. Solo un aviso;)

0
agregado