Comunidad de diseño web y desarrollo en internet online

Problema con TweenMax

Citar            
MensajeEscrito el 18 Sep 2008 11:32 am
Hola , hace poco hice gracias a elchininet, una web utilizando TweenMax, eran avrios botones que llamabana a diferentes mc, y pinchabas un boton cerraba el mc abierto con una animacion y aparecia el mc correspondiente al boton. Os dejo donde me lo explicó: http://www.cristalab.com/foros/t60888_abrir-mc-cerrando-el-que-esta-abierto.html

El problema que tengo ahora es el siguiente, cmo puedo hacer para bloquear un boton, m eexplico,

Cada boton corresponde a un mc (1 con A, 2 con B, 3 con C...)

si tengo abierto el mcA, quiero que esté bloqueado el boton1, y activados el 2 y 3
si tengo abierto el mcB, quiero que esté bloqueado el boton2, y activados el 1 y 3
......

Alquien me ayuda.....espero que elchininet tenga la solucion :P

GRACIAS A TODOS

Por jose_ycp

18 de clabLevel



 

Sevilla

firefox
Citar            
MensajeEscrito el 18 Sep 2008 01:46 pm

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 18 Sep 2008 03:03 pm
joder...que perdio estoy, no se por donde cogerlo.... :shock:

Como ya sabes no tengo mucha experiencia en ActionScript y me pierdo a menudo :crap:

gracias

Pd. sigo leyendo lo que me has mandado a ver si encuentro la solución (es la 3 vez)...ejejeje

Por jose_ycp

18 de clabLevel



 

Sevilla

firefox
Citar            
MensajeEscrito el 18 Sep 2008 03:38 pm
No es muy complicado ya que se utilizan funciones, solo copia esta función en tu primer frame:
(Si mal no recuerdo eran tres botones por lo tanto el ciclo debe ser hasta tres)

Código ActionScript :

//---Función de activar o desactivar los botones

function desactiva(boton:MovieClip):Void {

   var mc:MovieClip;

   for (var i:Number = 1; i<=3; i++) {

      mc = this["boton"+i];

      //---Habilitar o deshabilitar el boton

      mc.enabled = (mc == boton) ? false : true;

   }
}





Y después cuando presiones tus botones donde se mandan a abrir las ventanas que ya no me acuerdo bien como era, pero era igual con un ciclo, llamas a la función:

Código ActionScript :

this["boton" + i].onPress = function():Void{ 
       
      desactiva(this); 
       
}

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 19 Sep 2008 08:26 am
En total son 5 botones.

A ver si me he enterao...en el primer frame pongo el primer codigo que me mandas, y en los botones el segundo no?

Lo he probado y no me funciona.

Puedes ver el ejemplo en http://www.ycomieronperdices.net/mediterranean/mediterranean_sevilla.html

Espero que con el enlace que te mando me puedas ayudar mejor, bueno, mejor dicho, me entere yo mejor....que aki el torpe soy yo

GRACIAS

Por jose_ycp

18 de clabLevel



 

Sevilla

firefox
Citar            
MensajeEscrito el 19 Sep 2008 12:04 pm
El segundo código no lo puedes poner en los botones, toda la programación es para el frame.
Mejor postea el código completo como lo tienes hasta ahora y te guio.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 22 Sep 2008 07:11 am
Este es el codigo que tengo en el primer frame

Código :

import gs.TweenMax;
import gs.easing.*;

var cantidad:Number = 5;

var windows:Array = new Array("contenido1", "contenido2", "contenido3","contenido4","contenido5","contenido6");

var windowOpen:Number;

for(var i:Number = 1; i <= cantidad; i++){

this["boton" + i].numero = i;

this["boton" + i].onPress = function():Void{


if(windowOpen > 0){

var winClose:MovieClip = this._parent[windows[windowOpen - 1]];

TweenMax.to(winClose, .5, {_x:Stage.width / 2, _y:Stage.height / 2, _xscale:0, _yscale:0, ease:Cubic.easeOut, onComplete:deleteWindow, onCompleteParams:[winClose]});

}

var tiempo:Number = (windowOpen > 0) ? .10 : 0;

var win:MovieClip = this._parent.attachMovie(windows[this.numero - 1], windows[this.numero - 1], this._parent.getNextHighestDepth());
win._x = (Stage.width - win._width) / 2;
win._y = (Stage.height - win._height) / 2;

TweenMax.from(win, 2.0, {_x:Stage.width / 2, _y:Stage.height / 2, _xscale:0, _yscale:0, delay:tiempo, ease:Cubic.easeOut});

windowOpen = this.numero;

}

}

