Comunidad de diseño web y desarrollo en internet online

Duda con rutas

Citar            
MensajeEscrito el 30 Oct 2010 11:14 pm
Hola, no se me ocurre cmo resolver lo sig.

Usando new URLRequest cargo un swf al escenario.
este swf a su vez, carga un nuevo swf.

Ahora mi duda: desde el último cargado, quiero mover un mc de nombre "cubo" que está en el swf principal (desde donde se cargaron los otros) o también escribir en un textField dinámico llamado "texto".
¿cuál es la forma en que debo escribir la ruta?

Por CRD

80 de clabLevel



Genero:Masculino  

Diseño Filete Ilustración

msie8
Citar            
MensajeEscrito el 31 Oct 2010 06:33 am
Tienes que usar cast a la clase principal o swf, algo del estilo. Busca en Google, hay muchas referencias de esto.

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 31 Oct 2010 09:08 am
BuenAS:

Como te ha comentado Hernán puedes tipificar la película cargada como de la clase de la película cargadora. Algo así:

Código ActionScript :

import MiPeliculaCargadora;
MiPeliculaCargadora(this).cubo.x = 100;


Imagino que en la estructura de tu proyecto es lo que más se adapta, pero si puedes repensanlo, cambia el enfoque. Esta solución tiene bastantes problemas: Incluyes la clase prinicipal del swf cargador en el swf cargado. Cada vez que modifiques algo de la clase cargadora vas a tener que compilar el swf cargado. Por ejemplo, si en lugar de "cubo", lo llamas "miCubo", tienes que volver a editar el fla y modificarlo.

Imagino, por lo que comentas que el swf cargado debe ser algún tipo de interfaz gráfica para que el usuario mueva cosas. Por ejemplo, imagino que fuese un slider (un arrastrador). ¿Por qué en lugar de que este slider mueva directamente el cubo que hay en la película cargadora no haces que la película cargadora vea en qué posición está el slider y SEA ELLA la que mueva SU cubo en función del valor que tenga el slider? De esta forma te vas a quitar bastantes problemas.

Un saludo.

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 31 Oct 2010 10:16 am
Gracias a los dos.
Lukánicos, es un catálogo de productos.
La película cargadora carga a una línea del catálogo (2do swf).
La película tiene unas miniaturas que se crean dinámicamente, y cada una abre al swf del producto seleccionado.
En la película cargadora hay una especie de "carrito" donde, si la persona quiere consutar sobre el producto que está viendo, pincha y se agregan algunos datos clave del producto.
Este carrito debe guardar estos datos y poder agregarle los futuros datos de otros productos seleccionados.
Finalmente el visitante enviará una consulta sobre su selección vía formulario (php).
Todo esto lo tenía ya funcionando con AS2 pero estoy rehaciéndolo con AS3.

Por CRD

80 de clabLevel



Genero:Masculino  

Diseño Filete Ilustración

msie8
Citar            
MensajeEscrito el 31 Oct 2010 10:38 am
BuenAS:

Claro, en AS2 la tipificación no es estrictamente necesaria y puedes acceder a propiedades no declaradas en tiempo de compilación. Pero esto en el fondo es una fuente de problemas. Aunque no lo he utilizado nunca, Flash tiene la posibilidad de desactivar la comprobación de tipos también para AS3.

Como comentaba antes lo haría al revés: el swf principal, que carga los catálogos, y que tiene el "carrito", debería obtener los datos que le interesen del swf que se haya cargado cuando es pulsado. Incluso fíjate lo que te digo, me crearía una clase de la que herenden TODOS los swf's que cargo (o una interface para ser más correctos) para asegurarme que esos swf's cargados van a tener las propiedades, o métodos, a los que voy a acceder, no me voy a equivocar al nombrarlos, van a devolver un tipo de resultado y no otro, etc.

Imagino que si es un proyecto reciclado será mucho lío.

Un saludo.

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 31 Oct 2010 10:48 am
Lo que estoy reciclando es la parte gráfica, pero el código estoy tomándolo como nuevo ya que sabía al comenzar que nada o casi nada de as2 me funcionaría en as3.
No voy tan mal, pero me detiene el no saber como pasarle los datos desde la principal.
El primer swf lo cargo mediante una precarga que saqué de un tutorial aquí mismo, ya que no pretendo meterme a programar a tales niveles.
Supongo que es en el código de la precarga donde debería asignarle el nombre de la clase al objeto contenedor de los swf que se cargan. Pude asignarle un nombre de instancia, pero no sé como asignarle uno de clase.

Por CRD

80 de clabLevel



Genero:Masculino  

Diseño Filete Ilustración

msie8
Citar            
MensajeEscrito el 31 Oct 2010 11:14 am
BuenAS:

Se es esto lo que te frena, poco es ;). Para acceder al código del swf cargado no tienes ni que esperar al evento COMPLETE, puedes añadir un listener para el evento Event.INIT:

Código ActionScript :


private var propiedadQueQuieroConocer:TipoPropiedad;

loader.contentLoaderInfo.addEventListener(Event.INIT, initHandler);
function initHandler(evt:Event):void
{
   var movie:MovieClip = evt.target.content;
   propiedadQueQuieroConocer = movie["propiedadDelSwfCargado"];
}



Y como comentaba yo haría que todos los swf cargados, en vez de MovieClip, extendieran de, por ejemplo, la clase Catalogo (esta clase la haces que extienda de MovieClip y le añades las propiedades/métodos que vas a consultar), y en el método controlador, ahora sería:

Código :

function initHandler(evt:Event):void
{
   var movie:Catalogo = Catalogo(evt.target.content);
   propiedadQueQuieroConocer = movie.propiedadDelSwfCargado;
}


Parece un poco más, pero de verdad que ahorra bastante trabajo: Te aseguras de que TODOS los swf's cargados tengan las mismas propiedades/métodos que vas a consultar. Suele pasar, si no haces esto, que un swf tenga la propiedad "precio", otro la propiedad "miPrecio", otro la propiedad "precoi", porque lo has escrito mal, etc... y pierdes horas, o días, hasta que ves dónde está el error, sobre todo si es un proyecto de hace tiempo ;)

Un saludo.

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome

 

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