Comunidad de diseño web y desarrollo en internet online

problema con un boton

Citar            
MensajeEscrito el 27 Ago 2008 07:13 pm
Hola gente!
tengo una boton que al darle abre una sección mediante un tween

//pestaña video

//abrir al hacer clic en la pestaña y reproducir video
_root.video.pestana.onRelease = function() {
flv = "activado";
var tween:Tween = new Tween(video, "_x", Strong.easeOut, -443.5, 250, 1, true);
tween.onMotionFinished = function() {
_root.video.cerrar.enabled = true;
_root.video.flv.play();
};
};
//cerrar al hacer clic en la pestaña y parar video
_root.video.cerrar.onRelease = function() {
flv = "desactivado";
_root.video.flv.stop();
var tween:Tween = new Tween(video, "_x", Strong.easeOut, 250, -443.5, 1, true);
_root.video.cerrar.enabled = false;
};

si os fijais, al abrir establecí el valor de la variable flv = "activado", para posteriormente utilizarlo de esta forma:

//cerrar video al cargar foto

_root.scrollfotos.doblestripe.stripe.foto1.onRelease = function(){
if (flv == "activado"){
_root.video.flv.stop();
_root.video.cerrar.enabled = false;
var tween:Tween = new Tween(video, "_x", Strong.easeOut, 250, -443.5, 1, true);
tween.onMotionFinished = function(){
_root.mcl.loadClip("fotos/foto1.jpg", _root.contenedor);
}
}else{
_root.mcl.loadClip("fotos/foto1.jpg", _root.contenedor)
}
}

con esto pretendo que cuando haga clic en el boton foto1, que compruebe si la variable flv es igual a "activado" y si es asi que cierre el video y cargue la foto, y de lo contrario (else) que solamente cargue la foto.

El problema es que algo estoy haciendo mal porque no me funciona correctamente y no se por qué.

A ver si me podeis hechar un cable

un saludo!

Por euflipo

33 de clabLevel



 

msie7
Citar            
MensajeEscrito el 27 Ago 2008 10:31 pm
Tienes que ver donde tienes la variable flv = "activado" xq veo que tienes _root.video.pestana

por ejemplo si tu variable se encuntre en _root pss siempre que la mandes a llamar de un boton interno pss tenes que ponerle
if (_root.flv == "activado") ..... si tu variable flv esta dentro del simbolo video pss entonces tenes que especificarlo
if (_root.video.flv == "activado") .....

checa donde tienes la variable guardada y de donde la estas mandando a llamar :)

Por moralitos

4 de clabLevel



Genero:Masculino  

Coatzacoalcos, Veracruz

firefox
Citar            
MensajeEscrito el 28 Ago 2008 12:30 am
Hola moralitos! muchas gracias por tu respuesta.
He estado probando lo que me dices y no.... de hecho el AS ese está en el primer fotograma del swf.
Hice lo de la variable flv porque no se otra forma (ni si quiera se si esta forma es correcta) para que al presionar el boton se detecte si el video está funcionando o no, y que dependiendo de esto, el boton de cargar la foto, la cargue directamente o cierre primero el video.

Menudo lio! :(

Por euflipo

33 de clabLevel



 

msie7
Citar            
MensajeEscrito el 28 Ago 2008 10:01 am
Puedes chequear si el video se está reproduciendo con la propiedad "playing":

Código ActionScript :

if(my_video.playing){
   
   trace("el video se esta reproduciendo");
   
}else{
   
   trace("el video esta detenido o en pausa");
   
}

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 28 Ago 2008 03:54 pm
entonces si lo pongo asi...
//pestaña video
_root.video.pestana.onRelease = function() {
var tween:Tween = new Tween(video, "_x", Strong.easeOut, -443.5, 250, 1, true);
tween.onMotionFinished = function() {
_root.video.cerrar.enabled = true;
_root.video.flv.play();
};
};
_root.video.cerrar.onRelease = function() {
_root.video.flv.stop();
var tween:Tween = new Tween(video, "_x", Strong.easeOut, 250, -443.5, 1, true);
_root.video.cerrar.enabled = false;
};

//cerrar video al cargar foto

_root.scrollfotos.doblestripe.stripe.foto1.onRelease = function(){
[color=]if (_root.video.flv.playing){[/color]
_root.video.flv.stop();
_root.video.cerrar.enabled = false;
var tween:Tween = new Tween(_root.video, "_x", Strong.easeOut, 250, -443.5, 1, true);
tween.onMotionFinished = function(){
_root.mcl.loadClip("fotos/foto1.jpg", _root.contenedor);
}

debería d ir no?
(eso todo en el keyframe)
El problema es que sigue sin funcionar 0.o

graciass a todos los que me estais ayudando ;)

Por euflipo

33 de clabLevel



 

msie7
Citar            
MensajeEscrito el 28 Ago 2008 05:51 pm
Que es lo que realmente pasa cuando haces la acción de presionar el botón, dices que no funciona correctamente, pero en que falla realmente?

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 28 Ago 2008 06:04 pm
hola el chininet! gracias por tu ayuda ;)

No ocurre absolutamente nada. y mensaje de error tampoco aparece.
Me estuve fijando bien que no estuvieran mal escritos los nombres de instancias pero creo que no.
El AS lo puse en el keyframe.
El video tiene de nombre de instancia "flv" y está dentro de un movieclip que se llama video y "video" tb su nombre de instancia.
El boton se llama boton1 y está dentro de 3 movieclips que se llaman y tienen de nombre de instancia los siguientes nombres: el que engloba todo: scrollfotos, el que está dentro de ese: doblestripe, dentro de ese stripe y ahi están todos los botones... en este caso boton1.


Un saludo! ;)

