Comunidad de diseño web y desarrollo en internet online

Inhabilitar boton cuando ellink objetivo ya esta en pantalla

Citar            
MensajeEscrito el 17 Jul 2006 06:41 am
Hola a todos, quisiera saber como inhabilito botones para que una vez que den click en ellos y carge en este caso el mc externo que vinculo y cuando repitan el click el boton no funcione y no repita la animacion del movie clip.

Gracias sus tutoriales he podido hacer un monton de cosas que no tenia ni idea, he buscado informacion para inhabilitar los botones pero de verdad que no encuentro el que necesito. Cualquier informacion la agradezco mucho.

Por Nathali

10 de clabLevel



Genero:Femenino  

msie
Citar            
MensajeEscrito el 17 Jul 2006 09:27 am
Crea una varialble boolean que te indique si el clip externo está cargado o no.

Código :

var clipCargado:Boolean = false

luego en el boton colocas un if que ejecute la carga solo cuando el boolean sea false, y coloque la variable en true.

Código :

boton.onRelease = function() {
   if (clipCargado == false) {
      loadMovie(pelicula, contenedor);
      clipCargado = true;
   }
};

La siguiente vez que clice en el boton no volverá a realizar la carga.
Si utilizas un código para descargar el mc externo vuelve a colocar la variable a false y el boton volverá a funcionar.
saludos

Por Zguillez

BOFH

10744 de clabLevel

85 tutoriales
17 articulos
3 ejemplos

Genero:Masculino   Bastard Operators From Hell Héroes Team Cristalab Editores

BCN

firefox
Citar            
MensajeEscrito el 17 Jul 2006 12:06 pm
Muchas gracias Zguillez me da mucho gusto recibir tu respuesta habia seguido buscando y aun asi no encontre nada que me precisara esto, voy a hacerlo asi; y confirmo.

Gracias señor Zguillez =)

Por Nathali

10 de clabLevel



Genero:Femenino  

msie
Citar            
MensajeEscrito el 21 Jul 2006 09:48 am
Gracias por tu ayuda, lo he estado trabajando al pie de la letra ajustandolo a mi pelicula pero automaticamente el boton queda inhabilitado desde el principio de modo que desde el primer click ya no vincula.

Ya que trabajo con movie clip externo y con preloader estoy escribiendo en el mismo frame donde esta el script que llama los botones a cargar la pelicula externa justo bajo el codigo del boton:

Código :

//codigo boton
miboton_btn.onRelease = function() {
      nocache = "?nocaching="+random(65000);
      precargador_mcl.loadClip("Pelicula.swf"+nocache, caja_mc);
};
//Boolean
var clipCargado:Boolean = false;
      miboton_btn.onRelease = function() {
      if (clipCargado == false) {
      loadMovie(Peliculaexterna.swf, cajacontenedora_mc);
      clipCargado = false;
      }
};


Que error tengo? he leido mucho pero no acierto a descubrir mi error. Agradezco cualquier respuesta. :crap: :ownz:

Por Nathali

10 de clabLevel



Genero:Femenino  

msie
Citar            
MensajeEscrito el 21 Jul 2006 10:05 am
¿para que colocas dos funciones onRelease para el mismo boton?
Prueba asi:

Código :

//Boolean
var clipCargado:Boolean = false;
//codigo boton
miboton_btn.onRelease = function() {
   if (clipCargado == false) {
      nocache = "?nocaching="+random(65000);
      precargador_mcl.loadClip("Pelicula.swf"+nocache, caja_mc);
      clipCargado = true;
   }
};

Por Zguillez

BOFH

10744 de clabLevel

85 tutoriales
17 articulos
3 ejemplos

Genero:Masculino   Bastard Operators From Hell Héroes Team Cristalab Editores

BCN

firefox
Citar            
MensajeEscrito el 21 Jul 2006 10:59 am
Zguillez, mil y mil gracias, perdona el error tan tonto que tuve, hace muy poco empece espero lograr ser muy lista en as pronto.

Ya me funciono perfecto :D ^^

Por Nathali

10 de clabLevel



Genero:Femenino  

msie
Citar            
MensajeEscrito el 21 Jul 2006 04:26 pm
Yo suelo inhabilitarlo de esta forma:

aqui el código

Código :

Código :

nombreBoton.onRelease= function(){
this.enabled=false
otroBoton.enabled=true
}


Por supuesto tienes que rehabilitarlo al clikar en otro botón, por eso lo de ""otroton.enabled=true""

Por antonio_L

161 de clabLevel



Genero:Masculino  

de Linares

