Hola listeros, a ver si me pueden aclarar una cosa que acabo de descubrir y me ha dejado anodado.
Tengo una serie de pestañas que desplazan unas mascaras para mostrar ocultar unos mcs (tipo el componente acordeon pero 'custom', porque el funcionamiento requerido no era el mismo). En un principio había 4 pestañas y cuatro mascaras para los cuatro mcs de contenido, ahora me pongo a pulirlo un poco y elimino las mascaras para crearlas con createEmptyMovieClip y la API de dibujo de flash (por dejarlo más limpito) y me encuentro que -con exactamente la misma programación salvo el detalle de las mascaras- las mascaras creadas con este otro método acumulan un retardo que hace que al arrastrar no vayan parejas a las pestañas. Como no se si me explico muy bien he subido una comparativa para que podais ver del efecto indeseable del que hablo (http://drusunlimited.com/labo/asnativos/miAcordeon/) Mi pregunta es ¿a que se debe esta perdida de rendimiento? La mascara es un cuadrado normal y corriente, la creo de este modo: [code] var mask_mc:MovieClip = _root.createEmptyMovieClip("mask"+i+"_mc", _root.getNextHighestDepth()); mask_mc.beginFill(0x00FF00, 100); mask_mc.lineStyle(0, 0x00FF00, 0); mask_mc.moveTo(0, 0); mask_mc.lineTo(915, 0); mask_mc.lineTo(915, 660); mask_mc.lineTo(0, 660); mask_mc.endFill(); [/code] El codigo del movimiento es algo más complejo dado que las solapas no se pinchan sino que se arrastran, y deben empujar las que tengan delante, o atrás, dependiendo a que lado estén apiladas, pero dudo que esté ahí el error porque si las mascaras las creo en tiempo de diseño este retardo no se produce. Por si acaso os pego la función: [code] fStartDrag = function () { var inc:Number = 15; dragger_mc._x = this._x; startDrag("dragger_mc", false, this.miXmin-15, 0, this.miXmax+15, 0); for (var j = 0; j<=numsolapas; j++) { var solapa:MovieClip = _root["solapa"+j+"_mc"]; var mask_mc:MovieClip = _root["mask"+j+"_mc"]; mask_mc.onEnterFrame = function() { if (this.miID<numsolapas) { this._x = _root["solapa"+this.miID+"_mc"]._x-915; } else { this._x = _root["solapa"+this.miID+"_mc"]._x+15; } }; //Si arrastro una que está a la izquierda if (this.lado == "izquierda") { //arrastro todas la que estén a su derecha pero situadas a la izquierda if (solapa.miID>=this.miID && solapa.lado == "izquierda") { solapa.inc = 15+(j-this.miID)*15; solapa.onEnterFrame = function() { this._x = dragger_mc._x+this.inc; }; } } if (this.lado == "derecha") { //arrastro todas la que estén a su izquierda pero situadas a la derecha if (solapa.miID<=this.miID && solapa.lado == "derecha") { solapa.inc = 15+(this.miID-j)*15; solapa.onEnterFrame = function() { this._x = dragger_mc._x-this.inc; }; } } } }; [/code] Muchas gracias de antemano y un saludo. Javier Fernández ------------------------------------------ [ http://drusunlimited.com ] ---------------------------------- Lista ASNativos:[email protected] http://www.5dms.com/listas ----------------------------------

