Comunidad de diseño web y desarrollo en internet online

attachMovie no me va bien

Citar            
MensajeEscrito el 30 Oct 2006 10:10 am
Hola, tengo un par de problemillas:
1) No se puede meter action script en el over de un boton?

2)Para solucionar esto, he metido el boton en un clip, y luego al boton le he dicho:

Código :

on(rollOver){
   var i=1;
   _root.attachMovie("entradas","entradas"+i,i);
if(i>=500){
   i=1;
   //gotoAndPlay(1);
   }
   i++;
gotoAndPlay(2);
}


Y se supone que tienen que salir 500 entradas, pero solo me sale 1.
¿por qué puedeser?
muchas gracias.

usa las etiquetas code para postear tu codigo

Por Araitz

42 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 30 Oct 2006 04:22 pm
What?
Para cargar varios clips, lo haces con un bucle for (lee sobre eso en la ayuda de flash). Así, en el primer fotograma de tu película, escribe:

Código :

tuBoton.onRollOver=function(){
for (i=0;i<100;i++){
 var mc:MovieClip=_root.attachMovie("entradas","entradas"+i,i);
rnd=Math.floor(i/10)
mc._x=(i-(10*rnd))*5
mc._y=rnd*5
}
}

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 31 Oct 2006 09:01 am
Muchas gracias por tu ayuda.
De todas formas, antes me salía una entrada, ahora no me sale ninguna.
Me estoy desesperando, la ayuda de flash no me ayuda nada.

Por Araitz

42 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 31 Oct 2006 02:48 pm
Hay un error de concepto. El evento onRollOver no se ejecuta si tenés el mouse apoyado arriba del botón, solo se ejecuta en el momento en el que ponés el mouse sobre el botón. Para que se ejecute nuevamente, tendrías que alejar el cursor del botón y volverlo a poner arriba.

El hecho es que definís i=1 en el onRollOver y por eso, ni siquiera sacando y poniendo el cursor sobre el botón repetidas veces vas a lograr el efecto buscado.


Ahora bien, lo que vos tenés que hacer es emplear un for. Ese es el mejor modo de hacerlo (también está el while, pero es mucho más fácil hacer un loop infinito)

Un for tiene esta sintaxis (también se pueden usar con una variable itinerante, pero eso no importa por el momento):

for (init ; condition ; next){

init: la o las variables iniciales

next: cada vez que se ejecuta el for, vuelve a empezar, pero cambiando la o las variables (en el ejemplo de abajo se va a entender mejor)

condition: el for se ejecutará mientras esta condición sea evaluada como true


Hasta aquí la teoría. Ahora un ejemplo:

Código :

for (i = 1; i <= 5; i++) {
trace ("i = " + i);
}


Bien, lo que ocurre es que en la ventanita de output, aparcecen los número del 1 al 5.

Esto es porque el for, primero dice que la variable i es igual a 1. Luego chekea que i sea menor o igual a 5, si lo es, realiza la acción (en este caso, un simple trace) y cuando termina de realizar las acciones, suma 1 a la variable i y vuelve a chekear y a realizar las acciones, etc. etc. etc.

Podrás ver que esto es lo que intentabas hacer cuando definías i++ y todo eso. Asi que creo que no te va a resultar difícil adaptar tu código y usar el for.



AHHHH.... Por cierto, una apreciación final.... no te parece que si cargas 500 clips de película, tu animación o lo que sea se va a lentificar y mucho???
Hasta es posible que Flash te de un error diciendo que el script que estás empleando podría hacer que tu computadora no responda y te ofrezca abortarlo..... :crap:

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

msie
Citar            
MensajeEscrito el 02 Nov 2006 11:37 am
Gracias por tu ayuda, ahora intentare a ver si me sale.
Lo de ponet que salgan 500 entradas, no creo ke sea para tanto, porke no es un clip grande, y una vez hice un ejercicio parecido, y sacaba 1000 clips, y no se atascaba. Pero bueno, puede ser, porsiacaso intentare con menos.

Por Araitz

42 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 02 Nov 2006 07:11 pm
No sé, quizá tenés una máquina bastante poderosa, pero tenés que recordar que hay gente que no tiene esa suerte.

Es una lástima que Flash no pueda usar aceleración gráfica si detecta una placa de video. Las cosas que se podrían hacer..... Mejor dejo de soñar :oops: ...

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

msie

 

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