Comunidad de diseño web y desarrollo en internet online

Como puedo crear indeterminados botones de la biblioteca?

Citar            
MensajeEscrito el 21 Ago 2006 04:35 pm
Hola, estoy tratando de hacer que aparezcan n numero de botones en un clip de pelicula, dichos botones estan creados usando el metodo de insertar una imagen exportarla como simbolo de ahí convertirla en boton y editar los cuatro estados del boton, después lo eliminé del escenario y lo exporté hacia actionScript, pero no funciona, lo he tratado de hacer con este codigo

Código :

for(i = 65; i<92; i++)
{
   var objDummy = new Object();
   btnNuevo = this.createObject("btnLetra","btn"+String.fromCharCode(i),i,objDummy);
        //Donde btnLetra es el nombre del vinculo hacia ActionScript.
   btnNuevo._visible = true;
   btnNuevo._x = 100.5;
   btnNuevo._y = 200.9;
}

o cambiando la linea

Código :

btnNuevo = this.createObject("btnLetra","btn"+String.fromCharCode(i),i,objDummy);
 //por
btnNuevo = this.createClassObject("btnLetra","btn"+String.fromCharCode(i),i,objDummy);

pero ninguno de los dos me crea el objeto de la clase, y lo reviso en la depuracion y no me muestra los objetos que he creado...
Saludos.

Por zelgadiss01

87 de clabLevel



 

The Silent Hills

firefox
Citar            
MensajeEscrito el 22 Ago 2006 01:25 pm
¿Has probado con attachMovie? O_o

Por Elecash

Claber

8126 de clabLevel

37 tutoriales
19 articulos
13 ejemplos

  Bastard Operators From Hell Desarrollador de GAIA Premio_Secretos Héroes

BarnaCity

firefox
Citar            
MensajeEscrito el 22 Ago 2006 03:05 pm
Hola, Gracias por la respuesta, si funciono... con el codigo:

Código :

for(i = 65; i<92; i++)
{
   btnNuevo = this.attachMovie("btnLetra","btn"+String.fromCharCode(i),this.getNextHighestDepth());   
   btnNuevo._visible = true;
   btnNuevo._x = 34.4*(i-65)+5;
   btnNuevo._y = 200.9;   
}

pero, como buena ley de Murphy ahora hay otro problema; lo que pasa es que cada boton tiene una etiqueta que se llama txtLabel, pero al momento de crear el objeto, dicha etiqueta se transforma en

Código :

// Editar texto: Destino="_level0.btnZ.instance26" Variable=_level0.txtLabel Visible=true Texto = "W"

A la cual me tengo que referenciar como instanceX, pero es posible hacer de alguna manera que me pueda referenciar a la etiqueta con su nombre?, o esa es la única manera en la cual puedo accederla, ahora, otra cosa, cuando hago algo como esto:

Código :

btnA.instance1.text = "A";
btnB.instance2.text = "B";

Segun yo, el boton A debería tener la etiqueta A, el boton B la etiqueta B y así sucesivamente, pero no... lo que hace es que los botones toman la ultima etiqueta, en este caso todos los botones creados toman la etiqueta B... ahora como puedo hacer para solucionar esto?
mil gracias.
Saludos.

Por zelgadiss01

87 de clabLevel



 

The Silent Hills

firefox
Citar            
MensajeEscrito el 22 Ago 2006 03:24 pm
puedes hacer un array con las etiquetas

Código :

var misEtiquetas:Array=new Array("inicio","nosotros","contactos","etc");

for(i = 65; i<92; i++){   
   btnNuevo = this.attachMovie("btnLetra","btn"+String.fromCharCode(i),this.getNextHighestDepth());      
   btnNuevo._visible = true;
   btnNuevo._x = 34.4*(i-65)+5;
   btnNuevo._y = 200.9;
   btnNuevo.text=misEtiquetas[i-65];
}


Por eldervaz

BOFH

10964 de clabLevel

39 tutoriales
56 articulos

Genero:Masculino  

en algún lugar del mundo

msie
Citar            
MensajeEscrito el 22 Ago 2006 04:38 pm
Hola, gracias por la respuesta ... Pues, hice esto, que me es parecido a lo que tu me dices, donde txtLabel es texto dinamico y con la variable texto, así que me imagine que alguno de los dos metodos funcionaria, pero no... sigue igual.

Código :

for(i = 65; i<91; i++)
{
   obj  = new Object();
   obj.txtLabel.text = String.fromCharCode(i);   
   btnNuevo = this.attachMovie("btnLetra","btn"+String.fromCharCode(i),this.getNextHighestDepth(),obj);
   btnNuevo._visible = true;
   btnNuevo._x = 34.4*(i-65)+5;
   btnNuevo._y = 200.9;
   btnNuevo.onPress = fnTest;
   btnNuevo.texto = i;
//tambien probe con btnNuevo.eval("instance"+(i-64)).text = i;
//tambien con btnNuevo.txtLabel.text = i;
}
function fnTest()
{
   trace (this);
}

Hay alguna manera de poder nombrar a dicho objeto o es que siempre va a tomar ese nombre?
Saludos.

Por zelgadiss01

87 de clabLevel



 

The Silent Hills

firefox
Citar            
MensajeEscrito el 23 Ago 2006 05:25 pm
Bueno, he tratado de modificar el codigo de los botones que he hecho, pero el problema es que ahora ya puedo accesar a la propiedad de los botones en donde esta el texto, pero sucede lo mismo que al inicio, todos los botones creados toman la etiqueta que se les da al final, en este caso... todos los botones toman la etiqueta Z, como puedo hacer para solucionar eso?

Código :

for(i = 65; i<91; i++)
{
   btnNuevo = this.attachMovie("btnLetra","btn"+String.fromCharCode(i),this.getNextHighestDepth());
   btnNuevo._visible = true;
   btnNuevo._x = 34.4*(i-65)+5;
   btnNuevo._y = 200.9;   
   for (var name in btnNuevo) 
   { 
      if (name.substr(0,8) == "instance")       
      { 
          btnNuevo[name].text = String.fromCharCode(i);         
         break;
       } 
   }   
}
function fnTest()
{
   trace (this);   
}

o hay alguna manera de hacer esto con el operador new, por que imagino que lo en este codigo lo unico que hago es agregar un solo boton muchas veces en ves de agregar muchos botones.
Saludos.

Por zelgadiss01

87 de clabLevel



 

The Silent Hills

firefox
Citar            
MensajeEscrito el 23 Ago 2006 06:48 pm
Mirá generalmente yo no soy de usar el atachmovie, sino que soy de usar el duplicatemovieclip y lo que hago despues oculto el mc que coloque en el escenario, yo hice esto y me funciono

Explicacion: tengo un mc principal que se llama letra (instancia) y adentro tiene un un cuadro de texto dinamico que se llama letra (instancia) y le agrego la letra del arreglo, esto del arreglo lo podes hacer tambien poniendo key.getascii y el codigo, pero era mas largo y no lo voy a modificar.

Código :

var letras_arr:Array = new Array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "ñ", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z");

function Duplica() {
      letra.duplicateMovieClip("l"+z, z);
      _root["l"+z].letra.text = letras_arr[z];
      _root["l"+z]._x = _root["l"+z]._x+z*30;
      z++;
      letra._visible = false;
   }

for (var v = 0; v<letras_arr.length; v++) {
         Duplica();
      }


espero que te sirva

Por cuajoa

10 de clabLevel



 

firefox

 

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