Flex: pasar el archivo MXML como parámetro XML
-
03-07-2019 - |
Pregunta
¿Es posible pasar MXML por sí mismo como parámetro (parámetro XML) desde una aplicación externa y cargarlo en Flash Player dinámicamente para crear la página. Por ejemplo
pasando xml = < mx: lienzo > < mx: texto de etiqueta = " hola " / > < / mx: lienzo > Flex y flex deberían crear un lienzo con control de etiqueta. ¿Hay algún ejemplo relacionado con él?
Gracias
Solución
Mi conjetura inicial es no, aún sería del tipo " XML " ;, y no hay " eval " en Actionscript 3. Hice una búsqueda rápida y voy a tener que decir que no, esto no es posible.
Sin embargo, hice algo similar en una aplicación que creé.
Lo que hice fue almacenar en una base de datos el tipo de objeto y algunas propiedades (x, y, ancho, alto, etc.). Estos datos se devuelven de una llamada a un objeto remoto y estos objetos se crean en tiempo de ejecución, lo que puede obtener un efecto similar que está tratando de lograr.
Por ejemplo:
var resultAC:ArrayCollection = event.result as ArrayCollection;
var tmpCanvas:Canvas;
for(var i:int = 0; i < resultAC.length; i++)
{
if(resultAC.getItemAt(i).type == "Canvas")
{
tmpCanvas = new Canvas();
tmpCanvas.x = resultAC.getItemAt(i).x;
tmpCanvas.y = resultAC.getItemAt(i).y;
...
parent.addChild(tmpCanvas);
}
}
Otros consejos
El código MXML debe compilarse en ActionScript antes de que Flash Player pueda hacer algo con él. MXML no es interpretado por Flash Player en tiempo de ejecución.
Lo que quieres hacer no es posible. Como dijo brd6644, mxml se compila en bytecode en el swf que interpreta Flash Player. El reproductor flash no comprende el mxml (e incluso el ActionScript).
Dicho esto, hay una biblioteca JSP que puede usar para MXML dinámico. Ver aquí:
http://www.adobe.com/devnet/flex/articles /server_perf_05.html
Ese enlace es antiguo, y en este momento parece que no puedo encontrar un enlace actualizado, pero sé que el proyecto aún existe. Creo que todavía se envía como parte de ColdFusion. Le permite crear mxml dinámico que se compila JIT a petición. Por supuesto, tiene un impacto sustancial en el rendimiento debido a ello, pero si necesita MXML dinámico, es una opción.
Actualizaré este comentario con un enlace mejor cuando lo encuentre.
Simplemente almacene las propiedades de componente a un XML y poner un className atributo para que si carga el XML puede tener una función para configurar el atributos del XML a la propiedades de su componente creado que se determinará en su atributo className