Por euflipo

33 de clabLevel



 

msie7
Citar            
MensajeEscrito el 28 Ago 2008 06:16 pm
Haz una prueba, postea todos los traces que te salen con el siguiente código:

Código ActionScript :

trace(_root.scrollfotos.doblestripe.stripe.foto1);

_root.scrollfotos.doblestripe.stripe.foto1.onRelease = function(){

   trace(_root.video.flv);

   if (_root.video.flv.playing){

      trace("se está reproduciendo");

      _root.video.flv.stop();

      _root.video.cerrar.enabled = false;

      var tween:Tween = new Tween(_root.video, "_x", Strong.easeOut, 250, -443.5, 1, true);

      tween.onMotionFinished = function(){

         _root.mcl.loadClip("fotos/foto1.jpg", _root.contenedor);

      }

   }

}


Y dale formato a los códigos para poderlos leer correctamente:

Código :

[as]
//Pon tus códigos entre tags de as
[/as]

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 28 Ago 2008 06:20 pm
_level0.scrollfotos.doblestripe.stripe.foto1

eso es lo que me pone en "salida" al ejecutar la movie con ese actionscript.
Lo de

Código ActionScript :

 y 
donde lo pongo? porque si lo pongo en la ventana acciones me salen errores :S

muchas gracias :)

Por euflipo

33 de clabLevel



 

msie7
Citar            
MensajeEscrito el 28 Ago 2008 06:23 pm
vale.... acabo de probar lo de

Código ActionScript :

 [as] y [/as] 
pensé que me decías que lo pusiera en el flash! pero ya m acabo de dar cuenta! jajaja

Por euflipo

33 de clabLevel



 

msie7
Citar            
MensajeEscrito el 28 Ago 2008 06:33 pm
Si nada más te sale esto:

Código ActionScript :

_level0.scrollfotos.doblestripe.stripe.foto1


Eso quiere decir que no está aceptando la acción de onRelease que le has puesto.
Por los nombres de los clips me da a entender que hay una imagen dentro de "foto1", bueno la acción de onRlease se la debes dar cuando esta imagen esté totalmente cargada, si no tiene nada dentro cuando le asignes la función de onPress esta no te funcionará.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 28 Ago 2008 07:32 pm
elchininet muchisimas gracias por tu ayuda! ;) Al final di con el problema!
resulta que dentro de doblestripe el clip stripe estaba duplicado y solo en uno tenia nombre de instancia, quizás era eso lo que fallaba. Para evitar problemas de errores también cambié los nombres por s1.s2.s3 y ahora ya funciona! ;)

ya te comenté en otro post si te interesaria compartir algun proyecto que pueda ir consiguiendo ([email protected]) agregame al messenger si tal)

saludos!!

Por euflipo

33 de clabLevel



 

msie7
Citar            
MensajeEscrito el 29 Ago 2008 11:49 am
joer... cuanta lata está dando esto!!! xD
Resulta que ahora me funciona, pero solo cuando quiere, los botones no funcionan siempre a la primera y no se por qué es. Supongo que será falta algo... como si necesitara tener una variable declarada de antemano o no se... :S

ayuda pliZ!

Por euflipo

33 de clabLevel



 

msie7
Citar            
MensajeEscrito el 29 Ago 2008 01:24 pm
en la condición tienes puesto:

Código ActionScript :