//---Función de borrar el movieAbierto
function deleteWindow(window:MovieClip):Void{

window.removeMovieClip();

}

function desactiva(boton:MovieClip):Void {

var mc:MovieClip;

for (var i:Number = 1; i<=5; i++) {

mc = this["boton"+i];

mc.enabled = (mc == boton) ? false : true;

}
}

this["boton" + i].onPress = function():Void{

desactiva(this);

} 

Por jose_ycp

18 de clabLevel



 

Sevilla

firefox
Citar            
MensajeEscrito el 22 Sep 2008 10:15 am
El código que colocaste al final no hace nada porque no está dentro de un ciclo y necesita que esté dentro de un ciclo para que la variable "i" adquiera valor. Además no puedes hacer dos eventos onPress, ya tienes uno creado, solo tienes que situar la función dentro del evento que ya tienes:

Código ActionScript :

import gs.TweenMax;
import gs.easing.*;

var cantidad:Number = 5;

var windows:Array = new Array("contenido1", "contenido2", "contenido3", "contenido4", "contenido5", "contenido6");

var windowOpen:Number;

for (var i:Number = 1; i <= cantidad; i++) {

   this["boton" + i].numero = i;

   this["boton" + i].onPress = function():Void  {
      
      //---Desactivar el botón y activar los otros
      desactiva(this);

      if (windowOpen > 0) {

         var winClose:MovieClip = this._parent[windows[windowOpen - 1]];

         TweenMax.to(winClose,.5,{_x:Stage.width / 2, _y:Stage.height / 2, _xscale:0, _yscale:0, ease:Cubic.easeOut, onComplete:deleteWindow, onCompleteParams:[winClose]});

      }

      var tiempo:Number = (windowOpen > 0) ? .10 : 0;

      var win:MovieClip = this._parent.attachMovie(windows[this.numero - 1], windows[this.numero - 1], this._parent.getNextHighestDepth());
      win._x = (Stage.width - win._width) / 2;
      win._y = (Stage.height - win._height) / 2;

      TweenMax.from(win,2.0,{_x:Stage.width / 2, _y:Stage.height / 2, _xscale:0, _yscale:0, delay:tiempo, ease:Cubic.easeOut});

      windowOpen = this.numero;

   };

}

//---Función de borrar el movieAbierto
function deleteWindow(window:MovieClip):Void {

   window.removeMovieClip();

}

//---Función de desactivar el botón presionado y activar el resto
function desactiva(boton:MovieClip):Void {

   var mc:MovieClip;

   for (var i:Number = 1; i <= cantidad; i++) {

      mc = this["boton" + i];

      mc.enabled = (mc == boton) ? false : true;

   }
}

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 22 Sep 2008 11:05 am
Ahora lo entiendo...muchas gracias

Por jose_ycp

18 de clabLevel



 

Sevilla

firefox
Citar            
MensajeEscrito el 13 Mar 2009 08:15 pm
Hola, tengo una duda, esalgo que no se como se hace, si aplico con TweenMax un filtro colorMatrixFilter, este ya no se puede revertir?, como uso revesed()?, no me hace nada

Código ActionScript :

var twMx:TweenMax= new TweenMax();
function tipo_TwMx() 
{
switch(count) {
  case 1:
  twMx = TweenMax.to(mc, duration*.0001, {bevelFilter:{blurX:20, blurY:20, strength:5, angle:45, distance:5}, ease:Sine.easeInOut});
  break;
  case 2:
  twMx = TweenMax.to(mc, 0.25, {blurFilter:{blurX:25, blurY:25}, ease:Expo.easeIn});
  break;
  case 3:
  twMx = TweenMax.to(mc, 0.75, {blurFilter:{blurX:0, blurY:0}, ease:Expo.easeOut});
  break;
  case 4:
  twMx = TweenMax.to(mc, 0.25, {glowFilter:{color:0x0000FF, blurX:20, blurY:10, alpha:1}, ease:Expo.easeInOut});
  break;
  case 5:
  // TweenMax.to(mc, 0.25, {dropShadowFilter:{color:0x009900, blurX:20, blurY:10, alpha:1, distance:15}});
  twMx.reversed(); // AQUI NO SE que?, como?
  break;
  default:
  twMx = TweenMax.to(mc, duration*.0001, {colorMatrixFilter:{colorize:0xFF0000, amount:1, contrast:1.5, brightness:2}, ease:Sine.easeInOut});
  }
}


En si lo que quisiera saber es como aplico filtro, luego lo quito (sin usar yoyo), digamos onRollOver aplico, onRollOut reversed

Por comicSans

Claber

151 de clabLevel



 

msie7

 

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