Bueno, estoy flipando, ahora pruebo a attachear el mc mascara en lugar de
pintarlo y sufre la misma pérdida de rendimiento. :(

----- Original Message ----- 
From: "Javier Fernández" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Saturday, December 03, 2005 10:03 PM
Subject: [ASNativos] Perdida de rendimiento moviendo mcs creados con la API
de dibujo


> 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
> ----------------------------------

----------------------------------
Lista ASNativos:[email protected]
http://www.5dms.com/listas
----------------------------------

Responder a