Comunidad de diseño web y desarrollo en internet online

Ayuda con galeria en as2

Citar            
MensajeEscrito el 28 Jun 2009 09:10 pm
Hola, soy nueva por aquí y quisiera que me ayudaran, les cuento encontré esta galería en internet:

http://www.ffiles.com/flash/photo_galleries/circular_thumbnail_gallery_1989.html

pero es en as3 y estoy realizando mi web en as2, así que me puse en la tarea de hacerla y este es el código de lo que va:

Código ActionScript :

var num:Number = 31;
var radioX:Number = 250;
var radioY:Number = 250;
var centroX:Number = -100; //- 20;
var centroY:Number =  180;
var velocidad:Number = 0.01;

for(i = 0; i < num; i++)
{
   var mcs = attachMovie("item", "item" + i, i);
   mcs.angle = i*((Math.PI*2)/num);
   mcs.onEnterFrame = Movimiento;
   mcs.foto_mc.def_mc.loadMovie("./fotos/0" + i + ".jpg");
   Presionar(i);
   zoom (i);
   Normal (i);
   pasar (i);
}

function Movimiento()
{
   this._x = Math.cos(this.angle)*radioX + centroX;
   this._y = Math.sin(this.angle)*radioY + centroY;
   this._rotation = Math.sin(this.angle)*65;
   this.angle += this._parent.velocidad;
}

function Presionar(i)
{
   mcs.foto_mc.onPress = function()
   {
      //trace(links[i]);
   }
}

function zoom (i) {
mcs.foto_mc.onRollOver = function(){
   miXTween = new mx.transitions.Tween(this, "_xscale", Bounce.easeOut, 100, 120, 0.2, true);
   miYTween = new mx.transitions.Tween(this, "_yscale", Bounce.easeOut, 100, 120, 0.2, true);
    this.swapDepths( _root.getNextHighestDepth() );
}
}

function Normal (i) {
mcs.foto_mc.onRollOut = function () {
   miXTween = new mx.transitions.Tween(this, "_xscale", Bounce.easeOut, 120, 100, 0.2, true);
   miYTween = new mx.transitions.Tween(this, "_yscale", Bounce.easeOut, 120, 100, 0.2, true);
}
}


y así es como se ve: http://www.caromaru.webcindario.com

Mi problema es que se supone que la función (zoom) la penúltima en el código la línea "this.swapDepths( _root.getNextHighestDepth() );" es la que ajusta la profundidad de manera que cuando el mouse pase encima el ítem se ponga enfrente independientemente de cuál sea y en que posición este.

La verdad me pudo :cry: y necesito ayuda!

Gracias :)

Por caromaru64

4 de clabLevel



 

firefox
Citar            
MensajeEscrito el 29 Jun 2009 01:11 am
No entiendo muy bien cuál es tu pregunta en realidad, no te he logrado entender, sólo mirando tu código veo que llamas a la función "zoom" y la función "Normal" pasándole como parámetro un número y después dentro de la función no lo utilizas, si lo que deseas es darle acciones a los movieClips que vas creando lo mejor es que pases este movieclip como parámetro o que sitúes las acciones de rollOver, rollOut y onPress dentro del ciclo:

Código ActionScript :

for(i = 0; i < num; i++) 
{ 
   var mcs = attachMovie("item", "item" + i, i); 
   mcs.angle = i*((Math.PI*2)/num); 
   mcs.onEnterFrame = Movimiento; 
   mcs.foto_mc.def_mc.loadMovie("./fotos/0" + i + ".jpg");

   //---Ejemplo con RollOver
   mcs.onRollOver = function():Void{

        miXTween = new mx.transitions.Tween(this, "_xscale", Bounce.easeOut, 100, 120, 0.2, true); 
        miYTween = new mx.transitions.Tween(this, "_yscale", Bounce.easeOut, 100, 120, 0.2, true); 
        this.swapDepths(this._parent.getNextHighestDepth());

   }
} 

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 29 Jun 2009 05:08 pm
Oye muchas gracias si era eso! :lol:

Por caromaru64

4 de clabLevel



 

