¿Cómo enviar comandos desde la aplicación C# a su aplicación Adobe Flash alojada?

Tengo una aplicación C# que aloja (usando Shockwave Flash Object que está en AxInterop.ShockwaveFlashObjects.dll) una aplicación flash.
Puedo enviar comandos desde la aplicación flash a mi aplicación c# usando "fscommand" de flash.
Ahora necesito enviar comandos (como configurar un texto flash) desde la aplicación c# a la aplicación flash, ¿puedo hacer eso? ¿cómo?

preguntado el 28 de julio de 12 a las 09:07

Debería ser posible a través de Interfaz externa -

@GeorgeProfenza: Gracias por la respuesta, ¿hay alguna muestra de C# del uso de ExternalInterface? -

@GeorgeProfenza muchas gracias -

1 Respuestas

Hay algunas maneras de lograr:

  1. Como ha señalado George Profenza, utilizando Interfaz externa es una implementación simple que permite la comunicación bidireccional. Puede manejar algunos datos primitivos de ida y vuelta, y es ideal para la comunicación Flash alojada que implica una pequeña cantidad de datos en cada llamada. Sin embargo, hay límite de tamaño en cuanto a la cantidad de datos que se pueden enviar y recibir.

  2. Si el tamaño importa, XmlSocket sería otra opción que permite la comunicación bidireccional con estado. En el extremo C #, puede usar fragmento como este para crear el servidor XmlSocket, y hacer que la aplicación host aloje el servidor también, luego haga que Flash se conecte al servidor al inicio. No hay límite de tamaño, pero tendría que codificar cada llamada en XML, por lo que es un poco de sobrecarga serializar y deserializar datos en ambos extremos. He usado esta tecnología en algunas aplicaciones Winform basadas en .NET independientes con éxito durante años.

  3. Una tercera opción sería utilizar FlashRemoting. Es similar a la estrategia utilizada en la opción anterior, pero el "servidor" sería un servidor Flash Remoting que es capaz de comunicarse con Flash mediante AMF. La principal ventaja de este enfoque es que no tiene que escribir ningún serializador/deserializador ya que el servidor y Flash se encargarían de eso por usted, y tampoco hay límite de tamaño, es ideal para escenarios donde tiene una variedad de llamadas con estructura de datos compleja. Sin embargo, existe un costo inicial de integración del servidor. Hay solución de código abierto y soluciones de código cerrado.

Es posible que la tercera opción no se explore, ya que la mayoría de la gente la usaría para aplicaciones web. Personalmente, prefiero la tercera opción, aunque no tengo experiencia de primera mano integrándola como una aplicación de formulario de Windows. Lo prefiero porque tiene el potencial de convertir fácilmente la aplicación en una aplicación basada en la web y también admite estructuras de datos complejas sin el costo de la serialización de datos.

contestado el 23 de mayo de 17 a las 12:05

Bien explicado y documentado +1 - Jorge Profenza

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.