Comunidad de diseño web y desarrollo en internet online

profundidad en as3

Citar            
MensajeEscrito el 06 Dic 2008 08:18 pm
Hace unos dias, preguntaba como podia hacer que al pulsar sobre las miniaturas de una galeria de fotos salieran en pantalla como un contenedor.Gracias a miembros del foro consegui hacerlo, pero ahora me surge otra problema.
Resulta que quiero que las miniaturas queden simpre encima de las fotos, ya que cuando pulso sobre una de ellas, la foto se pone encima tapando todas las miniaturas.
Dejo el codigo.

Código :

 
stop();
import fl.transitions.Tween;
import fl.transitions.easing.*;

var filename_list = new Array();
var url_list = new Array();
var url_target_list:Array = new Array();
var title_list = new Array();
var description_list = new Array();
var loader:Loader=null;
var i:Number;
var tn:Number = 0;
var no_of_column:Number = 6;
var no_of_row:Number = 1;   // number of rows showing at a time
var no_of_extra_row:Number;
var scale_default:Number = 0.65;
var scale_over:Number = 0.9;//cambios tamaño
var tween_duration:Number = 0.5;
var new_row:Number = 0;

var total:Number;
var trabajos_xml:XML = new XML();
var folder:String = "thumbnails/";
var xml_loader:URLLoader = new URLLoader();
xml_loader.load(new URLRequest("trabajos.xml"));
xml_loader.addEventListener(Event.COMPLETE, create_thumbnail);

var thumbnail_group:MovieClip = new MovieClip();
this.addChild(thumbnail_group);
loader=new Loader(); addChild(loader)

loader.x =-266;
loader.y =-159;
thumbnail_group.x = tn_group.x + 0.6 * scale_over * 140;
var default_y:Number = thumbnail_group.y = tn_group.y + 0.6 * scale_over * 100;
thumbnail_group.mask = tn_group_mask;

tn_group.visible = false;
fm_previous.visible = false;
fm_next.visible = false;

tn_title.text = "";
tn_desc.text = "";
tn_url.text = "";

function create_thumbnail(e:Event):void 
{
   trabajos_xml = XML(e.target.data);
   total = trabajos_xml.thumbnail.length();
   no_of_extra_row = Math.floor(total / no_of_column) - no_of_row;
   
   for( i = 0; i < total; i++ )
   {
      filename_list.push( trabajos_xml.thumbnail[i][email protected]() );
      url_list.push( trabajos_xml.thumbnail[i][email protected]() );
      url_target_list.push( trabajos_xml.thumbnail[i][email protected]() );
      title_list.push( trabajos_xml.thumbnail[i][email protected]() );
      description_list.push( trabajos_xml.thumbnail[i][email protected]() );
   }
   load_tn();
}

function load_tn():void
{
   var pic_request:URLRequest = new URLRequest( folder + filename_list[tn] );
   var pic_loader:Loader = new Loader();

   pic_loader.load(pic_request);
   pic_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, on_loaded);
   tn++;
}

function on_loaded(e:Event):void
{
   if( tn < total )
   {
      load_tn();
   }
   else
   {
      fm_previous.visible = true;
      fm_next.visible = true;
      fm_previous.addEventListener( MouseEvent.CLICK, to_previous );
      fm_next.addEventListener( MouseEvent.CLICK, to_next );
      this.addEventListener(MouseEvent.MOUSE_WHEEL, on_wheel );
   }

   var trabajos_bm:Bitmap = new Bitmap();
   var trabajos_mc:MovieClip = new MovieClip();

   trabajos_bm = Bitmap(e.target.content);
   trabajos_bm.x = - trabajos_bm.width * 0.5;
   trabajos_bm.y = - trabajos_bm.height * 0.5;
   trabajos_bm.smoothing = true;
   
   var bg_width = trabajos_bm.width + 5;
   var bg_height = trabajos_bm.height + 5;
   
   trabajos_mc.addChild(trabajos_bm);
   trabajos_mc.graphics.beginFill(0xFFFFFF);
   trabajos_mc.graphics.drawRect( - bg_width * 0.5, - bg_height * 0.5, bg_width, bg_height );
   trabajos_mc.graphics.endFill();
   
   trabajos_mc.name = "flashmo_" + thumbnail_group.numChildren;
   trabajos_mc.buttonMode = true;
   trabajos_mc.addEventListener( MouseEvent.MOUSE_OVER, tn_over );
   trabajos_mc.addEventListener( MouseEvent.MOUSE_OUT, tn_out );
   trabajos_mc.addEventListener( MouseEvent.CLICK, tn_click );
   trabajos_mc.scaleX = trabajos_mc.scaleY = scale_default;

   trabajos_mc.x = thumbnail_group.numChildren % no_of_column 
                  * ( bg_width + 10 ) * scale_default;
   trabajos_mc.y = Math.floor( thumbnail_group.numChildren / no_of_column ) 
                  * ( bg_height + 10 ) * scale_default;

   thumbnail_group.addChild(trabajos_mc);
}

function tn_over(e:MouseEvent):void
{
   var mc:MovieClip = MovieClip(e.target);
   var s_no:Number = parseInt(mc.name.slice(8,10));
   
   thumbnail_group.addChild(mc);

   new Tween(mc, "scaleX", Strong.easeOut, mc.scaleX, scale_over, tween_duration, true);
   new Tween(mc, "scaleY", Strong.easeOut, mc.scaleY, scale_over, tween_duration, true);
   
   tn_title.text = title_list[s_no];
   tn_desc.text = description_list[s_no];
   tn_url.text = url_list[s_no];
}

function tn_out(e:MouseEvent):void
{
   var mc:MovieClip = MovieClip(e.target);

   new Tween(mc, "scaleX", Strong.easeOut, mc.scaleX, scale_default, tween_duration, true);
   new Tween(mc, "scaleY", Strong.easeOut, mc.scaleY, scale_default, tween_duration, true);
   
   tn_title.text = "";
   tn_desc.text = "";
   tn_url.text = "";
}

function tn_click(e:MouseEvent):void
{
   var mc:MovieClip = MovieClip(e.target);
   var s_no:Number = parseInt(mc.name.slice(8,10));
   
   loader.load(new URLRequest(url_list[s_no]))
}


function to_previous(e:MouseEvent):void
{
   if( new_row < 0 )
   {
      new_row++;
      new Tween( thumbnail_group, "y", Strong.easeOut, 
              thumbnail_group.y, default_y + new_row * 80, tween_duration, true );
   }
}

function to_next(e:MouseEvent):void
{
   if( Math.abs(new_row) < no_of_extra_row )
   {
      new_row--;
      new Tween( thumbnail_group, "y", Strong.easeOut, 
              thumbnail_group.y, default_y + new_row * 80, tween_duration, true );
   }
}

function on_wheel(e:MouseEvent):void
{
   if( e.delta > 0 )
      new_row++;
   else
      new_row--;

   if( new_row >= 0 )
      new_row = 0;
   else if( new_row < - no_of_extra_row )
      new_row = - no_of_extra_row;

   new Tween( thumbnail_group, "y", Strong.easeOut, 
           thumbnail_group.y, default_y + new_row * 80, tween_duration, true );
}

Por pepito piscinas

106 de clabLevel



 

msie
Citar            
MensajeEscrito el 06 Dic 2008 11:25 pm
No hace falta que pongas todo el código, basta con saber que con los métodos setChildIndex(), swapChildren(), o swapChildrenAt() puedes modificar el nivel de profundidad de un objeto (que herede de DisplayObject)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

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