¿Aplicación flexible al componente?
-
05-07-2019 - |
Pregunta
Tengo una aplicación incorporada en Flex Builder 3. Tiene una buena cantidad de código mxml y as3 que utiliza otros componentes personalizados. He visto la documentación sobre componentes de compilación que muestra cómo hacer un mxml simple o un componente de script de acción que se extienda a algo así como un cuadro combinado, pero estoy perdido en cuanto a cómo tomar una Aplicación completa existente y que funcione de manera independiente y convertirla en una Componente reutilizable.
Básicamente, me gustaría crear varias instancias de esta aplicación dentro de otro proyecto flexible.
¿Alguien es capaz de proporcionar una pequeña guía?
Solución
Lo fácil es intercambiar la etiqueta mxml de la aplicación con una etiqueta VBox ... para que actúe como un componente.
por ejemplo Si esta fuera su aplicación:
//Foo.mxml
<mx:Appliction xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Label text = "foo" />
</mx:Appliction>
cámbielo a:
//Foo.mxml
<mx:VBox>
<mx:Label text = "foo" />
</mx:VBox>
y luego puedes hacer algo como esto:
//App.mxml
<mx:Appliction
xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:local="your.package.scheme.*"
>
<local:Foo />
</mx:Appliction>
Es posible que deba hacer algunas propiedades públicas si necesita pasar datos al componente ...
Otros consejos
Si simplemente quieres algunos "padres" Aplicación Flex para incrustar varias instancias de esta aplicación secundaria autónoma, entonces debería ver " Incrustar tipos de activos " documentación, que describe cómo incrustar un archivo SWF en otro.
De la documentación:
Por lo general, incrusta una aplicación Flex cuando no requieres la incrustación aplicación para interactuar con el Aplicación incrustada. Si la incrustacion aplicación requiere interactividad con la aplicación integrada, usted podría considerar implementarlo como un componente personalizado, en lugar de como un aplicación separada.
Si do requiere interacción entre la aplicación integrada y la aplicación principal, puede buscar en SWFLoader control.