Comunidad de diseño web y desarrollo en internet online

diagramacion liquida y galeria

Citar            
MensajeEscrito el 12 Dic 2008 06:04 pm
Hola es la primera vez que entro al foro espero y me puedan ayudar , Tengo un probelma que no se lo que pasa
Mi intencion es crear una galeria dinamica de tipo carrusel con AS 2.0 hasta ahi todo bien el problema surge al aplicarle diagramacion liquida al movieclip creado con AS 2.0. SI creo la galeria la galeria al momento que la pelicula flash tiene su tamaño original el movie clip se recoloca perfectamente en la posicion establecida, el problema esta que cuando cambio primero el tamaño de la ventana no se recoloca adecuadamente cargandoce hacia la derecha :|
espero haberme explicado bien :shock:
este es para mover la pelicula

Código :

   
contenedor_mc._x =(Stage.height/2);
contenedor_mc._y =(Stage.height/2);

y este es para crear la galeria es de el tuto que esta la page de tutoriales-flash

Código :

System.useCodepage = true;
XML.prototype.ignoreWhite = true;
import flash.display.BitmapData;
import flash.geom.Rectangle;
import flash.geom.Matrix;
// -----------------------------------------------------------------------------
// ----- ajustes personalizables -----------------------------------------------
// -----------------------------------------------------------------------------
// ancho carrusel en px

var ancho_carrusel:Number =1280;
// ancho de miniatura en su punto máx (en el centro del carrusel) en px
var ancho_miniatura:Number = 68;
// velocidad en escala inversa, cuanto menor sea su valor más rápido gira
var v_giro:Number=15;
var reflejar:Boolean = true;
// color de fondo para que el reflejo quede bien
var color_fondo:Number = 0xF4F4F4;
// array donde metemos los elementos del XML
var x0:Number = Stage.width/2;
var y0:Number = Stage.height/2;
var url_fotos:String = "http://www.loganet.com.mx/lista/minis.php";
var dir_minis:String = "icons/";

// ------------------------------------------------------------------------------
// ----- 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 = 40;mcCategorias
   //num_fotos = IMG_array.length;
   var contenedor:MovieClip = _root.createEmptyMovieClip("contenedor_mc",  _root.contenedor.getNextHighestDepth());
   contenedor._y = y0;
   contenedor._visible = false;
   var carrusel:MovieClip = contenedor.createEmptyMovieClip("carrusel_miniaturas_mc", poscontenedor.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 
         
      };
      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() {
      pos_x.text= "x="+ contenedor_mc._x;
      incre += (2)/_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, 0x00000000);
         //var myRectangle:Rectangle = new Rectangle(0, 0, ancho_carrusel+100, this._height);
         //bmp.draw(this,new Matrix(),new ColorTransform(),"normal",myRectangle,true);
         //.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));

};

//////funcion crearGaleria
function crearGaleria()
{
x0 = (Stage.height/2);
y0 = (Stage.height/2);
miniaturasXML.onLoad = cargarMiniaturas;
miniaturasXML.load(url_fotos);

//cargarMiniaturas;
}
function borrarGaleria(){
contenedor_mc.removeMovieClip();
contenedor_mc.removeMovieClip();
contenedor_mc.unloadMovie();
}


Por rha3d

16 de clabLevel



 

Aguascalientes, Mexico

msie
Citar            
MensajeEscrito el 13 Dic 2008 06:56 pm
o algun consejo de como hacer una galeria que se lleve con liquid layout :( :oops:

Por rha3d

16 de clabLevel



 

Aguascalientes, Mexico

chrome
Citar            
MensajeEscrito el 15 Dic 2008 12:11 am
No me he leido todo tu código por dos razones:

  1. Muchas líneas de código para corto tiempo. Cuando postees código, procura limitarte a lo que consideras realmente relevante para resolver el problema que tienes.
  2. Estaba buscando lo que me parece que es relevante en este caso y no lo encontré.

Dicho esto, te diré lo que me parece es tu problema:

  1. Debes establecer la alineación del escenario, para que el punto 0,0 se mantenga en la esquina superior izquierda:

    Código ActionScript :

    Stage.align = "TL";
    

  2. No está definido el evento onResize, que es el que ocurre cuando tu película cambia de tamaño, por eso es que al cambiar de tamaño los objetos no se resitúan.

Dicho esto, te recomiendo que te leas este Tutorial sobre Diagramación Líquida en Flash, creo que puede serte muy útil.

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 15 Dic 2008 02:05 am
Mil gracias por la respuesta The Fricky!
1.gracias por los consejos tienes mucha razón en que puse chorrocientas lineas de codigo es por mi inexperiencia XD
2. gracias por tomarte el tiempo
en un momento pruevo lo de la alineacion del Stage

Por rha3d

16 de clabLevel



 

Aguascalientes, Mexico

chrome
Citar            
MensajeEscrito el 15 Dic 2008 03:21 am
nop :( no se resolvio parece ser almenos io creo que es algo relacionado al crear el movieclip, puse un texto que me estuviera diciendo que cordenadas tiene y son siempre las correctas en la mitad pero en la pantalla no aparece asi, en fin ia me voy a dormir mañana sera otro dia xD muchas gracias

espero resolverlo mañana
(aunque ia llevo como 4 dias y nada Muahahhaha)

Por rha3d

16 de clabLevel



 

Aguascalientes, Mexico

chrome
Citar            
MensajeEscrito el 15 Dic 2008 05:23 pm
bueno como logro relvoerlo como yo esperaba lo hice de otra manera menos estetca pero efectiva
simple mente con el Onresize le digo que me la borre y me la vuelva a crear con

Código :

function borrarGaleria(){
contenedor_mc.removeMovieClip();
contenedor_mc.unloadMovie();
}

function crearGaleria()
{
x0 = (Stage.width/2);
y0 = (Stage.height/2);
miniaturasXML.onLoad = cargarMiniaturas;
miniaturasXML.load(url_fotos);
}

Por rha3d

16 de clabLevel



 

Aguascalientes, Mexico

chrome
Citar            
MensajeEscrito el 15 Dic 2008 05:26 pm
andale me equivoque al escribir quice decir "como no logro resolverlo"
¿se puden editar los mensajes?

Por rha3d

16 de clabLevel



 

Aguascalientes, Mexico

chrome

 

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