Foros del Web » Creando para Internet » Flash y Actionscript »

problema cargando botones

Estas en el tema de problema cargando botones en el foro de Flash y Actionscript en Foros del Web. hola, me gustaria que alguien me dijese pq no funciona el boton. btn_txt1.onPress = function() { this.attachMovie("imgBtn", "imgBtn", this.getNextHighestDepth()); this["imgBtn"]._x = 20; this["imgBtn"]._y = 20; ...
  #1 (permalink)  
Antiguo 27/05/2006, 13:50
 
Fecha de Ingreso: mayo-2006
Mensajes: 5
Antigüedad: 17 años, 10 meses
Puntos: 0
problema cargando botones

hola, me gustaria que alguien me dijese pq no funciona el boton.

btn_txt1.onPress = function() {
this.attachMovie("imgBtn", "imgBtn", this.getNextHighestDepth());
this["imgBtn"]._x = 20;
this["imgBtn"]._y = 20;
}
;
imgBtn.onPress= function () {
gotoAndStop("mapa")
}
;
carga el boton en la pantalla pero no hace nada.
en realidad el codigo tiene una variable, es asi:


btn_txt1.onPress = function() {
this.attachMovie("imgBtn", "imgBtn"+i, this.getNextHighestDepth());
this["imgBtn"+i]._x = 20;
this["imgBtn"+i]._y = 20;
}
;
lo que pasa esque no se como es el formato correcto para sumarle i a imgBtn en lo siguiente, por eso primero estoy intentandolo sin la variable.
imgBtn.onPress= function () {
gotoAndStop("mapa")
}
;

saludos
  #2 (permalink)  
Antiguo 28/05/2006, 19:03
Avatar de Prince  
Fecha de Ingreso: mayo-2003
Ubicación: DF
Mensajes: 574
Antigüedad: 20 años, 11 meses
Puntos: 1
Lo que pasa es que el "this" que tienes dentro de la función onPress de btn_txt1 hace referencia a ese mismo botón "btn_txt1" y como sabrás no se pueden cargar movieClips dentro de botones. por lo tanto no va a funcionar.
Código:
_global.nivel = this;
btn_txt1.onPress = function(){
  var clip = nivel.attachMovie("imgBtn", "imgBtn", nivel.getNextHighestDepth());
  clip._x = 20;
  clip._y = 20;
}
;
imgBtn.onPress= function () {
  gotoAndStop("mapa")
}
__________________
- P R I N C E -
  #3 (permalink)  
Antiguo 30/05/2006, 08:47
 
Fecha de Ingreso: mayo-2006
Mensajes: 5
Antigüedad: 17 años, 10 meses
Puntos: 0
gracias por responder.
poniendo eso hace que las cordenadas x,y las tome en relacion a la pantalla no tomando como punto de partida el boton como hacia antes, y tb me he dado cuenta de que no lo renombra con el nombre del boton que lo ejecuta pq ya no hace lo mismo que el, pero sigue sin funcionar, ahora simplemente se carga pero no hace nada.
es un paso adelante pero algo falla.
  #4 (permalink)  
Antiguo 30/05/2006, 14:33
Avatar de Prince  
Fecha de Ingreso: mayo-2003
Ubicación: DF
Mensajes: 574
Antigüedad: 20 años, 11 meses
Puntos: 1
Creo que entonces no te había entendido.
Qué es exactamente lo que quieres???
Al parecer entiendo que quieres que cuando le des click a un boton se creen dentro del botón unos movieClip tomados de la biblioteca. si eso es lo que quieres eso no se puede hacer porque dentro de los botones no puedes referenciar nada.
__________________
- P R I N C E -
  #5 (permalink)  
Antiguo 30/05/2006, 16:44
 
Fecha de Ingreso: mayo-2006
Mensajes: 5
Antigüedad: 17 años, 10 meses
Puntos: 0
este es todo el codigo que tenia antes:

stop();
ruta1 = "\\galeria1\\imagen";
ext = ".jpg";
a = 1;
b = 2;
//imagen a cargar
t = 1;

this.attachMovie("imgBtn", "imgBtn"+a, this.getNextHighestDepth());
this["imgBtn"+a]._x = 0;
this["imgBtn"+a]._y = 650;
loadMovie(ruta1+t+ext, "contenedor");



imgBtn1.onPress = function() {
t=4;
loadMovie(ruta1+t+ext, "contenedor");
this.attachMovie("imgBtn", "imgBtn"+b, this.getNextHighestDepth());
this["imgBtn"+b]._x = 0;
this["imgBtn"+b]._y = 30;

};
imgBtn2.onPress = function() {
t=2
loadMovie(ruta1+t+ext, "contenedor");
}


el primer parrafo funciona, renombra "imgBtn" a "imgBtn"+a asique crea "imgBtn1" y este al ejecutarse crea otro boton pero no "imgBtn"+b sino otro que hace exactamente lo mismo que el boton que lo ha creado, asique supongo que lo llamara igual y lo crea tomando el boton como el punto 0x,0y.
con tu codigo esto cambia y lo crea tomando la esquina superior izquierda como punto de partida ademas de que no hace una copia del boton que lo llama ya que no hace lo mismo que el, simplemente no hace nada, supongo que sera pq no lo llama imgBtn+b.
no se que quieres decir con cargar moviclips dentro de un boton, no es lo que quiero, quiero que se carguen al mismo nivel que el primero.
  #6 (permalink)  
Antiguo 30/05/2006, 21:31
Avatar de Prince  
Fecha de Ingreso: mayo-2003
Ubicación: DF
Mensajes: 574
Antigüedad: 20 años, 11 meses
Puntos: 1
si puedes agrégame al MSN messenger.
[email protected]

para que te explique mejor
__________________
- P R I N C E -
  #7 (permalink)  
Antiguo 05/06/2006, 06:24
 
Fecha de Ingreso: mayo-2006
Mensajes: 5
Antigüedad: 17 años, 10 meses
Puntos: 0
bueno, voy a poner la solucion que me dio prince por si a alguien le interesa saber que pasaba, el problema era simplemente, el programa leia lo que hacia el boton2 antes de que este fuese creado, la solucion, meter el codigo del boton2 dentro de la funcion del boton que lo creaba, otra forma, que se adapta mucho mas a lo que queria hacer, es hacer una funcion con lo que hace cada boton y llamarla cada vez que se pulse uno. algo asi.

codigoBotones= function () {

imgBtn1.onPress = function() {
unloadMovie("imgBtn1")
t=13;
i=13;
carga.load(archivo);
loadMovie(ruta+i+ext, "contenedor");
var clip = nivel.attachMovie("imgBtn", "imgBtn2", nivel.getNextHighestDepth());
clip._x = 0;
clip._y = 652;
var clip = nivel.attachMovie("imgBtn", "imgBtn3", nivel.getNextHighestDepth());
clip._x = 0;
clip._y = 680;
codigoBotones();
};

imgBtn2.onPress = function() {
unloadMovie("imgBtn2");
unloadMovie("imgBtn3");
i=16;
t=1;
carga.load(archivo);
loadMovie(ruta+i+ext, "contenedor");
var clip = nivel.attachMovie("imgBtn", "imgBtn1", nivel.getNextHighestDepth());
clip._x = 0;
clip._y = 652;
codigoBotones();
};
};

y ahora he de confesar :P, la aclaracion tb es una pregunta, pq este codigo tiene un problema. el comando unloadMovie solo descarga realmente los clips cargados con loadMovie, y aunque el boton desaparece de la pantalla no es descargado totalmente y si lo vulves a llamar como en el script que he puesto no funcionara. asique necesito una forma de borrar el clip creado totalmente para poder cargarlo las veces que quiera sin problemas. o bien la forma correcta de cargar los clips en "contenedores", de esta manera, creo, no habria problema para cargarlos las veces que quisiera. he probado esto, el boton aparece pero no hace nada.

var clip = botonA.attachMovie("imgBtn", "imgBtn1", nivel.getNextHighestDepth());

botonA es el contenedor.
he hecho otras muchas combinaciones pero nada.
no se quizas deberia haber creado otro hilo pero bueno espero que alguien lo lea.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:42.