msie
Citar            
MensajeEscrito el 22 Jul 2006 06:18 pm
Hola, mira este codigo no es dizq "eficiente" pero creo que puede ayudarte en lo que deseas hacer, eh visto que tienes 5 botones. lo que tienes que hacer es que cada vez que as click en un boton, lo deshabilitas, pero te aseguras de habilitar todos los demás

aqui dejo un ejemplo:

//este codigo seri apara el primero boton

Código :

miboton_btn1.onRelease = function() {
      nocache = "?nocaching="+random(65000);
      precargador_mcl.loadClip("Pelicula.swf"+nocache, caja_mc);
      this.enabled = false; //aqui deshabilitas el boton que estas clickeando
       // seguido de esto te aseguras de activar los botones restantes
       miboton_btn2.enabled = true;
       miboton_btn3.enabled = true;
       miboton_btn4.enabled = true;
       miboton_btn5.enabled = true;
};


//ahora conel boton 2 hacemos lo mismo

Código :

miboton_btn2.onRelease = function() {
      nocache = "?nocaching="+random(65000);
      precargador_mcl.loadClip("Pelicula.swf"+nocache, caja_mc);
      this.enabled = false;
       miboton_btn1.enabled = true; //aqui cambias el boton2 por el 1 para activarlo.
       miboton_btn3.enabled = true;
       miboton_btn4.enabled = true;
       miboton_btn5.enabled = true;
};


y asi lo haces para los 5 botones y te debe funcionar
conste que no es eficiente, pero funciona.

usa las etiquetas code para postear tu codigo

Por shufuklo

11 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 23 Jul 2006 01:36 pm
como tu dices quizas no sea eficiente por la cantidad de lineas de codigo pero me funciono perfecto que era lo importante ya no deshabilita los demas botones, asi que PORFIN lo tengo hecho Mil gracias. :D

Por Nathali

10 de clabLevel



Genero:Femenino  

msie
Citar            
MensajeEscrito el 24 Jul 2006 11:06 am
Bueno, yo pensaba que con el esbozo de solución que te hacía en mi respuesta sería suficiente para que captaras la idea, lo siento, quizá debí ser mas explicito.
Pero si tienes muchos botones seguramente será tedioso repetirlos todos en cada "onRelease", para paliar esto en buena medida, guarda el nombre de cada botón en una variable e rehabilita con respecto a esa variable, procuraré explicarme mejor en esta ocasión:

Código :

btn1.onRelease = function () {
   a.enabled = true;
   a = this;
   this.enabled = false;
};
btn2.onRelease = function () {
   a.enabled = true;
   a = this;
   this.enabled = false;
};
btn3.onRelease = function () {
   a.enabled = true;
   a = this;
   this.enabled = false;
};
btn4.onRelease = function () {
   a.enabled = true;
   a = this;
   this.enabled = false;
};


Procuraré explicar el código:
En cada botón, la primera linea de código dentro del "onRelease" lo que hace es rehabilitar el botón que le precede, (la primera vez que se reproduce la película tiene valor "indefinido") de manera que es ignorado, pero cuando hacemos uso del primer botón, adquiere el valor de este botón, (a = this), por ultimo en la tercera linea (this.enabled = false) es inhabilitado.

Consecuencia:
Cuando clickamos en cualquier otro botón, rehabilitamos el botón del cual venimos, cuyo valor está recogido en a, a adquiere nuevo valor e inhabilitamos este botón.

Espero que te ayude esta nueva forma.

Saludos.

Por antonio_L

161 de clabLevel



Genero:Masculino  



Ultima edición por antonio_L el 10 Sep 2006 04:59 pm, editado 1 vez

de Linares

firefox
Citar            
MensajeEscrito el 24 Jul 2006 02:01 pm
Antonio claro que me ayudo mucho tu colaboración; aun cuando no obtengo la accion que quiera exacta, en ese camino aprendo lo cual es mi mayor objetivo, lo que pasa es que apenas he empezado a manejar action script y aunque lea mucho la practica es todo, por tanto no reconozco aun el lenguaje bien, y muchas veces no identifico que puedo eliminar y que puedo agregar sin que interfiera. El codigo que tu me diste lo maneje tal cual, pero no sabia que surpimiendo las dos lineas de:

Código :

if (clipCargado == false) {
 clipCargado = true;


me iba cuadrar lo que queria, muchas gracias por volver a darme tu mano y tambien por aclararme explicandome mas, ya que me enseñas mucho. Llego recien a casa pero enseguida adapto mi trabajo de nuevo, porque no solo es hacerlo, sino hacerlo mejor y por supuesto aprender mas.

Muy agradecida :D

Por Nathali

10 de clabLevel



Genero:Femenino  

msie

 

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