Foros del Web » Creando para Internet » Flash y Actionscript »

esto me funciona en un swf, pero cargandolo desde otro swf no

Estas en el tema de esto me funciona en un swf, pero cargandolo desde otro swf no en el foro de Flash y Actionscript en Foros del Web. Me he montado un codigo que aplica un efecto de onda a un texto. Funciona perfectamente, pero deja de funcionar cuando la pelicula que contiene ...
  #1 (permalink)  
Antiguo 09/09/2005, 05:32
 
Fecha de Ingreso: diciembre-2004
Mensajes: 278
Antigüedad: 13 años
Puntos: 0
esto me funciona en un swf, pero cargandolo desde otro swf no::Solucionado

Me he montado un codigo que aplica un efecto de onda a un texto.
Funciona perfectamente, pero deja de funcionar cuando la pelicula que contiene
el efecto la cargo desde otra (mediante loadMovie() )
(osea desde main.swf cargo efecto.swf y no funciona, pero ejecutando efecto.swf directamente si).

Uso eval() para evitar tener que liarme con _this, _parent y demás y (creia) que tambien para evitarme este tipo de problemas.
aqui dejo el codigo de los tres fotogramas que forman el efecto

fotograma 1->Inicializo todo
d= un mc que contiene un texto dinamico donde va alojada cada letra
destino= un mc que marca la posicion x final

Código:
if(!texto)         //el texto lo asigno dsde fuera del movieClip
	texto="mensaje";
d._visible=false;
destino._visible=false;

t = 0;
longtext=texto.length;
spacing = 20;
ystart = d._y;
ancho=d._width;
n = 0;
if(!veces)
{	veces=0;
}
k=0;	//contador para las veces q se repite el pase del texto ondeando

if(!velx)
    velx=0.5;

if(!sentido)
	sentido="D";

//esto de aqui me lo monté para fijar un sentido a la onda
if(sentido=="D")
{	xstart = d._x-(longtext*spacing);
	xfinish=destino._x;
	coordx=d._x;
	coordy=d._y;
}
else
{	xstart = destino._x+(n*spacing)+10;
	xfinish=d._x;
	coordx=destino._x;
	coordy=destino._y;
}
desp=xstart;

//creo las letras
while (n <= longtext) 
{	d.duplicateMovieClip("d"+n,n);
	if(sentido=="D")
	{	eval("d"+n)._x=desp+n*spacing;
		
	}
	else
	{	eval("d"+n)._x=desp+n*spacing;
	}
	eval("d"+n)._y=ystart;
	eval("d"+n).letter=texto.charAt(n);
	n = n + 1;	
}

Última edición por clinisbut; 14/09/2005 a las 02:08 Razón: Solucionado
  #2 (permalink)  
Antiguo 09/09/2005, 05:33
 
Fecha de Ingreso: diciembre-2004
Mensajes: 278
Antigüedad: 13 años
Puntos: 0
fotograma 2

Aqui el fotograma 2, se encarga del movimiento de las letras
Aqui el problema es que como no se crean las letras en el primer fotograma no hay nada que mover
Código:
t = t + 1/5;
omega = .08;
n = 0;
amp = 10;
if(k<veces || veces==0)
{	if(sentido=="D")

	{	if(eval("d"+n)._x>(xfinish+36))	//Si llega al final...
		{	//trace("salto de linea");
			desp=xstart;
			k++;
			//trace("desp="+desp);
	//		stop();
		}
	}
	else if(sentido=="E")
	{	if(eval("d"+n)._x<xfinish-longtext*spacing)	//Si llega al final..
		{	//trace("stop");
			desp=xstart+n*spacing;
			k++;
		}
	}

	while (n < longtext) {
		x=eval("d"+n)._x*omega+t;				//Miro la ._x
		eval("d"+n)._y=Math.sin(x)*amp;		//Aplico la altura
		eval("d"+n)._x=desp+n*spacing;
		if(sentido=="D")
			desp=desp+velx;
		else
			desp=desp-velx-0.2;
		n = n + 1;
		//trace(eval("d"+n)._x);
	}
}
else
{	_parent.play();
	gotoAndStop(1);
}
Y el tercer fotograma es un simlpe gotoAndPlay(2);
Sospecho que hay algun problema de rutas en el primer fotograma.
Todo esto (los tres fotogramas junto con el texto dinamico y el mc destino los he metido dentro un mC con el proposito de poder usarlo facilmente en varias peliculas.
Gracias adelantadas

Edito: de hecho estoy probando, he metido un stop(); en el primero de los frames q he mostrado, y comentado TODO el codigo, y tan siquiera se ve el cuadro de texto dinamico (decir que hay escrita una "i" para poder localizarlo visualmente y no se ve dicha i desde el swf "mas externo", pero desde el propio swf sí).
Que falla?¿?¿?

Última edición por clinisbut; 09/09/2005 a las 05:50
  #3 (permalink)  
Antiguo 09/09/2005, 11:01
Avatar de rod524  
Fecha de Ingreso: agosto-2004
Mensajes: 517
Antigüedad: 13 años, 4 meses
Puntos: 0
Usa getURL en lugar de LoadMovie y carga el clip en un nivel superior, eso resolvería el problema si se trata de un error en las rutas, ya que cada clip tendría su propio _root.

Saludos.
  #4 (permalink)  
Antiguo 12/09/2005, 08:09
 
Fecha de Ingreso: diciembre-2004
Mensajes: 278
Antigüedad: 13 años
Puntos: 0
cuando dices que cargue el clip en un nivel superior a que te refieres?
con getUrl no se me cargaría dentro del swf principal (sin abrir ninguna ventana nueva)? esq ahora no puedo probarlo, no tengo el flash a mano (ni el archivo).
Necesitaria que el swf secundario se viera desde el visor abierto para el swf principal, es algo imprescindible.
Para ayudar en mi problema aqui un esquema del tinglado:

swf principal (Solamente carga otros swf consecutivamente).
|
|
|
-->swf secundario (una simple pelicula)
|
|
---->clip con efecto de texto


El problema viene al ver la animacion desde el swf principal.
Vista desde el secundario no hay ningun problema.
Repito que probando, cargando desde el principal y comentando todo el codigo actionscript del efecto de texto, ni tan siquiera se visualiza el caracter que muestra por defecto el campo de text dinamico que hay dentro del "clip con efecto de texto".
Es algo raro...
  #5 (permalink)  
Antiguo 12/09/2005, 14:04
Avatar de rod524  
Fecha de Ingreso: agosto-2004
Mensajes: 517
Antigüedad: 13 años, 4 meses
Puntos: 0
Cargalo con getURL, entrará en la misma ventana, no abrirá otra, solo que se verá encima de la principal, ajusta el tamaño deseado en la que vas a cargar.

Saludos.
  #6 (permalink)  
Antiguo 13/09/2005, 02:10
 
Fecha de Ingreso: diciembre-2004
Mensajes: 278
Antigüedad: 13 años
Puntos: 0
Bueno, al final no probé el getURL pero ya lo tengo solucionado.
El problema era que en el swf principal, para evitar que se vieran elementos que no deberian verse (los tipicos que se dejan fuera del escenario), tenia una mascara del tamaño del escenario.
La he quitado y ahora se ven todos los textos dinamicos que tenia en funcionamiento y no se veian (tenia un "cargando x%" de un preloader que tampoco se veia).
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:05.