El problema que tengo es que cuando los botones (minimizar, maximizar, cerrar y resizer) del movieclip “Ventana” son tipo clip de película al pulsarlos se mueven, por el drag, independientemente del resto del movieclip, si les coloco la propiedad como “botón” funcionan perfecto pero entonces me sale el siguiente error:
ReferenceError: Error #1069: No se encontró la propiedad startDrag en flash.display.SimpleButton y no hay ningún valor predeterminado.
at Ventana/Arrastrar()
ReferenceError: Error #1069: No se encontró la propiedad startDrag en flash.display.SimpleButton y no hay ningún valor predeterminado.
at PruebaAS3_fla::MainTimeline/Arrastrar()
ReferenceError: Error #1069: No se encontró la propiedad stopDrag en flash.display.SimpleButton y no hay ningún valor predeterminado.
at PruebaAS3_fla::MainTimeline/Soltar()
De hecho, cuando abro el swf o el .exe y pulso uno de estos botones me sale un cuadro de diálogo con el Error de actionsript que ya escribí, y claro, si pulso el botón de descartar todo funciona muy bien. ¿Cómo soluciono este error?
Este es el código en el movieclip:
stop();
import flash.display.DisplayObject;
import flash.events.MouseEvent;
//////////////
var clickX;
var clickY;
resizer.addEventListener(MouseEvent.MOUSE_DOWN , onResizerPress );
function onResizerPress(e:MouseEvent)
{
clickX = this.x + this.width - this.parent.mouseX;
clickY = this.y + this.height - this.parent.mouseY;
this.parent.setChildIndex( this , this.parent.numChildren-1);
addEventListener(Event.ENTER_FRAME , onResizerFrame );
resizer.addEventListener(MouseEvent.MOUSE_UP , onResizerRelease );
this.parent.stage.addEventListener(MouseEvent.MOUSE_UP , onResizerRelease );
}
function onResizerRelease(e:MouseEvent)
{
if (hasEventListener(Event.ENTER_FRAME))
{
removeEventListener(Event.ENTER_FRAME , onResizerFrame );
}
if (resizer.hasEventListener(MouseEvent.MOUSE_UP))
{
resizer.addEventListener(MouseEvent.MOUSE_UP ,onResizerRelease );
}
if (this.parent.stage.hasEventListener(MouseEvent.MOUSE_UP))
{
this.parent.stage.removeEventListener(MouseEvent.MOUSE_UP , onResizerRelease );
}
}
function onResizerFrame(e:Event)
{
var w = this.parent.mouseX - this.x + clickX;
var h = this.parent.mouseY - this.y + clickY;
width = w;
scaleY = scaleX;
}
//////
this.addEventListener(MouseEvent.MOUSE_DOWN, Arrastrar);
this.addEventListener(MouseEvent.MOUSE_UP, Soltar);
function Arrastrar(e:MouseEvent)
{
e.target.startDrag();
this.parent.setChildIndex(this, this.parent.numChildren-1);
}
function Soltar(e:MouseEvent)
{
stopDrag();
}
//////////////
minimizar_mc.addEventListener(MouseEvent.CLICK, ClickMinimizar);
function ClickMinimizar(event:MouseEvent):void
{
this.gotoAndStop(2);
}
minimizar_mc.buttonMode = true;
salir_mc.addEventListener(MouseEvent.CLICK, ClickSalir);
function ClickSalir(event:MouseEvent):void
{
MovieClip(parent).removeChild(this);
}
salir_mc.buttonMode = true;
El código en la línea principal que llama los movieclips es este:
Menu_mc.boton01_mc.addEventListener(MouseEvent.CLICK, ClickVentana01);
function ClickVentana01(event:MouseEvent):void
{
var Ventana01_mc:Ventana = new Ventana();
Ventana01_mc.x = 170;
Ventana01_mc.y = 40;
contenedor01.addChild(Ventana01_mc);
}
Menu_mc.boton01_mc.addEventListener.buttonMode = true;
De antemano gracias por la ayuda que me puedan dar.