Comunidad de diseño web y desarrollo en internet online

Problemas con Clases

Citar            
MensajeEscrito el 01 Sep 2004 07:54 am
Buenos días:

Para empezar avisar que soy nuevo en esto de programación con flash y su actionscript; pero poseo mucha experiencia con otros lenguajes orientados a objetos como Java, C# o C++.

El caso es que he estado intentando crear una clase que me maneje un MovieClip creado por mi de tipo ventana. Necesio esta clase ya que desearía que esta ventana estubiera animada en cada una de sus acciones. Para empezar tenemos creados varios MC para los botones, barra superior, cuerpo y la ventana en cuestion. El código que he implementado para la clase vendría a ser así:

Ventana.as:

Código :

class Ventana {

   private var _padre:MovieClip;
   private var miVentana:MovieClip;
   private var n:Number;
   private var h:Number;
   private var w:Number;
   private var ch:Number;
   private var cw:Number;
   
   function Ventana(x, y, w, h, titulo, padre, n) {
      this.n=n;
      this._padre=padre;
                this._padre.attachMovie("Ventana1","ventana"+n,n+1000);
      this.miVentana = this._padre["ventana"+n];
      
      this.miVentana._x = x;
      this.miVentana._y = y;
      this.cw = this.miVentana.cuerpo._width;
      this.ch = this.miVentana.cuerpo._height;
      this.h = h;
      this.w = w;

                //estado inicial
                this.miVentana._height = 0;
      this.miVentana._width = 0;
   
      this.miVentana.createEmptyMovieClip("inicio",1);
      this.miVentana.inicio.onEnterFrame = function (){
         this.Mueve(this.w, this.h);
      };
                //[...]
       }
   function Mueve(w, h){
      this.miVentana._height += (h - this.miVentana._height)/5;
      this.miVentana._width += (w - this.miVentana._width)/5;

      if (Math.round(this.miVentana._width) == Math.round(w) || Math.round(this.miVentana._height) == Math.round(h)) { 
         delete this.miVentana.vida.onEnterFrame;
         this.miVentana.vida.removeMovieClip();
      }
   }
        //[...]
}


site.fla:

Código :

var n:Number;
var v1:Ventana ;
n=0;
v1 = new Ventana(120, 120, 399, 431, "Hola!",this, n++);



Mi pregunta es, ¿No debería moverse con este código?. Porque parece ser que no lanza el MovieClip vacio que creo al principio para hacer este movimiento...

El caso es que para realizar esto, he mirado muchos ejemplos aunque ninguno basado en POO.

Agradecería muchísimo que me echarais una mano.

Un saludo!

Por nullEX

90 de clabLevel

1 tutorial

 

unknown
Citar            
MensajeEscrito el 01 Sep 2004 09:56 am
Ya he encontrado el problema: es cuando realizo la llamada al MovieClip que anima:

Antiguo:

Código :

this.miVentana.inicio.onEnterFrame = function (){
         this.Mueve(this.w, this.h);
      }; 


Nuevo:

Código :

this.miVentana.inicio.path = this;
this.miVentana.inicio.onEnterFrame = function (){
         this.path.Mueve(this.path.w, this.path.h);
      }; 

Por nullEX

90 de clabLevel

1 tutorial

 

unknown
Citar            
MensajeEscrito el 01 Sep 2004 07:37 pm
jejeje: Pues bueno ... bienvenido al foro y esperamos verte mas por aca ... ya que arreglaste tu problema ^^

Buen detalle compartir con la comunidad la solución

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

unknown
Citar            
MensajeEscrito el 02 Sep 2004 03:40 pm
agradeceria al que me facilitara la clase Ventana.as la cual se comienza en el ejemplo.........

Por mafia

35 de clabLevel



 

unknown
Citar            
MensajeEscrito el 03 Sep 2004 03:15 am
nullEX, que si quieres montar lo que has hecho en la sección Ejemplos [.FLA] de Cristalab, asi toda la comunidad se beneficia de ella? :D

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

unknown
Citar            
MensajeEscrito el 03 Sep 2004 12:12 pm
Pues me parece buena idea, ahora tengo una semana de vacaciones y no podré ponerlo. Pero la siguiente semana me comprometo a la creación de un tutorial explicando como crearla y que es lo que hace al final.

Pero os aviso de que el código es un poco cutre :oops: , aunque de todos modos intentaré mejorarlo.

Por nullEX

90 de clabLevel

1 tutorial

 

unknown
Citar            
MensajeEscrito el 03 Sep 2004 05:51 pm
Pues estaremos esperandote :)

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

unknown
Citar            
MensajeEscrito el 14 Sep 2004 09:29 am
Con respecto al tema ayer os envié un tutorial en el que explico paso a paso lo que he hehco para realizar la clase Ventana con todo el código utilizado.

Así que supongo que en unos dias podremos verlo por aquí.

Un saludo!

Por nullEX

90 de clabLevel

1 tutorial

 

unknown
Citar            
MensajeEscrito el 14 Sep 2004 03:38 pm
Asi es, tengo un poco de trabajo encima pero espero que si no hoy mañana lo termine de formatear para publicarlo ;)

Saludos

PD. No me enviaste FLAs de ejemplo ¬_¬

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

unknown
Citar            
MensajeEscrito el 15 Sep 2004 06:25 am
Te acabo de enviar ls ejemplos como habrás comprobado :oops:

Por nullEX

90 de clabLevel

1 tutorial

 

unknown
Citar            
MensajeEscrito el 15 Sep 2004 08:36 am
Tutorial montado
http://www.cristalab.com/vertutorial.php?id=62

Te recomendaria que te colocaras en tu perfil del foro un avatar de 100x100 pixeles para que este se vea en la información del autor del tutorial ;)

Ya se ve "Tutoriales: 1" en tu perfil :)
Gracias y Saludos

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

unknown

 

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