Visual Basic.NET - .net y flash

   
Vista:

.net y flash

Publicado por Luis Miguel Romero (1 intervención) el 14/07/2009 09:02:51
Hola, haber si me podeis ayudar.

He creado una aplicación de .net que carga un fichero de flash en donde se muestra un mapa de google de tal forma que tenga unas marcas que yo ya he definido en ese flash.

En .net tengo, además del objeto flash insertado, hay un ComboBox en donde están todos los puntos que hay en el mapa. La idea es que al pulsar a cada uno de estos elementos del ComboBox el mapa se traslade a él, es decir, se centre en ese punto.

Para centrar un mapa en flash se llama a la función:

map.setCenter(new LatLng(myLat,myLen), 14, MapType.NORMAL_MAP_TYPE);

En .net, puedo mediante el SetVariable modificar el valor de variables de flash, pero no he conseguido llamar a la función, es decir, no he podido realizar una llamada de una función en concreto, como puede ser centrarmapa o algo que se defina.

Se que en .net también esta el CallFunction para flash, pero no he podido hacerla funcionar.

Alguna sugerencia para hacer lo que quiero?

Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:.net y flash

Publicado por Luis Miguel Romero (3 intervenciones) el 27/07/2009 09:21:47
Ya encontre la solución, respondo por si alguien más le surge la duda.

La solución se basa en la clase ExternalInterface de flash. En la web de adobe hay muchos ejemplos sobre flash, el que interesa es el Introvert_CSharp.

Resumo los pasos para establecer comunicación con flash y poder llamar a las funciones:

---- AS3
Simplemente declara una función con el nombre que quieras y los parámetros que quieras. Despues hay que añadir la línea ExternalInterface.addCallback con el nombre de la función a llamar. Ejemplo:

function miFuncion(miVar:string):void {
trace(miVar);
}
ExternalInterface.addCallback("miFuncion", "funcionNET");

Ojo, funcionNET es el nombre que se verá desde .net, NO miFuncion. Yo, para no confundirme las llamo exactamente igual.

---- .NET
Aqui la cosa es un poco más compleja.

1º Buscamos en la web de adobe los ejemplos de flash que vienen. En concreto buscamos el ejemplo IntrovertIM_CSharp. Sino buscar en google con este nombre que sale todo. :-P

2º Dentro de este ejemplo se encuentra una dll con el nombre ExternalInterfaceProxy. La pegamos en nuestro proyecto .net y la incluimos en las referencias.

3º Importamos el espacio de nombres para poder acceder a las clases que se encuentran en su interior:
imports Flash.External

4º Creamos una variable del tipo ExternalInterfaceProxy, la cual pide un objeto ShockwaveFlash (asumo que ya lo teneis, sino hay muchisimos tutos de como insertarlos)
Public proxy as ExternalInterfaceProxy = new ExternalInterfaceProxy(ShockwaveFlashObject)

5º Simplemente llamamos al métedo call de la variable proxy indicando la función y los parámetros:
proxy.call("funcionNET", variableString)

Con esto el sistema ejecutará en flash la función indicada. Para saber más, leerse el manual de adobe, en el cual se explican muchas más cosas. Esto es una forma rápida de establecer comunicación con un mínimo de funcionalidad. En mi caso basta.

P.D: Como cuiriosidad (o mejor dicho dolor de cabeza), las variables double de .net y Number de flash no son equivalentes (al menos a mi no me ha funcionado) y por tanto no podremos tener una función a la cual se le pase un double ya que no se reconoce. La solución es pasar un valor string y en flash convertir el string en Number mediante:
miVarNumber = Number(miVarString)

P.D: Ojo con la coma de separación, tiene que ser punto.

Ya se que es mucho tostón, pero es lo que tiene, jeje.

Luis Miguel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:.net y flash

Publicado por Fernando (1 intervención) el 24/08/2009 09:18:07
Hola, por suerte lei tu post... estaba a punto de abandonar el intento de hacer la interaccion entre flash y VB2005. este es el punto, no encuentro el ejemplo y por ende la libreria para hacer el import de Flash.External, estoy trancado en esto.
Si pudieras enviarmela por mail o mismo el ejemplo me ayudarias muchisimo...

Saludos.
Fernando.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:.net y flash

Publicado por Luis Miguel Romero (3 intervenciones) el 09/09/2009 18:34:04
Disculpame por la tardanza, he estado revisando los foros por si a alguien le ha servido la información.

En estos momentos no dispongo de la información, pero tranquilo que en unos días respondo con la url de donde lo saque. Sino tienes mi correo donde puedes enviarme la consulta y te mando el archivo y un ejemplito.

Un saludo

Luis Miguel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:.net y flash

Publicado por Luis Miguel Romero (3 intervenciones) el 15/09/2009 14:31:44
Fernando

Como dije, en la siguiente url está el archivo .rar del ejemplo que nombro (IntrovertIM_CSharp).

http://rapidshare.com/files/280385341/IntrovertIM_CSharp.rar.html

Espero que sea de ayuda.

Un saludo

Luis Miguel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:.net y flash

Publicado por Leonardo De Los Santos (1 intervención) el 17/06/2012 14:42:27
Hola Luis Miguel, si pudieras enviarme el IntrovertIM_CSharp te lo agradecería mucho!!!!!
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar