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

OOP en Flash MX

Estas en el tema de OOP en Flash MX en el foro de Flash y Actionscript en Foros del Web. Saludos Flasheros!! Recientemente he hecho un curso de actionscript bastante avanzado, en el cual hemos hecho bastantes cosas con programación orientada a objetos en Flash. ...
  #1 (permalink)  
Antiguo 02/12/2003, 10:52
 
Fecha de Ingreso: marzo-2002
Ubicación: BarnaCity
Mensajes: 109
Antigüedad: 22 años, 8 meses
Puntos: 0
Busqueda OOP en Flash MX

Saludos Flasheros!!

Recientemente he hecho un curso de actionscript bastante avanzado, en el cual hemos hecho bastantes cosas con programación orientada a objetos en Flash. El problema viene cuando uno quiere buscar algo de información en castellano, y no encuentra nada!!

La idea sería postear varios ejemplos de OOP para ir subiendo algunas cosillas y que quede bien claro que sabemos programar mejor que esos yankies de mie....!!!

Bueno, yo os pongo aqui mi ejemplito, es para mi nueva web y lo que hace es poner el logo en el centro de la pantalla y habran unas bolitas alrededor que se moveran y tal. No es nada del otro mundo pero como primer post puede que esté bien.

Animaos y poner ejemplos en OOP que hay muy poco!!!


Deuuu.

// Clase constructora de nodos.
function Nodo (x,y){
n++;
trace(n);
attachMovie("nodo","nodo"+n,n+1000);
this.miNodo = _root["nodo"+n];
this.miNodo.createEmptyMovieClip("vida",1);
this.miNodo.vida.onEnterFrame = this.esconder;
this.miNodo.vida.path = this;
this.miNodo._x = x;
this.miNodo._y = y;
this.posx = Math.floor(random(700));
this.posy = Math.floor(random(400));
}

// Método de la clase Nodo para mover los circulitos
Nodo.prototype.esconder = function (){
this.path.calcMover(this.path.posx,this.path.posy) ;
}

Nodo.prototype.calcMover = function (tempx,tempy){
this.miNodo._x += (tempx - this.miNodo._x)/5;
this.miNodo._y += (tempy - this.miNodo._y)/5;
}

// Colocar el logo y los nodos.
attachMovie("logo","logo",2000);
logo._x = 350;
logo._y = 200;

portfolio = new Nodo(200,180);
curriculum = new Nodo(500,380);
descargas = new Nodo(500,180);
contacto = new Nodo(200,80);
  #2 (permalink)  
Antiguo 02/12/2003, 12:32
Avatar de TMeister
Crazy Coder
 
Fecha de Ingreso: enero-2002
Ubicación: En la Oficina
Mensajes: 2.880
Antigüedad: 22 años, 10 meses
Puntos: 193
esta bien el ejemplo algo simple pero sirve para entender mas o menos el POO..

<Observacion>
Nunca matas el OnEnterFrame esto consume recursos innecesarios del la maquina.. haciendo tus peliculas lentas
</Observacion>


POO = Programacion Orientada a Objetos, es mejor asi..

Saludos!!
  #3 (permalink)  
Antiguo 02/12/2003, 13:01
Avatar de chr_c  
Fecha de Ingreso: junio-2003
Mensajes: 204
Antigüedad: 21 años, 5 meses
Puntos: 0
mmm tmesister, no entindi tu observacion del onEnterFrame. por?

PD: felicitaciones por el puesto , bien merecido.

Última edición por chr_c; 02/12/2003 a las 13:02
  #4 (permalink)  
Antiguo 02/12/2003, 13:25
 
Fecha de Ingreso: marzo-2002
Ubicación: BarnaCity
Mensajes: 109
Antigüedad: 22 años, 8 meses
Puntos: 0
Supongo que se refiere a que como el onEnterFrame esta ejecutandose continuamente, hay que destruir el clip vida que contiene el onEnterFrame haciendo delete vida;

O algo por el estilo, digo yo... tampoco sé si se hará así.

Un saludo.
  #5 (permalink)  
Antiguo 02/12/2003, 14:13
Avatar de TMeister
Crazy Coder
 
Fecha de Ingreso: enero-2002
Ubicación: En la Oficina
Mensajes: 2.880
Antigüedad: 22 años, 10 meses
Puntos: 193
Yeap algo asi:

El OnEnterFrame se ejecuta infinitamente hasta que lo mates... lo quites.... ETC

Código PHP:
Nodo.prototype.calcMover = function (tempx,tempy){
if(
this.miNodo._x tempx){
     
this.miNodo._x += (tempx this.miNodo._x)/5;
     
this.miNodo._y += (tempy this.miNodo._y)/5;
}else{
    
delete vida.onEnterFrame:
    
//o
    //vida.removeMovieClip();
}

Me explico?

Saludos!!
  #6 (permalink)  
Antiguo 03/12/2003, 06:38
 
Fecha de Ingreso: marzo-2002
Ubicación: BarnaCity
Mensajes: 109
Antigüedad: 22 años, 8 meses
Puntos: 0
Ok lo probaré!!

Gracias por el consejo, de aquí a poco también subiré una versión un poco más avanzada donde llamo a eventos y cosas por el estilo, estoy avanzando poco a poco, pero la cosa va viento en popa.

A ver si entre hoy y mañana puedo postear algo nuevo, un saludo!!
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 17:15.