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

MovieClip y Funciones

Estas en el tema de MovieClip y Funciones en el foro de Flash y Actionscript en Foros del Web. Hola que tal, espero alguien pueda ayudarme Tengo 8 MovieClips en el escenario principal los cuales desea que se muevan en un determinado espacio en ...
  #1 (permalink)  
Antiguo 16/03/2004, 21:39
 
Fecha de Ingreso: enero-2003
Mensajes: 251
Antigüedad: 14 años, 11 meses
Puntos: 0
MovieClip y Funciones

Hola que tal, espero alguien pueda ayudarme

Tengo 8 MovieClips en el escenario principal los cuales desea que se muevan en un determinado espacio en forma aleatoria.

El codigo que utilizo es el siguiente y funciona bien siempre y cuando el codigo se lo ponga a cada MC. Pero eso sería repetir codigo (Claro que lo puedo copiar y pegar) lo cual no quiero hacer

onClipEvent (enterFrame) {
if(this._x < 100){
this._x = 100;
}
if(this._x > 200){
this._x = 200
}
if(this._y < 100){
this._y = 100;
}
if(this._y > 200){
this._y = 200}
this._x = this._x + (Math.random()*5 - Math.random()*5);
this._y = this._y + (Math.random()*5 - Math.random()*5);
}

Por lo que quisiera que esto se convirtiera en funcion y mandarla llamar desde cada MC.

he estado intentando hacerla y no me sale bien, no me marca errores, pero simplemente no se ve el movimiento.

Alguien podria decirme como puedo hacer la funcion

Gracias anticipadas.
Atte. Curiel

Nota: Los 8 Mc no tienen nombre de instancia.
  #2 (permalink)  
Antiguo 16/03/2004, 23:26
 
Fecha de Ingreso: noviembre-2003
Mensajes: 68
Antigüedad: 14 años, 1 mes
Puntos: 0
Curiel, qué tal.
La función me gustó mucho, yo hice algo similar, pero de otra forma, y la verdad es que ahorras algunas líneas de código así.
pienso que algo así puede servir:

function ajustaymueve(objeto) {
if(objeto._x < 100){
objeto._x = 100;
}
if(objeto._x > 200){
objeto._x = 200
}
if(objeto._y < 100){
objeto._y = 100;
}
if(objeto._y > 200){
objeto._y = 200}
objeto._x =objeto._x + (Math.random()*5 - Math.random()*5);
objeto._y = objeto._y + (Math.random()*5 - Math.random()*5);
}


así ya la creas global

luego deberías nombrar a las instancias de los movieclips algo así como :
clip1, clip2,...,clip8

luego otra funcion:
function repite(){
for(a=1, a<=8, a++) {
var elclip = "_root.clip"+a;
ajustaymueve(elclip);
}

y luego finalmente:

_root.onEnterFrame = function() {
repite();
}

No lo he probado pero debería andar, no?

Espero que sirva.
Adios.
__________________
[|_4 (0|\/|U|\|1(4(10|\| 35 |_4 FU3RZ4]
  #3 (permalink)  
Antiguo 16/03/2004, 23:51
 
Fecha de Ingreso: enero-2003
Mensajes: 251
Antigüedad: 14 años, 11 meses
Puntos: 0
Hoal que tal 5H1V4

La explicación que me das la he analizado y me suena logica, el caso es que no funciona. Por ahi me marcaba 2 errores pero era porque en el for son ; en lugar de, y faltaba una llave.

No se si estoy haciendolo mal, pero las funciones ajusta y mueve y repite las estoy poniendo en el primer fotograma de la capa1

y esto
_root.onEnterFrame = function() {
repite();
Lo estoy poniendo dentro de cada MC, que por cierto me daba error e hicie lo siguiente

onClipEvent(enterFrame){
_root.onEnterFrame = function() {
repite();
}
}

Pero ni aún así funciona, que estare haciendo mal.

Gracias.
Atte. Curiel
  #4 (permalink)  
Antiguo 17/03/2004, 00:34
 
Fecha de Ingreso: noviembre-2003
Mensajes: 68
Antigüedad: 14 años, 1 mes
Puntos: 0
De nada.

No, deberías probar así:

_root.onEnterFrame = function() {
repite();
}

tb en el fotograma 1 de la capa 1
y ninguna accion en los movie clip, ya que la gracia es que defines todo de forma externa

vamos, a ver si así anda ;)
__________________
[|_4 (0|\/|U|\|1(4(10|\| 35 |_4 FU3RZ4]
  #5 (permalink)  
Antiguo 17/03/2004, 00:49
 
Fecha de Ingreso: enero-2003
Mensajes: 251
Antigüedad: 14 años, 11 meses
Puntos: 0
Hola 5H1V4

Sigue sin funcionar y creo que estoy haciendo todo bien

Que crees que sea el error
El for lo empiezo de 0, porque tengo un mc que se llama Clip0

Atte. Curiel
  #6 (permalink)  
Antiguo 17/03/2004, 02:26
 
Fecha de Ingreso: noviembre-2003
Mensajes: 68
Antigüedad: 14 años, 1 mes
Puntos: 0
mañana será otro día...

son las 5 y media de la matina, y acabo de terminar un flash que me habían pedido, como quien diría tengo el cerebro seco.
¿Qué tal si seguimos mañana?
Podés contactarme por messenger a [email protected]

Me voy a dormir, aunque sea dos horas.

__________________
[|_4 (0|\/|U|\|1(4(10|\| 35 |_4 FU3RZ4]
  #7 (permalink)  
Antiguo 17/03/2004, 18:43
 
Fecha de Ingreso: enero-2003
Mensajes: 251
Antigüedad: 14 años, 11 meses
Puntos: 0
Hola 5h1v4

Muchas Gracias por ofrecerte en apoyarme en el msn, pero ya solucione mi problema, solo le agregue esta linea

MovieClip.prototype.ajustaymueve = function(objeto) {

Hasta la próxima

Atte. Curiel
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 19:13.