Comunidad de diseño web y desarrollo en internet online

problemas con ventanas despleglables

Citar            
MensajeEscrito el 28 Ago 2007 06:01 pm
hola buenas, es la primera vez que escribo aunque ya me habia pasado por aqui alguna vez.
mi problema es que estoy haciendo una pagina y en la parte de contacto he echo unas ventanas que se despliegan para mostrar los datos.hasta ay si he llegado,a lo bestia,pero me gustaria que al abrir una se cierre otra si esta abierta,no que se quedan todas abiertas.
como he dicho lo he echo un poco alo bestia, he usado funcion gotoandplay y botones.
si alguien me pudiera decir como o alguna otra manera que no sean.
http://www.satfrutasmargui.com/contacto.swf
tengo el flash 8 profesional

Por moki

3 de clabLevel



 

msie
Citar            
MensajeEscrito el 29 Ago 2007 08:00 pm
Las ventanas ya activas no deberían activarse (buscá la propiedad _enabled de los botones), por otro lado, para cerrarlas lo que podés hacer es que en el mismo código en el que abrís una ventana mandes a cerrar todas las demás. Es una solución poco elegante pero el usuario no lo va a notar (con poco elegante me refiero a que ver un código así es feo).

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

firefox
Citar            
MensajeEscrito el 01 Sep 2007 11:18 am
buenas, la propiedad enabled de los botone ha sido muy util. he intentado cerrarlas todas como dices pero entonces todas las ventanas hace la animacion de cerrarse .
el codigo que tengo ahora mismo es este, asi solo funciona a la mitad, en las funciones del btn_1 he puesto que cierre y active al btn_2 si estuviera abierto,y lo hace.podria poner lo mismo en cada btn para todos los demas pero seria un poco largo y ahora lo que necesito es alguna manera de simplificarlo.hay alguna manera de poner en un solo bloque(por decirlo de alguna manera) las funciones de todos los botones.
las variables que tengo al principio del codigo es porque he anidado los clip unos dentro de otros para que cundo el primero se abra los demas bajen con el.

Código :

stop();
_root = this;
btn_1 = _root.pagina.mc_dire.btn__dire;
btn_2 = _root.pagina.mc_dire.mc_fax.btn__fax;
btn_3 = _root.pagina.mc_dire.mc_fax.mc_correo.btn__correo;
btn_4 = _root.pagina.mc_dire.mc_fax.mc_correo.mc_formu.btn__formu;
mc_1 = _root.pagina.mc_dire;
mc_2 = _root.pagina.mc_dire.mc_fax;
mc_3 = _root.pagina.mc_dire.mc_fax.mc_correo;
mc_4 = _root.pagina.mc_dire.mc_fax.mc_correo.mc_formu;
onEnterFrame();
btn_1.onRelease = function() {
   this.enabled = false;
   this._parent.gotoAndPlay(2);
   if (btn_2.enabled == false) {
      mc_2.gotoAndPlay(11);
      btn_2.enabled = true;
   }
};

btn_2.onRelease = function() {
this.enabled = false;
this._parent.gotoAndPlay(2);
};
btn_3.onRelease = function() {
this.enabled = false;
this._parent.gotoAndPlay(2);
};
btn_4.onRelease = function() {
this.enabled = false;
this._parent.gotoAndPlay(2);
};

espero haberme explicado bien

Por moki

3 de clabLevel



 

msie
Citar            
MensajeEscrito el 01 Sep 2007 12:30 pm

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 01 Sep 2007 04:53 pm
ya lo he hecho,he repetido el mismo codigo para cada boton, se ha quedado un poco largo,pero funciona.

Código :

