Comunidad de diseño web y desarrollo en internet online

posicion de reflejo en un efecto carrusel

Citar            
MensajeEscrito el 19 Jun 2009 03:52 pm
Hola!!
Como verán en mi titulo del tema mi problema es que no sé donde está el parametro que maneja la posicion del reflejo de mi carrusel.
en http://www.targetmail.com.ar/pruebas/carrusel/carrusel2.html verán cual es el problema.

Dejo aca mi codiguito, como verán lo bajé de otro lado y estoy tratando de entenderlo, algunas cosas ya le tomé la mano pero con este temita todavia no puedo:

Código ActionScript :

System.useCodepage = true;
XML.prototype.ignoreWhite = true;
// para no tener que escribir la ruta completa de las clases que usaremos más adelante
import flash.display.BitmapData;
import flash.geom.Rectangle;
import flash.geom.Matrix;
// -----------------------------------------------------------------------------
// ancho carrusel en px
var ancho_carrusel:Number = 470;
// ancho de miniatura en su punto máx (en el centro del carrusel) en px
var ancho_miniatura:Number = 185;
// velocidad en escala inversa, cuanto menor sea su valor más rápido gira
var v_giro:Number=80;
var reflejar:Boolean = true;
// color de fondo para que el reflejo quede bien
var color_fondo:Number = 0x04648f;
// array donde metemos los elementos del XML
var x0:Number = 500;
var y0:Number = 185;
var url_fotos:String = "http://www.targetmail.com.ar/pruebas/carrusel/miniaturas.xml";
var dir_minis:String = "http://www.targetmail.com.ar/pruebas/carrusel/miniaturas/";
// ------------------------------------------------------------------------------
// ----- fin ajustes personalizables --------------------------------------------
// ------------------------------------------------------------------------------
// objeto XML que carga la lista de miniaturas
// Hasta aquí hemos definido una serie de ajustes iniciales.
var IMG_array:Array;
var incre:Number = 0;
var num_fotos:Number;
var num_fotos_cargadas:Number;
var radio:Number = (ancho_carrusel-ancho_miniatura-10)*0.5;
var miniaturasXML:XML = new XML();
miniaturasXML.onLoad = cargarMiniaturas;
miniaturasXML.load(url_fotos);
// funcion que se ejecuta al cargar el XML
function cargarMiniaturas():Void {
   IMG_array = this.firstChild.childNodes;
   num_fotos = 4;
   //num_fotos = IMG_array.length;
   var contenedor:MovieClip = _root.createEmptyMovieClip("contenedor_mc", _root.getNextHighestDepth());
   contenedor._y = y0;
   contenedor._visible = false;
   var carrusel:MovieClip = contenedor.createEmptyMovieClip("carrusel_miniaturas_mc", contenedor.getNextHighestDepth());
   // lo posiciono donde nos conviene
   carrusel._x = x0;
   //carrusel._y = y0;
   num_fotos_cargadas = 0;
   for (var k:Number = 0; k<num_fotos; k++) {
      crearMiniatura(IMG_array[k].attributes.nombre,k);
   }

}
function crearMiniatura(ruta:String, orden:Number):Void {
   trace("ruta = "+ruta);
   // clip contendrá la imagen
   var clip:MovieClip = contenedor_mc.carrusel_miniaturas_mc.createEmptyMovieClip("foto_"+orden, contenedor_mc.carrusel_miniaturas_mc.getNextHighestDepth());
   clip.forceSmoothing = true;
   var dentro:MovieClip = clip.createEmptyMovieClip("foto", clip.getNextHighestDepth());
   dentro.forceSmoothing = true;
   clip.orden = orden;
   // para cargar la miniatura definimos un objeto MovieClipLoader
   // y un objeto detector de eventos
   var mi_mcl:MovieClipLoader = new MovieClipLoader();
   var miListener:Object = new Object();
   mi_mcl.addListener(miListener);
   // cargamos la imagen
   mi_mcl.loadClip(dir_minis+ruta,dentro);
   //mi_mcl.loadClip("http://www.tutoriales-flash.com//miniaturas/"+ruta,dentro);
   miListener.onLoadStart = function(target_mc:MovieClip) {
      // cuando comienza la carga de la imagen
      // ponemos al _alpha a 0
      target_mc._alpha = 0;
   };
   miListener.onLoadProgress = function(target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number) {
      // aquí podéis poner acciones para mostrar una precarga,
      // este caso no lo hemos considerado oportuno
   };
   // cuando ya se ha completado la carga y tenemos disponible el clip
   miListener.onLoadInit = function(target_mc:MovieClip) {
      //target_mc.smoothBitmap();
      var coef:Number = target_mc._width/ancho_miniatura;
      target_mc._height = int(target_mc._height/coef);
      target_mc._width = ancho_miniatura;
      target_mc._alpha = 100;
      target_mc._x = -(int(target_mc._width*0.5));
      target_mc._y = 0;
      target_mc.onRelease = function() {
         // acciones al hacer clic en la foto 
         if (ruta.indexOf(".gif") != -1) {
            var temp_array:Array = ruta.split(".gif");
            getURL("http://www.tutoriales-flash.com/tutorial.asp?id_tuto="+temp_array[0], "_blank");
         } else {
            getURL("http://www.tutoriales-flash.com", "_blank");
         }
      };
      num_fotos_cargadas++;
      //trace("onLoadInit: "+orden+" | cargadas: "+num_fotos_cargadas+"/"+num_fotos);
      if (num_fotos_cargadas>=num_fotos) {
         setTimeout(_root.girar_carrusel,500);
      }
   };
}
function girar_carrusel() {
   contenedor_mc._y = y0-contenedor_mc._height;
   if (reflejar) {
      var reflejo:MovieClip = _root.createEmptyMovieClip("reflejo_miniaturas_mc", _root.getNextHighestDepth());
      reflejo._yscale = -100;
      reflejo._y = contenedor_mc._y+contenedor_mc._height*2+1;
      var myMatrix:Matrix = new Matrix();
      myMatrix.createGradientBox(ancho_carrusel,contenedor_mc._height,Math.PI/2,0,-15);
      var sombreado:MovieClip = _root.createEmptyMovieClip("sombreado_mc", _root.getNextHighestDepth());
      var colors:Array = [color_fondo, color_fondo, color_fondo];
      var alphas:Array = [40, 90, 100];
      var ratios:Array = [0, 160, 255];
      sombreado.beginGradientFill("linear",colors,alphas,ratios,myMatrix);
      sombreado.moveTo(0,0);
      sombreado.lineTo(ancho_carrusel,0);
      sombreado.lineTo(ancho_carrusel,contenedor_mc._height);
      sombreado.lineTo(0,contenedor_mc._height);
      sombreado.lineTo(0,0);
      sombreado._y = y0+1;
      sombreado._x = x0-sombreado._width*0.5;
   }
   delete contenedor_mc.onEnterFrame;
   contenedor_mc.onEnterFrame = function() {
      incre += (_root._xmouse-x0)/_root.v_giro;
      for (var k:Number = 0; k<=num_fotos; k++) {
         this.carrusel_miniaturas_mc["foto_"+k].girar();
      }
      if (reflejar) {
         var bmp:BitmapData = new BitmapData(ancho_carrusel+100, this._height, true, 0x04648f);
         var myRectangle:Rectangle = new Rectangle(0, 0, ancho_carrusel+100, this._height);
         bmp.draw(this,new Matrix(),new ColorTransform(),"normal",myRectangle,true);
         _root.reflejo_miniaturas_mc.attachBitmap(bmp,1,"auto",true);
      }
   };
   contenedor_mc._visible = true;
}
MovieClip.prototype.girar = function() {
   var degrees:Number = _root.incre+(360*this.orden/num_fotos);
   var radians:Number = degrees*Math.PI/180;
   if (Math.sin(radians)<0) {
      this._alpha = 15;
   } else {
      this._alpha = 100;
   }
   this._x = radio*Math.cos(radians);
   this._xscale = (1-Math.cos(radians+Math.PI*0.5))*99-99;
   this.swapDepths(int(this._xscale*10));

};


Muchas gracias gente!
Lu

Por solo_lu

22 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 19 Jun 2009 05:51 pm
ahi supongo

Código ActionScript :

      reflejo._yscale = -100; 
      reflejo._y = contenedor_mc._y+contenedor_mc._height*2+1; 

Por tribak

Claber

2448 de clabLevel

6 tutoriales

Genero:Masculino   Héroes

Fotógrafo o algo

firefox
Citar            
MensajeEscrito el 19 Jun 2009 07:12 pm
No che, la verdad que con esoso valores solo lo muevo mas arriba o mas abajo al reflejo y si le borro algun dato lo hago desaparecer.
Debe estar en otra parte del codigo que ya de tanto mirarlo no lo puedo ver!!!

Por solo_lu

22 de clabLevel



Genero:Femenino  

firefox

 

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