if (_root.video.flv.playing){ 


Que sucede cuando no se está reproduciendo el video?
Por lo tanto el botón funcionaría solo cuando el video se esté reproduciendo. En el primer código tenías un else, pero en el que posteaste más tarde lo eliminaste, vuélvelo a incluir.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 03 Sep 2008 03:01 pm
Hola elchininet,

tengo puesto el siguiente AS en un keyframe para los botones:

Código ActionScript :


_root.scrollfotos.doblestripe.stripe.foto1.onRelease = function(){
   if (_root.video.flv.playing){
   _root.video.flv.stop();
   _root.video.cerrar.enabled = false;
   var tween:Tween = new Tween(_root.video, "_x", Strong.easeOut, 250, -443.5, 1, true);
   tween.onMotionFinished = function(){
   _root.mcl.loadClip("fotos/foto1.jpg", _root.contenedor);
   }
   }else{
      _root.mcl.loadClip("fotos/foto1.jpg", _root.contenedor)
   }
}

_root.scrollfotos.doblestripe.stripe.foto2.onRelease = function(){
   if (_root.video.flv.playing){
   _root.video.flv.stop();
   _root.video.cerrar.enabled = false;
   var tween:Tween = new Tween(_root.video, "_x", Strong.easeOut, 250, -443.5, 1, true);
   tween.onMotionFinished = function(){
   _root.mcl.loadClip("fotos/foto2.jpg", _root.contenedor);
   }
   }else{
      _root.mcl.loadClip("fotos/foto2.jpg", _root.contenedor)
   }
}

... foto3, foto4, foto5, foto6, foto7...



el problema es lo que te comentaba, que tras probarlo varias veces, funciona solo cuando le apetece :S



muchas gracias por tu ayuda ;)

Por euflipo

33 de clabLevel



 

msie7
Citar            
MensajeEscrito el 03 Sep 2008 03:34 pm
acabo de colgar el swf por si sirve de ayuda:

http://comestilo.iespana.es/prueba/entorno.swf

pretendo que cuando está el video funcionando y se pulse una d las fotos, que se cierre el video y cargue las fotos. Al principio no funciona, pero después de darle varias veces a los botones funciona a ratos xD

También me gustaría que el stripe menu (los thumbnails que se mueven en función del ratón) solo funcionen cuando: _root.scrollfotos.onRollOver , pero no lo he conseguido. Lo intenté mediante este AS:

Código ActionScript :

onClipEvent (load) { 
      //cuanto mide un stripe+7 
   stripe_h=826; 
      //la máscara? 
   mask_h=347 
      //velocidad (menos es más). 
   speed=45; 
       
      //bordes 
   up=-mask_h/2; 
   down=mask_h/2;e 
} 

onClipEvent (enterFrame) { 
   [b]_root.scrollfotos.onRollOver = function(){[/b] 
   mouse=_parent._ymouse; 

      //vemos al posición a la que queremos llegar(target x) 
   ty=_y-(_parent._ymouse/speed); 
      //revisamos si se pasa, si es así lo corremos. 
   if(ty <up> down){ty-=stripe_h;} 
    
      //finalmente lo movemos. 
   _y=ty; 
}} 



Lo que está en negrita es lo que añadí para que solo funcionase cuando tenga el ratón encima. Pero asi parece que no va bien ya que al poner el ratón encima, funciona una vez detectando la posición del mouse, pero no se vuelve a refrescar y se queda quieto.
De que otra forma puedo hacerlo? o que tengo que añadir para que no se quede pillao?


un saludo!

Por euflipo

33 de clabLevel



 

msie7
Citar            
MensajeEscrito el 03 Sep 2008 08:39 pm
Mira primero un problema y después el otro, todos a la vez no podrás solucionarlos.

Lo primero que debo decirte a mi me funciona bien en todos los navegadores tu SWF, lo que solo funcionan dos botones, los demás no, no es que funcione unas veces si y otras no, sino que funcionan solo dos botones siempre y los demás nunca, debes revisar eso.

Tienes también un problema en el else, tienes dos llaves cuando debe ser una sola:

En vez de:

Código ActionScript :

   _root.mcl.loadClip("fotos/foto1.jpg", _root.contenedor); 
} 
}else{ 
   _root.mcl.loadClip("fotos/foto1.jpg", _root.contenedor);
}


Debe ser:

Código ActionScript :

   _root.mcl.loadClip("fotos/foto1.jpg", _root.contenedor);

}else{ 
   _root.mcl.loadClip("fotos/foto1.jpg", _root.contenedor);
}


Por otra parte si todos los botones hacen lo mismo, no debes hacer una acción para cada uno sino una sola acción dentro de un ciclo:

Código ActionScript :

for (var i:Number = 1; i<=cantidad; i++) {
   
   _root.scrollfotos.doblestripe.stripe["foto" + i].numero = i;

   _root.scrollfotos.doblestripe.stripe["foto" + i].onRelease = function():Void{
      
      if (_root.video.flv.playing) {
         _root.video.flv.stop();
         _root.video.cerrar.enabled = false;
         var tween:Tween = new Tween(_root.video, "_x", Strong.easeOut, 250, -443.5, 1, true); 
         tween.onMotionFinished = function(){ 
         _root.mcl.loadClip("fotos/foto" + this.numero + ".jpg",_root.contenedor);
      } else {
         _root.mcl.loadClip("fotos/foto" + this.numero + ".jpg",_root.contenedor);
      }
   };
}

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 03 Sep 2008 08:58 pm
hola elchininet,
he probado a poner el AS que me dijiste y para que funcione le tuve que añadir un } antes del else, sino me daba error.