stop();
_root = this;
btn_1 = _root.pagina.mc_dire.btn__dire;
btn_2 = _root.pagina.mc_dire.mc_fax.btn__fax;
btn_3 = _root.pagina.mc_dire.mc_fax.mc_correo.btn__correo;
btn_4 = _root.pagina.mc_dire.mc_fax.mc_correo.mc_formu.btn__formu;
mc_1 = _root.pagina.mc_dire;
mc_2 = _root.pagina.mc_dire.mc_fax;
mc_3 = _root.pagina.mc_dire.mc_fax.mc_correo;
mc_4 = _root.pagina.mc_dire.mc_fax.mc_correo.mc_formu;
onEnterFrame();
btn_1.onRelease = function() {
   this.enabled = false;
   this._parent.gotoAndPlay(2);
   if (btn_2.enabled == false) {
      mc_2.gotoAndPlay(11);
      btn_2.enabled = true;
   }
   if (btn_3.enabled == false) {
      mc_3.gotoAndPlay(11);
      btn_3.enabled = true;
   }
   if (btn_4.enabled == false) {
      mc_4.gotoAndPlay(11);
      btn_4.enabled = true;
   }
   
};
btn_2.onRelease = function() {
   this.enabled = false;
   this._parent.gotoAndPlay(2);
   if (btn_1.enabled == false) {
      mc_1.gotoAndPlay(11);
      btn_1.enabled = true;
   }
   if (btn_3.enabled == false) {
      mc_3.gotoAndPlay(11);
      btn_3.enabled = true;
   }
   if (btn_4.enabled == false) {
      mc_4.gotoAndPlay(11);
      btn_4.enabled = true;
   }
};
btn_3.onRelease = function() {
   this.enabled = false;
   this._parent.gotoAndPlay(2);
   if (btn_2.enabled == false) {
      mc_2.gotoAndPlay(11);
      btn_2.enabled = true;
   }
   if (btn_1.enabled == false) {
      mc_1.gotoAndPlay(11);
      btn_1.enabled = true;
   }
   if (btn_4.enabled == false) {
      mc_4.gotoAndPlay(11);
      btn_4.enabled = true;
   }
};
btn_4.onRelease = function() {
   this.enabled = false;
   this._parent.gotoAndPlay(2);
   if (btn_2.enabled == false) {
      mc_2.gotoAndPlay(11);
      btn_2.enabled = true;
   }
   if (btn_3.enabled == false) {
      mc_3.gotoAndPlay(11);
      btn_3.enabled = true;
   }
   if (btn_1.enabled == false) {
      mc_1.gotoAndPlay(11);
      btn_1.enabled = true;
   }
};

he mirado el tutorial que dices,la estructura es distinta y ya no iba a cambiarla aunque la animacion tampoco la queria asi.el flash esta actualizado, que la otra vez no lo actualice:
http://www.satfrutasmargui.com/contacto.swf
si alguien sabe como podria acer alguna funcion que me lo simplificara me gustaria saberla. gracias por la ayuda

Por moki

3 de clabLevel



 

msie
Citar            
MensajeEscrito el 01 Sep 2007 07:04 pm
Tu mayor error es repetir código. Para el futuro, tené en cuenta esto: si escribís 2 o más veces un mismo código donde solo varían los nombres de instancia o alguna que otra variable, es 99% seguro de que tu código se puede hacer con un loop.

Me explico mejor (después adaptá esto a tu código y vas a descubrir que lindo y ordenadito queda todo):

Código :

// Supongamos que tengo este código:
btn1.onRelease = function () {
this._alpha = 100;
};
btn2.onRelease = function () {
this._alpha = 100;
};
btn3.onRelease = function () {
this._alpha = 100;
};
// Podemos obtener la misma funcionalidad de la siguiente manera:
for (var i = 1; i <= 3; i++) {
this["btn" + i].onRelease = function () {
this._alpha = 100;
};
}

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

firefox
Citar            
MensajeEscrito el 01 Sep 2007 08:31 pm
eso es justo lo que queria hacer,pero me llevo muy mal con la sintaxis y me daba errores al hacer la funcion.las rallitas estas[ ] tienen algo que ver con las matrices?.voy a ponerlo bonito y cuando termine la pagina ya la pondre en el foro.gracias

Por moki

3 de clabLevel



 

msie
Citar            
MensajeEscrito el 01 Sep 2007 09:53 pm
a mi esto no me sale.la primera parte bien

Código :

onEnterFrame();
for (var i = 1; i<=4; i++) {
   this["btn_"+i].onRelease = function() {
      this.enabled = false;
      this._parent.gotoAndPlay(2);
   };
}

pero lo demas del codigo no consigo ponerlo porque es como si le dijera que cerrara el mismo que abre,que no se como hacerlo.necesito mas ayuda, quiero saber como se puede hacer porque ni a lo burro cosigo que funcione poniendo el principio bien.
el problemo que tengo es que quiero que cierre el que no ha abierto,es decir el que habia abierto anteriormente.
se que podria dejarlo como esta ya subido,pero me gustaria hacerlo mejor

Por moki

3 de clabLevel



 

msie
Citar            
MensajeEscrito el 02 Sep 2007 02:14 pm
Pseudocódigo:

Código :

boton.onRelease = function () {
var botonAcerrar = getBtn ();
if (botonAcerrar != this) {
// Cerrar el botón
} else {
trace ("No se puede cerrar el botón que se quiere abrir");
}
};
Respecto a tu primer pregunta, si, los corchetes indican matrices. Pero, a diferencia de los Arrays indexados (miArray[numero]), los elementos del Stage se almacenan en Arrays asociativos (miArray[nombreInstancia]).

Podés buscar la diferencia entre ambos tipos de Array en esta misma página o usando Google.

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

firefox

 

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