Comunidad de diseño web y desarrollo en internet online

Comunicación Flash .net

Citar            
MensajeEscrito el 07 Jul 2009 08:11 am
necesito comunicarme desde .net con flash. utilizo el setvariable para cambiar los valores de las variables de flash en .net.
Mi pregunta viene ahora:

¿Como puedo hacer que se llame una función desde .net? Es decir, que por ejemplo, cuando pinche un botón en .NET me ejecute una función que hay en flash. Tiene que ser así, porque la aplicación flash es una mapa, y desde .net quiero que un combobox almacene una serie de puntos. Por tanto cuando marque un punto en el combo, el mapa deberá desplazarse hasta él.

Muchas gracias por su colaboración.

Por luirocel

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Jul 2009 10:39 am
En realidad estás haciendo una comunicación en el lado cliente, con lo cual utilizas JavaScript, independientemente del lenguaje de back-end que uses. Para comunicarse con Flash desde JavaScript usas la clase ExternalInterface, hay en Cristalab algún tuto

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 27 Jul 2009 07:15 am
Jorge, muchas gracias por tu respuesta y perdona por la demora.

No encontre el tutorial en Cristalab, de todas formas me puse a investigar por la red sobre el ExternalInterface y encontré un tutorial de programación completo (y en castellano) en la web de adobe, en donde también se explicaba el ExternalInteface y su uso en los contenedores ActiveX, que no es igual que si usas JavaScript.

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

Por luirocel

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 Ago 2009 10:05 am
Buenas!!

Pues nada mi pregunta es, dodne puedo conseguir esos archivos???eske en la direccion que pones no aparecen y he investigado un poco y nada... creo que la pagina ya no esta disponible. Esta es la direccion del manual:

http://livedocs.adobe.com/flash/9.0_es/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00000346.html

Dentro dice una direccion para entrar y descargarte los ejemplos (la dll y los demas archivos) pero nada, no funciona y no los encuentro.

¿¿Alguna idea??



Un Saludo y Gracias!!!

Por despotars

11 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Ago 2010 09:26 pm
Hola Disculpa la demora, mas vale tarde que nunca, jajaja.
http://www.adobe.com/go/as3examples

Saludos

Por cafeheco

8 de clabLevel



 

msie8
Citar            
MensajeEscrito el 20 Ago 2010 12:29 am
Nah, si solo ha pasado un año :)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.