Comunidad de diseño web y desarrollo en internet online

Problema con startDrag al crear una clase ventana

Citar            
MensajeEscrito el 20 Ago 2006 11:35 pm
Buenas a todos:

Estoy tratando de crear una clase ventana que conste de un scrollPane como cuerpo de la ventana y una barra de titulo que permita arrastrar la ventana. Pongo el código y explico el problema:

Código :

class Ventana extends MovieClip
{
   var ALTOBARRA:Number = 20;
   static var id:Number =0;
   var padre;
   var ventana:MovieClip;
   var contenedor:MovieClip;
   var barraTitulo:MovieClip;
   var titulo:String;
   
   public function Ventana(x:Number,y:Number,ancho:Number,alto:Number,padre:MovieClip)
   {
      id++;
      trace("Construyendo ventana...");
      if (padre == undefined || padre == null)
         this.padre = _root;
      else
         this.padre = padre;         
      ventana = this.padre.createEmptyMovieClip("window"+ id,padre.getNextHighestDepth());
      
      // Añadimos el fondo blanco tras el ScrollPane
      var fondo:MovieClip = ventana.createEmptyMovieClip("Fondo", 2);
       crearRectangulo(ancho,alto - ALTOBARRA,0xffffff,fondo);
      fondo._y = y+ALTOBARRA;
      fondo._x = x;
      
      
      // Creamos el ScrollPane que hara las veces de cuerpo de la ventana
      contenedor = ventana.attachMovie("ScrollPane","my_sp",5);            
      contenedor.move(x,y+ALTOBARRA);
      contenedor.setSize(ancho, alto-ALTOBARRA);      
      
      // Creamos la barra de Titulo y añadimos la capacidad de arrastre
      barraTitulo = ventana.createEmptyMovieClip("BarraTitulo",10);
      var title_txt = barraTitulo.attachMovie("Label","Titulo",barraTitulo.getNextHighestDepth());
      title_txt.text = "Sin Titulo";
      crearRectangulo(ancho,ALTOBARRA,0xa3b2cc,barraTitulo);
      barraTitulo._y = y;      
      barraTitulo._x = x;
      [b]barraTitulo.onPress = function(evt:Object)
      {         
         if (this._xmouse>=0 && this._xmouse<=barraTitulo._width && this._ymouse>=0 && this._ymouse<=ALTOBARRA) {            
            startDrag(_parent);
         }
      }
      barraTitulo.onRelease = function (evt:Object)
      {   stopDrag();      }
      [/b]
      // Añadimos el boton de cierre      
      var cerrar_btn = ventana.attachMovie("Cerrar_btn","Cerrar_btn",15);
      cerrar_btn._x = x + ancho - cerrar_btn._width - 5;
      cerrar_btn._y = y+2;
      
      cerrar_btn.onRelease = function (evt:Object)
      {   _parent._visible = false;   }
      
      // Creamos una capa invisible para arrastrar la ventana con solo pulsarla
      var capa = ventana.createEmptyMovieClip("Arrastre",25);
      capa._x = x;
      capa._y = y+ALTOBARRA;
      crearRectangulo(ancho,alto-ALTOBARRA,0x222222,capa);
      capa._alpha =10 ;
      capa.onPress = function (e:Object)
      {   startDrag(_parent); }
   }
   
   function crearRectangulo(ancho:Number,alto:Number,color:Number,mc:MovieClip)
   {
      mc.beginFill(color);
      mc.lineStyle(2);
      mc.lineTo(0, alto);
      mc.lineTo(ancho, alto);
      mc.lineTo(ancho, 0);
      mc.lineTo(0, 0);
   }
}


El problema está en que no arrastra toda la ventana, sólamente arrastra el movieClip barraTitulo, y eso a pesar de que haciendo un trace(_parent) dentro de la funcion onPress de barraTitulo queda claro que _parent es el movieClip ventana. En fin que no me lo explico. Tambien es curioso que si pongo por ejemplo "startDrag("cualquiercosa");" sigue haciendo lo mismo, arrastra solo el movieClip barraTitulo.

En fin, gracias por su tiempo y espero sus consejos.

Por adriesp

113 de clabLevel

1 tutorial

Genero:Masculino  

Salamanca

opera
Citar            
MensajeEscrito el 21 Ago 2006 12:06 am
StartDrag no tiene esa sintaxis. Así estará bien:

Código :

this._parent.startDrag()

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 21 Ago 2006 12:40 am
Ok, muchas gracias, ya funciona cuando la acabe la colgaré por aquí por si alguien la quiere utilizar. Un saludo

Por adriesp

113 de clabLevel

1 tutorial

Genero:Masculino  

Salamanca

opera

 

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