[AS]
for (var i:Number = 1; i<=cantidad; i++) {
_root.scrollfotos.doblestripe.stripe["foto"+i].numero = i;
_root.scrollfotos.doblestripe.stripe["foto"+i].onRelease = function():Void {
if (_root.video.flv.playing) {
_root.video.flv.stop();
_root.video.cerrar.enabled = false;
var tween:Tween = new Tween(_root.video, "_x", Strong.easeOut, 250, -443.5, 1, true);
tween.onMotionFinished = function() {
_root.mcl.loadClip("fotos/foto"+this.numero+".jpg",_root.contenedor);
}; //este es el que añadí para que funcionara
} else {
_root.mcl.loadClip("fotos/foto"+this.numero+".jpg",_root.contenedor);
}
};

El problema está cuando ejecuto la movie que se me bloquea el ordenador.... y después me sale el aviso este de que algo está funcionando mal que si deseo anular el script para que no se me bloqueé el ordenador :(
}

Por euflipo

33 de clabLevel



 

msie7
Citar            
MensajeEscrito el 03 Sep 2008 09:07 pm
acabo de probar lo de las llaves antes del else y si la quito me da error ya que:

...tween.onMotionFinished = function(){
_root.mcl.loadClip("fotos/foto7.jpg", _root.contenedor);
}
}else{...

corresponde a la llave de function.

Por euflipo

33 de clabLevel



 

msie7
Citar            
MensajeEscrito el 03 Sep 2008 09:47 pm
Si la llave la lleva, lo que pasa es que le puse comentario a los tween y al cometariar el onMotionFinished, entonces sobraba una llave.

Pero en cuanto a lo que te cometé en el primer párrafo, de que los botones si funcionan, diste ya con el problema?

Y por otro lado me imagino que le estés dando valor a la variable "cantidad" con la cantidad de tus botones no?

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 03 Sep 2008 10:07 pm
si.. ya dí con el problema. estaba en la ruta de los botones. Solo estaba bien puesta hasta el botón num2, el resto estaban mal. De todos modos lo corregí y seguía funcionando cuando le apetecía.

Ahora he vuelto a subir el archivo a http://comestilo.iespana.es/prueba/entorno.swf con el AS que me dijiste tu, que por cierto, me fallaba xq no había puesto el valor de "cantidad" jajaja q melón soy! xD

Pero lo que te decía, que sigue funcionando cuando le apetece :S

Por euflipo

33 de clabLevel



 

msie7
Citar            
MensajeEscrito el 03 Sep 2008 10:32 pm
Cuando puedas postea el código respectivo al movieClipLoader "mcl".

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 03 Sep 2008 10:36 pm
ahi va:

Código ActionScript :

//precarga
var mcl:MovieClipLoader = new MovieClipLoader();

var mclL:Object = new Object();

mclL.onLoadStart = function() {
   _root.contenedor._alpha = 0;
   var tween:Tween = new Tween(logo, "_alpha", Strong.easeOut, 0, 100, 1, true);
   var tween2:Tween = new Tween(logo, "_y", Strong.easeOut, 305.8, 244, 1, true);
   var tween3:Tween = new Tween(loader, "_alpha", Strong.easeOut, 0, 100, 1, true);
   var tween4:Tween = new Tween(loader, "_y", Strong.easeOut, 398.8, 337, 1, true);
};

mclL.onLoadProgress = function(target, loaded, total) {
   _root.contenedor._alpha = 0;
   loader.barra._xscale = Math.round((loaded/total)*100);
};


mcl.addListener(mclL);

mcl.loadClip("fotos/foto1.jpg",contenedor);




mclL.onLoadInit = function() {
   var tween:Tween = new Tween(logo, "_alpha", Strong.easeOut, 100, 0, 1, true);
   var tween2:Tween = new Tween(logo, "_y", Strong.easeOut, 244, 305.8, 1, true);
   var tween3:Tween = new Tween(loader, "_alpha", Strong.easeOut, 100, 0, 1, true);
   var tween4:Tween = new Tween(loader, "_y", Strong.easeOut, 337, 398.8, 1, true);
   tween.onMotionFinished = function() {
      var contenedortween:Tween = new Tween(contenedor, "_alpha", Strong.easeOut, 0, 100, 1, true);
   };
};


muchas gracias por tu ayuda :)

Por euflipo

33 de clabLevel



 

msie7

 

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