Comunidad de diseño web y desarrollo en internet online

botonera que deberia controlar clips

Citar            
MensajeEscrito el 16 Mar 2009 02:45 pm
Hola!!!!
tengo una botonera cuyos nombres de instancias son (btn1, btn2,btn3,btn4,btm5,btn6) para que funciones on rollover on rollout y on press contrui un acion que anda perfecto, pero... estos botones quiero que "onPress" hagan andar su respectivo clip cuyo nombre de instancia son (clip_1,clip_2,clip_3,clip_4,clip_5,clip_6)... pero los clips no funciona. No se porqueeeeee!!!!! :shock:

Ayudaa!!!!
aca esta elcodigo:

Código :

stop();
construir_botonera();
function construir_botonera() {
   for (var i = 1; i<7; i++) {
      eval ("btn"+i).onRollOver = function(){
         if (activo != this) {
            this.gotoAndPlay("rollover");
            
         }
      }
      eval ("btn"+i).onRollOut = function(){
         if (activo != this){
            this.gotoAndPlay("rollout")
         }
      }
      eval("btn"+i).onPress = function(){
         activo.gotoAndPlay("releaseout")
         activo = this
         this.gotoAndPlay("press");
      }
////HASTA ACA TODO DE LUJO. Pero DE ACA EN MAS NO SE DOndE ESTA EL ERROR/////
      eval("btn"+i).onRelease = function(){
         if (activo != this) {
            _root.eval("clip_"+i).gotoAndStop(1);
         }
         else{
            _root.eval("clip_"+i).gotoAndPlay("ini");
////////Este TRACE me devuelve bien el valor de los botones (btn1, btn2,...etc)
            trace(this)
         }
      }
         
   }
}

Por GA

26 de clabLevel



Genero:Femenino  

msie7
Citar            
MensajeEscrito el 16 Mar 2009 03:03 pm
Intenta con:

Código ActionScript :

eval("btn"+i).onRelease = function(){
         if (activo != this) {
            eval("_root.clip_"+i).gotoAndStop(1);
         }
         else{
            eval("_root.clip_"+i).gotoAndPlay("ini");
         }
      }

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 16 Mar 2009 03:12 pm
La verdad es que te recomiendo mas que uses este codigo:

Código ActionScript :

stop();
var botones_arr:Array = [btn1, btn2, btn3, btn4, btn5, btn6];

function desactivar( aux:MovieClip ):Void
{
   for( var i in botones_arr ) if( botones_arr[i] != aux ) botones_arr[i].unpress();
}

for( var i in botones_arr )
{
   var aux:MovieClip = botones_arr[i];
   aux.index = i;
   aux.selected = false;
   aux.over = function( Void ):Void
   {
      if( !this.selected )
      {
         this.gotoAndPlay("rollover");
      }      
   };
   aux.out = function( Void ):Void
   {
      if( !this.selected )
      {
         this.gotoAndPlay("rollout"); 
      }      
   };
   aux.press = function( Void ):Void
   {
      this.selected = true;
      this.gotoAndPlay("press");
   };
   aux.unpress = function( Void ):Void
   {
      this.selected = false;
      this.gotoAndPlay("releaseout");      
   };
   aux.onDragOver = aux.onRollOver = aux.over;
   aux.onDragOut = aux.onRollOut = aux.onReleaseOutside = aux.out;
   aux.onRelease = function( Void ):Void
   {
      //Si estoy presionado
      if( this.selected )
      {
         _root["clip_"+this.index].gotoAndPlay("ini");
      }
      else// si no estoy presionado
      {
         //desactivo a mis compadres
         this._parent.desactivar( this );
         //me activo
         this.press();
         _root["clip_"+this.index].gotoAndStop(1);     
      }
   };   
}

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 16 Mar 2009 04:11 pm
Gracias!!! perooo
No me funciona ninguno!!!
que hay de malo en mi action??? quiero hacerlo funcionar para sentirme realizada!!!! me pregunto porque no tomara los clips???

Por GA

26 de clabLevel



Genero:Femenino  

msie7
Citar            
MensajeEscrito el 16 Mar 2009 05:42 pm
Tengo que entregar esto hoy!!!! necesito aiuditas!!!!

Por GA

26 de clabLevel



Genero:Femenino  

msie7
Citar            
MensajeEscrito el 16 Mar 2009 07:09 pm

GA escribió:

Gracias!!! perooo
No me funciona ninguno!!!
que hay de malo en mi action??? quiero hacerlo funcionar para sentirme realizada!!!! me pregunto porque no tomara los clips???


:P

Bueno, lo que le veo malo a tuscript es el uso de eval, tienes mas control cuando usas corchetes [ ]

Igual podria funcionar el codigo que cole. pero bueno, dime en que parte no funciona tu codigo? que pasa o que no hace?

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 16 Mar 2009 07:23 pm
Intenta con esto:

Código ActionScript :

stop();
construir_botonera();
function construir_botonera() {
   for (var i = 1; i<7; i++) {
      this["btn" + i].clip = _root["clip_" + i];
      this["btn"+i].onRollOver = function( Void ){
         if (activo != this) {
            this.gotoAndPlay("rollover");            
         }
      };
      this["btn" + i].onRollOut = function( Void ){
         if (activo != this){
            this.gotoAndPlay("rollout");
         }
      };
      this["btn" + i].onPress = function( Void ){
         activo.gotoAndPlay("releaseout")
         activo = this
         this.gotoAndPlay("press");
      }
      this["btn" + i].onRelease = function( Void ){
         if (activo != this) {
            this.clip.gotoAndStop(1);
         }
         else{
            this.clip.gotoAndPlay("ini");
         }
      };         
   }
}

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 16 Mar 2009 09:58 pm
Hola!!
Mira te cuento de mi action que esta arriba de todo, no me detecta los clips (clip_1,clip_2,etc.) no hace nada.. los botones funcionan bien pero no funciona lo que le puse que haga "onPress"

Por otro lado, lo que me mandaste vos ultimo esta super!!! pero... se acumulas todos los clips.. a medida que presiono cada boton osea.. si hago click en el primer boton y luego en el segundo, se ven los dos clips.. cuando lo que deberia suceder es que el el clip primero deberia ir a (1) o, mejor , ahora estoy probando con poner un frame label: "stop" en cada clip en vez de decirle que vaya al frame (1).

gracias!!!

Por GA

26 de clabLevel



Genero:Femenino  

msie7
Citar            
MensajeEscrito el 17 Mar 2009 12:42 am
Si, es mejor asi como describes, aqui el codigo modificado:

Código ActionScript :

stop(); 
construir_botonera(); 
function construir_botonera() { 
   for (var i = 1; i<7; i++) { 
      this["btn" + i].clip = _root["clip_" + i]; 
      this["btn"+i].onRollOver = function( Void ){ 
         if (activo != this) { 
            this.gotoAndPlay("rollover");             
         } 
      }; 
      this["btn" + i].onRollOut = function( Void ){ 
         if (activo != this){ 
            this.gotoAndPlay("rollout"); 
         } 
      }; 
      this["btn" + i].onRelease = function( Void ){ 
         if (activo != this) { 
            activo.onRelease();
            activo = this 
            this.gotoAndPlay("press"); 
            this.clip.gotoAndStop("ini"); 
         } 
         else{ 
            this.clip.gotoAndPlay("stop"); 
            this.gotoAndPlay("releaseout") 
         } 
      };          
   } 
} 

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox

 

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