Comunidad de diseño web y desarrollo en internet online

menu horizontal

Citar            
MensajeEscrito el 19 Ago 2008 04:46 am
Estoy intentando hacer un menu horizontal xml, pero ahora me surgieron dos problemas, el primero es que los botones tienen diferentes anchos por la cantidad de caracteres, entonces los botones varian de tamaño, he buscado se que tiene que ver con length pero no doy como hacerlo, y lo otro es que entre cada boton hay un separador pero no iria en el ultimo boton nada, mas entre los botones contiguos.

:oops: Espero haber sido claro, gracias

Por boruga

21 de clabLevel



 

safari
Citar            
MensajeEscrito el 19 Ago 2008 08:51 am
Postea el código que estás utilizando y que no te da resultado, pero por lo pronto no es con length, este te devuelve la cantidad de caracteres. Utiliza width y le das ese mismo ancho al botón sumándole un margen por cada lado. y para que al final no te ponga un separador utiliza una condición.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 20 Ago 2008 03:13 am
Este es el codigo que estoy utilizando, pero como digo, el boton quiero que nada mas sea del tamaño de la caja de texto, la caja esta igual de grande que el boton pero me gustaria que reconociera la cantidad de caracteres y quedara fija en el ancho del texto, tambien me gustaria que pusiera unos separadores pero en el primero a mano izquierda no y en el ultimo a mano derecha.


Código :

xStart = 5;
yStart = 48;
bWidth = 82;
bHeight = 18;
var menuXml = new XML();
//loadXml("../assets/xml-menu/menu.xml");
loadXml("menu.xml");
function loadXml(file:String) {
   menuXml.ignoreWhite = true;
   menuXml.onLoad = loadMapData;
   menuXml.load(file);
   function loadMapData() {
      for (var i = 0; i<this.firstChild.childNodes.length; i++) {
         var bn = this.firstChild.childNodes[i].attributes.buttonName;
         var b = _root.attachMovie("button", bn, i);
         b._x = xStart+(bWidth*i);
         b._y = yStart;
         b.txt = bn;
         b.onPress = function() {
            pages.gotoAndStop(this.txt);
            pages.heading = this.txt;
            target = this._y;
         };
         /*b.onRollOver = function() {
         this.gotoAndStop(2);
         };
         b.onRollOut = function() {
         this.gotoAndStop(1);
         };*/
      }
   }
}



Espero esta ves si haber sido del todo claro

Por boruga

21 de clabLevel



 

safari
Citar            
MensajeEscrito el 20 Ago 2008 10:21 am
El método lo estás realizando leyendo el movieClip del botón de la biblioteca, si quieres hacerlo dinámico o haces el botón completamente por script, o en la biblioteca lo que tienes son los bordes del botón y la parte del medio que puede ser escalada sin deformación en la horizontal.

Depende de como sean tus botones te puedo aconsejar como debes seguir.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 21 Ago 2008 04:33 am
Me gustaria que los botones se crearan por script creo que es mas facil, pero quiero que al terminar los caracteres halla un espacio proporcional a cada lado y que ponga un separador como te habia esplicado antes

Por boruga

21 de clabLevel



 

safari
Citar            
MensajeEscrito el 21 Ago 2008 01:33 pm
No es una razón de quererlo, es una razón de si es factible hacerlo por script, no has respondido:


Depende de como sean tus botones te puedo aconsejar como debes seguir.


No sé como son los botones, si son un cuadrado no hay problema, inclusive un rectángulo con esquinas redondeadas, pero si tus botones son muy complicados, más bien ilustrativos, se debe buscar otra técnica.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 24 Ago 2008 02:31 am
son simples rectangulos transparentes con texto dinamico

Por boruga

21 de clabLevel



 

safari
Citar            
MensajeEscrito el 25 Ago 2008 11:33 am
Esto sería una solución (con un simple ractángulo), observa bien el funcionamiento del código para que lo apliques a tu trabajo, no lo soluciones con copiar y pegar y postear que no sale, sino que debes ver como se ha operado y aplicarlo a tu caso:

Código ActionScript :

var myRoot:MovieClip = this;

var menuXml:XML = new XML();
menuXml.ignoreWhite = true;

menuXml.load(file);

menuXml.onLoad = function(success:Boolean):Void {
   
   if(success){
      
      var bn:String;
      var b:MovieClip;
      var fondo:MovieClip;
      var txt:TextField;
      var ancho:Number;
      var alto:Number;
      
      var xStart:Number = 5;
      var yStart:Number = 48;
      
      for (var i = 0; i<this.firstChild.childNodes.length; i++) {
         
         //---Capturar el nombre del XML
         bn = this.firstChild.childNodes[i].attributes.buttonName;
         
         //---Crear el contenedor del boton
         b = myRoot.createEmptyMovieClip("bn" + i, myRoot.getNextHighestDepth());
         
         //---Crear el fondo del boton
         fondo = b.createEmptyMovieClip("fondo", 0);
         
         //---Crear el texto del boton
         txt = b.createTextField("txt", 1, 2, 2, 0, 0);
         
         with(txt){
            
            autoSize = true;
            selectable = false;
            text = bn;
            //---Asignarle un textFormat con el estilo del texto
            
         }
         
         //---Tomar las medidas del botón con el texto dentro
         ancho = b._width;
         alto = b._height;
         
         //---Dibujar el fondo del botón
         with(fondo){
            
            beginFill(0xCCCCCC, 100);
            moveTo(0, 0);
            lineTo(ancho + 2, 0);
            lineTo(ancho + 2, alto + 2);
            lineTo(0, alto + 2);
            lineTo(0, 0);
            endFill();
            
         }
         
         //---Darle coordenadas a los botones
         b._x = xStart;
         b._y = yStart;
         
         //---Incrementar las X
         xStart += b._width;
         
      }
      
   }
   
};

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 31 Ago 2008 06:30 pm
Esta vivo funciona funciona mil gracias

Por boruga

21 de clabLevel



 

safari
Citar            
MensajeEscrito el 31 Ago 2008 06:43 pm
Me alegro que te haya funcionado :wink:

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox

 

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