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.
