Comunidad de diseño web y desarrollo en internet online

Problemas con onRelease en mcs creados con attachMovie

Citar            
MensajeEscrito el 24 Abr 2007 07:30 pm
Buenas a todos,

Soy nueva en este foro, acabo de registrarme. Llevo varios dias navegando por el foro y la verdad es que he aprendido mucho, os doy las gracias. Me ha gustado tanto, que aqui estoy, uniendome al equipo. Y como no, con una duda, me imagino que todos empezamos asi. Estoy en un callejon sin salida, os explico; estoy creando un flash donde mediante un bucle creo un numero de mcs ( con attachMovie), en cada uno de los cuales cargo una imagen externa (con un loadMovie) y cada mc tiene que actuar como un boton. He conseguido las dos primeras cosas, pero la del boton se me resiste.
Si creo el mc manualmente en el escenario de flash funciona y le aplico el onRelease al mc directamente funciona, pero si lo hago desde el fotograma de la linea de tiempo no funciona.

Os muestro a continuacion el codigo que tengo (no he usado _root. porque luego metere todo dentro de otro mc para darle movimiento, como no controlo mucho voy pasito a pasito, averiguo como se hace una cosa para luego pasar a la siguiente).

stop();
ruta="foto";//ruta de las imagenes
ext=".jpg";//extension del archivo
total="14";//total de imagenes
i=1;//contador
recipiente="contenedor";
recipiente2="contene";
loadMovie(ruta+i+ext, recipiente+i);//esta carga va sobre el primer mc que he creado manualmente en el escritorio y que como os comentaba al ponerle el onRelease en el mismo funciona)

i++;

distancia=130;
distancia2=130;
while (i<total){
attachMovie("conte", "contene"+i, i);
this["contene"+i]._x= distancia;
this["contene"+i]._y = 0;
loadMovie(ruta+i+ext, recipiente2+i);
variable=(recipiente2+i);
this["contene"+i].onRelease = function (){getURL("http://www.midominio.com");
}
distancia=distancia+distancia2;
i++;
};


Lo que no me funciona es el
this["contene"+i].onRelease = function (){getURL("http://www.nidominio.com");

He probado todas las opciones que se me han ocurrido;

this.onRelease = function (){getURL("http://www.midominio.com");
variable.onRelease = function (){getURL("http://www.midominio.com");
contene3.onRelease = function (){getURL("http://www.midominio.com");//contene3 seria el nombre de instancia de uno de los mc
onRelease = function (){getURL("http://www.midominio.com");
(recipiente2+i).onRelease = function (){getURL("http://www.midominio.com");
this[recipiente2+i].onRelease = function (){getURL("http://www.midominio.com");
:shock:
No se que mas burradas se me han ocurrido porque llevo varios dias probando combinaciones. Si alguien es capaz de ver donde he metido la pata me sacara del profundo abismo de tristeza y depresion en el que me he hundido (y no va en broma). :crap:

Un saludo a todos, y muchas gracias.

Por Inyaki

6 de clabLevel



 

msie
Citar            
MensajeEscrito el 25 Abr 2007 02:06 pm
A ver.. dejame ver si entendí... estás tratando de hacer que el movieclip funcione como un boton?, por que si es así... has probado con el onClick (mcMovieCip.onClick = miFuncion() ... ) o mouseDown o alguno de los eventos del MC?...
aparte.... mhh... ya verificaste que tengas el numero de MC que estás diciendo... por que no se si tengas los 14 movieclips que estás mencionando.. lo que se me ocurre primero hacer es poner una funcion sencilla a cada uno de los MC si es que lo tienes algo así como

Código :

for (i=1; i<=14; i++)
{
   eval("mcMiMoveClip"+i).onRollOver = fnVerifica;
}
function fnVerifica()
{
   trace(this);
}

lo que se supone que haría esto es ver si estás mandando llamar al MC correctamente o de esta manera puedes agregarle los listeners a cada uno de los MovieClips.
Espero te sirva.
Saludos.

Por zelgadiss01

87 de clabLevel



 

The Silent Hills

msie
Citar            
MensajeEscrito el 25 Abr 2007 04:11 pm
Buenas, mira, ademas de chequear que efectivamente estes creando los mc en el escenario, lo que te recomiendo que hagas es:

bucle_para_attachar_mc{
attach()
nuevoclip.variable_direccion = "www.midominio.com";
}

y luego, enel clip q tenes en la libreria:

this.onRelese = function(){
getURL(variable_direccion,"_blank");
}

la idea es q cuando atachas el clip le crees una variable dentro con un contenido, y luego desde el mismo clip, le das el evento que necesites.

saludos,

Dario!

Por Dario!

28 de clabLevel



Genero:Masculino  

Capital Federal - BsAs - Argentina

firefox
Citar            
MensajeEscrito el 25 Abr 2007 07:14 pm
Buenas,

Muchas gracias a los dos por echarme una mano.
He probado todo lo que me habeis comentado y sigo igual.
En cuanto a la duda de si estoy creando los mcs, yo creia que si porque de echo cuando pruebo la pelicula veo las trece fotos correctamente una detras de otra. Lo que no aparece es el comportamiento de boton (ni manita, ni llamada a otra direccion, nada, las fotos peladas). Pero he hecho la prueba que me comentaba zelgadiss de
for (i=1; i<=14; i++){ eval("mcMiMoveClip"+i).onRollOver = fnVerifica;}function fnVerifica(){ trace(this);}
pero nada, muerto, no devuelve nada. Tambien habia probado ya con los onClipEvent pero pasa lo mismo.
He probado tambien lo que comenta Dario de
bucle_para_attachar_mc{
attach()
nuevoclip.variable_direccion = "www.midominio.com";
}

y luego, enel clip q tenes en la libreria:

this.onRelese = function(){
getURL(variable_direccion,"_blank");
}
pero tampoco a funcionado, aunque no estoy segura de haberlo hecho bien, cuando dices de ponerlo en el clip q tengo en la libreria, te refieres a ponerlo en el primer fotograma de su linea de tiempo ¿no?, eso es lo que he echo y nada.

Yo sigo creyendo que no llamo correctamente a los Mc.

Un saludo y muchas gracias a todos.

Por Inyaki

6 de clabLevel



 

msie
Citar            
MensajeEscrito el 25 Abr 2007 11:53 pm
mhh... a ver... despues de hacer pruebas esto fué lo que me resulto

Código :

for (i:Number=1; i<=3; i++)
{
   this.attachMovie("mcBaseLine","mcMoveClip"+i,this.getNextHighestDepth());   
   //mcBaseLine es el MovieClip que me sirve como referencia para hacer la copia
   //mcMoveClip es el nombre que van a tener las nuevas instancias
   //this.getNextHighestDepth() es para que los clips se pongan uno sobre otro
   eval("mcMoveClip"+i)._y = i*100;
   eval("mcMoveClip"+i)._x = i*100;
   addListeners(eval("mcMoveClip"+i));
}

function addListeners(pMovieClip:MovieClip)
{   
   pMovieClip.onPress = fnMiFuncion;   
   trace(pMovieClip);
}
function fnMiFuncion()
{
   trace(this);
}

Bueno... con esto a mi me sirvio el hacer clic en el movie clip, mhh... lo único que tengo es un cuadro vuelto simbolo y exportado a ActionScript el cual es el mcBaseLine... para servirme como referencia de copias que necesito hacer... pero si esto no te funciona... creo que el problema està en otra parte... aclaro, acabo de probar el codigo y funciona.
Saludos.

Por zelgadiss01

87 de clabLevel



 

The Silent Hills

msie

 

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