1. Introducción
Flash de Macromedia se utiliza ahora ampliamente en Internet para mejorar la descripción del contenido de los sitios Web. Los recientes lanzamientos de Flash de Macromedia (Flash 6 y Flash MX) han dejado claro que Macromedia está considerando seriamente Flash como una interfaz preferida para el desarrollo de aplicaciones Web. Para una interfaz, Flash puede ser una excelente opción; sin embargo, esta opción no es utilizarlo para reemplazar la lógica empresarial, la gestión de consultas y la seguridad. Para que un desarrollador web alcance un rendimiento verdaderamente potente y capacidades de clase empresarial, necesita .NET, Flash y compatibilidad con capas de descripción enriquecidas, combinados con la tecnología .NET de Microsoft.
Flash incluye ActionScript, un lenguaje de secuencias de comandos utilizado para agregar interactividad a las animaciones. Desde la introducción de ActionScript en Flash 5, Macromedia ha seguido mejorándolo desde un simple lenguaje de programación hasta una característica de programación bastante sólida que todavía tiene muchas limitaciones. En Flash MX 2004, Macromedia introdujo ActionScript 2.0, que admite nuevas funciones y nuevas formas de estructurar el código. Para que este artículo sea más fácil de entender, primero debe leer algunos conocimientos básicos sobre la creación de sitios Flash con ActionScript.
Macromedia ha introducido métodos para integrar fácilmente datos externos en aplicaciones Flash para permitir aplicaciones basadas en datos más complejas y sólidas. Tanto Flash como .NET se promocionan como soluciones multiplataforma y, por tanto, se convierten en socios naturales. Aún así, vincular las dos tecnologías no es una tarea sencilla. Este artículo analizará con usted varios métodos para integrar aplicaciones Flash y .NET.
2. Integre Flash y ASP.NET
e incruste animaciones Flash en páginas ASP.NET.
Las animaciones Macromedia Flash se colocan en páginas .aspx utilizando conjuntamente las etiquetas OBJECT y EMBED. La etiqueta EMBED fue desarrollada originalmente por Netscape para funcionar con Netscape 2.0 o superior. Posteriormente, esta etiqueta fue adoptada por Microsoft Internet Explorer (MSIE). Para compatibilidad con el navegador, la etiqueta OBJECT específica de MSIE y la etiqueta EMBED se pueden usar juntas. El siguiente código HTML muestra el uso de etiquetas OBJECT y etiquetas EMBED para incrustar una animación Flash (archivo *.swf):
3. Conecte Flash a datos externos
Hay tres formas de integrar animaciones Flash con datos externos: FlashVars, LoadVars y la nueva tecnología FlashRemoting. Uno de los métodos más simples es pasar datos externos desde una página .aspx a una animación Flash incrustada en una página web mediante FlashVars para pasar variables en la parte HTML del código. Se puede acceder a los valores de estas variables establecidas mediante FlashVars en el nivel raíz de la animación Flash. Para ejecutarse en todos los entornos de navegador, al atributo FlashVars se le debe asignar un valor en las etiquetas OBJECT y EMBED.
Aquí están las FlashVars utilizadas con una etiqueta de objeto:
<PARAM Name="FlashVars" Value="init=yes&check=true">
Las siguientes son las FlashVars utilizadas con la etiqueta EMBED:
<EMBED src="test.swf" FlashVars=" init =yes&check=true"></EMBED>
4. ¿Por qué utilizar FlashVars?
En lugar de tomar prestados FlashVars, también puede colocar variables en etiquetas HTML: agregarlas al final de la URL del archivo .SWF a través de una cadena de consulta y luego pasarlas a una animación Flash. Puede haber un problema con este enfoque, si esta variable es necesaria cuando se carga el archivo .SWF, ya que un archivo .SWF debe descargarse y ejecutarse antes de solicitar los datos del servidor. Los valores de las variables también se pueden configurar en Flash mediante el método "Cargar variables" y JavaScript. Cada uno de estos métodos tiene la desventaja de tiempos de respuesta lentos y lentos; es por eso que los desarrolladores deberían usar FlashVars para pasar datos de ASP.NET a animaciones Flash. La siguiente figura muestra el código para pasar variables como una cadena de consulta:
Se puede acceder a cualquier variable pasada mediante FlashVars en el nivel raíz de la animación Flash (_level0). Para recuperar estos valores dentro de una animación Flash, puede crear una variable dinámica. El siguiente código ActionScript implementa la asignación de "initvalue" en Flash:
_level0.initvalue = init;
5. Comunicación entre Flash y la base de datos
Una animación Flash no puede acceder directamente a una base de datos. Sin embargo, Flash puede comunicarse con la base de datos mediante cualquier tecnología del lado del servidor como ASP o ASP.NET. Hay varias formas de realizar esta tarea. En este artículo, explicaremos el método LoadVariables y el método sendAndLoad.
(1) Utilice el método loadVariables en el clip de animación.
El método loadVariables del clip de animación lee datos de un archivo externo o URL y establece el valor de la variable del clip de animación. Una vez que se crea una instancia del clip de animación, la acción de carga del clip de animación se inicia en el controlador de eventos del clip. Cuando se inicializa el clip de animación, se puede llamar al método loadVariables para cargar variables. El método loadVariables es una llamada asincrónica y Flash no espera el resultado de la llamada. Cuando se reciben datos en un comportamiento loadVariables(), el comportamiento de datos del clip de animación se inicializa en el controlador de eventos del clip.
Para demostrar el uso de este método, este ejemplo recupera el nombre y la edad del usuario de una base de datos basada en una identificación seleccionada de una animación Flash. En la siguiente figura, el método loadVariables de la animación se utiliza para cargar datos en el fragmento de animación desde una página .aspx getUserData.aspx. Aquí, ActionScript pasa la identificación del usuario; su nombre y edad se mostrarán en la animación Flash como una cadena de consulta a la página .aspx.
La página getUserData.aspx recupera el valor de identificación de la cadena de consulta que se muestra a continuación:
Ahora, ASP.NET puede pasar este valor de identificación a los componentes comerciales .NET. Este ejemplo recupera el nombre y la edad del usuario:
Como se mencionó anteriormente en esta sección, el comportamiento de los datos del controlador de eventos onClipEvent del clip de animación se inicializa cuando se reciben datos en un comportamiento loadVariables(). Declare las siguientes variables dinámicas en la animación Flash: flashName y flashAge. La siguiente figura muestra el código ActionScript que se utiliza en el controlador onClipEvent de la animación Flash para recuperar el valor devuelto desde la página .aspx.
NOTA: Es importante: es la misma variable que se establece desde la página .aspx. En el ejemplo que se muestra aquí, la variable a la que se accede en la animación Flash es "nombre", la misma variable que establece desde la página .aspx (Response.Write("name="&User.name)).
Estos valores ahora se pueden utilizar dentro de animaciones Flash.
(2) Utilice el método sendAndLoad de clips de animación
En la Internet actual, XML ocupa un lugar importante como sistema de documentos como formato de transporte universal con el potencial de permitir un intercambio fluido de datos incluso entre diferentes tipos de aplicaciones. XML proporciona un mecanismo de puerta de enlace para la comunicación entre aplicaciones, incluso aplicaciones en una amplia gama de sistemas diferentes. Siempre que las aplicaciones puedan compartir datos (a través de HTTP, intercambio de archivos u otro mecanismo) y tengan un analizador XML, pueden compartir información estructurada que es muy fácil de procesar.
Flash MX admite la transferencia de datos XML y existen varios métodos de tecnología de servidor como ASP y ASP.NET para intercambiar XML. Flash MX puede enviar y recibir paquetes XML utilizando las clases XML: cargar, enviar y enviarAndLoad o el nuevo XMLConnector de Flash MX. El último se puede utilizar para enviar y recibir paquetes a través de HTTP y vincularlos a widgets de interfaz de usuario en la capa Flash.
Analicemos el método sendAndLoad del objeto FlashXML, que es un método popular para implementar comunicación de datos XML, manejo de excepciones y rendimiento orientados a la arquitectura. Usamos este ejemplo simple de insertar los detalles de la puntuación de un usuario en una base de datos desde un cliente Flash y enviar un mensaje de éxito o fracaso al cliente Flash.
(3) Crear un paquete XML en Flash
Se puede crear fácilmente un paquete XML en Flash, de la siguiente manera:
var
sendXML:XML = new XML("<userid>123456</userid>");
página: utiliza ASP/ASP.NET y maneja el paquete XML de retorno.
El uso es el siguiente:
xmlObject.sendAndLoad (URL: String, targetXMLObject: XML): Void
Este 'xmlObject' es una instancia de objeto XML: encapsula el XML que debe enviarse a la página .aspx; esta 'URL' es la; URL de destino que especifica el objeto XML; 'targetXMLObject' es el objeto XML; recibirá la información devuelta desde el lado del servidor.
El método sendAndLoad envía un paquete XML a una plantilla del lado del servidor y recibe un paquete XML como respuesta, a diferencia del método send de la clase XML, que sólo envía un paquete XML y no espera ningún tipo de respuesta. Cada uno de estos métodos funciona a su manera, pero hay una diferencia importante: el método de envío de la clase XML toma un objetivo como parámetro: le permite abrir una nueva ventana del navegador o reemplazar el contenido de la ventana actual del navegador. Mientras que el método sendAndLoad toma un paquete XML como parámetro, no inicia una nueva ventana del navegador. Debido a que el método de envío abre una nueva ventana del navegador, podemos ver el resultado de la propia ventana del navegador, lo que puede ser extremadamente útil para la depuración.
Nota: Si el archivo Flash que emite la llamada sendAndLoad se ejecuta en un navegador web, la URL de destino estará en el mismo dominio que la animación Flash. Si también necesita comunicarse con aplicaciones en diferentes dominios, consulte "Carga de datos entre dominios" en
www.macromedia.com para obtener más información.
El código de la siguiente figura muestra cómo se utiliza el método sendAndLoad de un objeto XML para comunicarse con una página .aspx y procesar el XML devuelto desde el servidor:
El código anterior hace lo siguiente:
· Carga la cadena XML en un objeto XML "userscore_xml". La instancia contiene el XML, que se envía a la página ASP.NET del lado del servidor remoto.
·Establezca el atributo ignoreWhite del objeto XML "ResponseXMLObj_xml". Esta instancia de objeto XML contiene el paquete XML del servidor.
·Llame al método sendAndLoad ("userscore_xml") del objeto XML para enviar XML a la página .aspx del lado del servidor,
http://localhost/MyTestApp/scoring.aspx y almacene el paquete XML devuelto en la instancia del objeto XML "ResponseXMLObj_xml". ".
·Establezca el método onLoad del objeto XML "ResponseXMLObj_xml". Flash recibe la respuesta XML de la página .aspx del lado del servidor; se maneja en el método onLoad del objeto XML.
·Luego analiza el paquete XML recibido para mostrar los mensajes necesarios en el cliente Flash.
(4) Recibir el paquete XML enviado desde el Flash de la página ASPX.
La siguiente figura muestra el código para completar esta tarea:
El código anterior hace lo siguiente:
· Recibe el XML enviado desde el cliente Flash (xmlDoc.Load(Request.InputStream)).
· Analiza el XML recibido y lo pasa al componente empresarial para su inserción en la base de datos.
· El mensaje XML formado se devuelve al cliente Flash. Las condiciones de éxito o excepción planteadas en la capa empresarial se manejan en consecuencia y se convierten en varios mensajes XML; este mensaje se devuelve al cliente Flash. El cliente Flash recibe estos mensajes XML y los muestra en consecuencia.
6. Conclusión
Las tecnologías Flash y .NET están ganando popularidad en el mercado actual y es probable que se conviertan en socios exitosos en un número cada vez mayor de arquitecturas de aplicaciones. Estas dos técnicas abordan algunos de los mismos problemas, pero son fundamentalmente diferentes. Flash MX permite que los sitios web experimenten interactividad, mientras que .NET ayuda a crear aplicaciones empresariales. Como se explora en este artículo, la integración de aplicaciones Flash y .NET es completamente posible. Cada paso consiste en tomar una decisión: cómo conectar estas dos partes y realizar estratégicamente la planificación arquitectónica correcta.
Aunque una nueva generación de arquitecturas en torno a Flash Remoting está ganando impulso en esta área, pasarán varios años antes de que los métodos analizados en este artículo puedan aplicarse a aplicaciones a gran escala.