Comunidad de diseño web y desarrollo en internet online

Problema con maskara

Citar            
MensajeEscrito el 20 May 2006 12:17 pm
Hola resulta q tengo el sgte problema estoy modificando un codigo(mis conocimientos en AS son nulos) y no logro encontrar la parte donde el codigo setea la posicion de la maskara, ya que esta aparece en un lugar determinado.

Ojala me puedan ayudar, aqui les adjunto el codigo.

musxa gracias.

Código :

MovieClip.prototype.drawCircle = function (radius, x, y) {
   var angleDelta = Math.PI / 4;
   var ctrlDist = radius/Math.cos(angleDelta/2);
   var angle = 0;
   var rx, ry, ax, ay;
   this.moveTo(x + radius, y);
   for (var i = 0; i < 8; i++) {
      angle += angleDelta;
      rx = x + Math.cos(angle-(angleDelta/2))*(ctrlDist);
      ry = y + Math.sin(angle-(angleDelta/2))*(ctrlDist);   
      ax = x + Math.cos(angle)*radius;
      ay = y + Math.sin(angle)*radius;
      this.curveTo(rx, ry, ax, ay);
   }
}

MovieClip.prototype.enmascarar = function(radio){
   this._alpha = 0;
   var prof:Number = _root.getNextHighestDepth();       // Profundidad de los clips a usar
   var ancho:Number = _root.caja_mc._width;                  // Ancho del clip a enmascarar
   var alto:Number = _root.caja_mc._height;                  // Alto del clip a enmascarar
   var cx:Number = Math.floor(ancho/(radio*2))+2;      // Número de círculos por fila
   var cy:Number = Math.floor(alto/radio)+1;         // Número de círculos por columna
   var cant:Number = cx * cy+cx;                  // Cantidad total de círculos
   var destino:MovieClip = this;                  // Identificador del clip
   _root.createEmptyMovieClip("maskareitor",prof);      // Creamos el clip de la máscara
   prof++;                                    // Profundidad más
   var x:Number = 0                        // Columna q le toca a cada círculo
   var y:Number=1                              // Fila que le toca a cada círculo
   var d:MovieClip;                           // Identificador del círculo
   var control:Number = 0;
   diagonal = 0, posDiag = 1;
   for(i=1;i<(cant+1);i++){                     // Bucle de creación de los círculos
      _root.maskareitor.createEmptyMovieClip("circulo" + i,prof);   // Creamos el clip vacío
      d = _root.maskareitor["circulo" + i];         // Identificador del círculo actual
      d._x = x;                              // Calculamos la posición X
      d._y = radio*(y-1);                        // Calculamos la posición Y
      d.i = i;                              // Asignamos el número
      
      // Fórmulas para controlar el orden de aparición
      d.orden = diagonal+posDiag;
      posDiag++;
      if(posDiag%(cx) == 0){
         posDiag = 1;
         diagonal +=0.5;
      }
      // d.orden = random(cant); <-- para hacerlos aleatorios
      //--------------------------------------------------------
      
      // POSICIONAMIENTO----------------------------------------
      if(y%2!=0){
         x+=(radio*2);
         if(i%(cx)==0 && i!=1){
            x=-radio;
            y++;
         }
      }else{
         x+=(radio*2);
         if(i%(cx)==0){
            x = 0;
            y++;
         }
      }   
      //---------------------------------------------------------
      //---------------------------------------------------------
      d.beginFill(0xFFFFFF,100);         // Dibujamos el círculo
      d.drawCircle(radio,0,0);
      d.endFill();
      prof++;
      d._xscale = 0;                  // Lo escalamos a 0
      d._yscale = 0;
      d.tiempo = 0;                     // Temporizador
      d.onEnterFrame = function(){
         if(this.tiempo == this.orden){      // Si le toca agrandarse
            if(this._xscale <100){
               this._xscale += (101-this._xscale)/7;
               this._yscale = this._xscale;
            }else{
               delete this.onEnterFrame;
               control +=100;
               if(control == (cant*100)){
                  _root.maskareitor.removeMovieClip();   // Borra la máscara madre
                  destino.setMask(null);               // Quita máscara                  
                  //trace("fin");
               }
            }
         }else{
            this.tiempo +=0.5;
         }         
      }
      
   }   
   this.setMask(_root.maskareitor);
   this._alpha = 100;
}

Por JavierS

37 de clabLevel



Genero:Masculino  

Viña/Chile

firefox
Citar            
MensajeEscrito el 20 May 2006 07:53 pm
la mascara es originalmente:

el movie d (todavia no es mascara.............la posiciona, la escala..........y:


this.setMask(_root.maskareitor) con sus cambios en cada llamada del proto. Y elimina con



_root.maskareitor.removeMovieClip(); // Borra la máscara madre
destino.setMask(null);
y vuelta a empezar la colocación de los circulos en estela

Por Teseo

SWAT Team

1780 de clabLevel

14 tutoriales

Genero:Masculino   SWAT

firefox

 

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