firefox
Citar            
MensajeEscrito el 29 Jun 2009 07:58 pm
Oye muchas gracias, pero ahora tengo otra duda, bueno lo de la profundidad de cada item funciona pero me gustaria que la angulacion de cada item estuviese mas organizada como la de la otra galeria pero ya he mirado mil veces y no se exactamente el valor o la operacion, tambien quisiera saber como hago para que al pasar sobre los items rapido no se vea tan brusco el movimiento ya le puse tween pero no es suficiente.

Código :

import mx.transitions.Tween;

var num:Number = 31;
var radioX:Number = 350;
var radioY:Number = 350;
var centroX:Number = -100; 
var centroY:Number =  180;
var velocidad:Number = 0.01;

for(i = 0; i < num; i++)
{
   var mcs = attachMovie("item", "item" + i, i);
   mcs.angle = i*((Math.PI*2)/num);
   mcs.onEnterFrame = Movimiento;
   mcs.foto_mc.def_mc.loadMovie("./fotos/0" + i + ".jpg");
      
   mcs.onPress = function()
   {
      trace(links[i]); 
   }
   
   mcs.onRollOver = function(i){
   var img:Tween = new   Tween(this,"_xscale",mx.transitions.easing.Bounce.easeOut,100,140,0.5,true);
   var img2:Tween = new Tween(this,"_yscale",mx.transitions.easing.Bounce.easeOut,100,140,0.5,true);
    this.swapDepths( _root.getNextHighestDepth() );
}
    mcs.onRollOut = function(){
   var img3:Tween = new Tween(this,"_xscale",mx.transitions.easing.Elastic.easeOut,160,100,1,true);
   var img4:Tween = new Tween(this,"_yscale",mx.transitions.easing.Elastic.easeOut,160,100,1,true);
  }

}

function Movimiento()
{
   this._x = Math.cos(this.angle)*radioX + centroX;
   this._y = Math.sin(this.angle)*radioY + centroY;
   this._rotation = Math.sin(this.angle)*65;
   this.angle += this._parent.velocidad;

}


Gracias! :D

Por caromaru64

4 de clabLevel



 

firefox
Citar            
MensajeEscrito el 29 Jun 2009 11:42 pm
Deberás mirar los cálculos de la otra galería e implementarlos en esta, ya ese problema sería de trigonometría.
En cuanto a tu segunda duda, creo que si no haces las variables de los Tweens locales de la función podrías remediar que la animación diera saltos, declara las variables al principio del código e implementa los Tweens de la misma manera que lo tenías en el código anterior.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 30 Jun 2009 02:46 am
Oye mil gracias, pero que pena contigo lo que pasa es que no entiendo lo ultimo, "creo que si no haces las variables de los Tweens locales de la función podrías remediar que la animación diera saltos, declara las variables al principio del código e implementa los Tweens de la misma manera que lo tenías en el código anterior."

Me podrias poner un ejemplo pliss :oops:

Mil gracias :oops:

Por caromaru64

4 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Jun 2009 08:34 am
declara las variables al principio del código


Código ActionScript :

import mx.transitions.Tween;
var num:Number = 31; 
var radioX:Number = 250; 
var radioY:Number = 250; 
var centroX:Number = -100; //- 20; 
var centroY:Number =  180; 
var velocidad:Number = 0.01;

var miXTween:Tween;  
var miYTween:Tween;


e implementa los Tweens de la misma manera que lo tenías en el código anterior


Código ActionScript :

mcs.onRollOver = function():Void{ 
 
        miXTween = new Tween(this, "_xscale", Bounce.easeOut, 100, 120, 0.2, true);  
        miYTween = new Tween(this, "_yscale", Bounce.easeOut, 100, 120, 0.2, true);  
        this.swapDepths(this._parent.getNextHighestDepth()); 
 
 }

mcs.onRollOut = function(){

        miXTween = new Tween(this,"_xscale",mx.transitions.easing.Elastic.easeOut,160,100,1,true);
        miYTween = new Tween(this,"_yscale",mx.transitions.easing.Elastic.easeOut,160,100,1,true);

  }

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 03 Jul 2009 09:22 pm
Muchas Gracias! :lol: ^^

Por caromaru64

4 de clabLevel



 

firefox

 

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