Comunidad de diseño web y desarrollo en internet online

Problema con menu que carga desde XML

Citar            
MensajeEscrito el 19 Ago 2010 05:33 pm
Hola que tal ? Estoy teniendo un problema con un menu que estoy realizando. El promlema que tengo es que de las viñetas del menu hay una que tiene un nombre largo. La palabra es "Comunicaciones". El problema que tengo es que las demas palabras son mas chicas y por lo tanto la viñieta que utilizan es mas chica. Al ser mas chica esta viñeta la palabra comunicaciones queda cortada. Las palabras de las viñietas las cargo desde un xml y el menu esta hecho con actionscript.
Entonces lo que quiero hacer es que cuando la palabra sea "Comunicaciones" eliga otro movie clip que sea mas grande pero nose como realizar el codigo para que cuando sea comunicaciones la palabra, le ponga _attach.movie y el otro movie clip .

Se agradeceria mucho la ayuda ya que no puedo completar el menu sin esto.
Desde ya muchas gracias. Si quedo medio confuso lo refraseo para que lo logren entender.

Por brunoo.182

25 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Ago 2010 05:46 pm
Pon la parde del code donde haces el attachMovie

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 19 Ago 2010 06:53 pm
gracias jorge devuelta por tu ayuda espero que me puedas salvar esta vez como lo hiciste la vez pasada que lograste solucionarme el problema.

Código ActionScript :

my_xml.onLoad = function(success) {
   if (success) {
      //   trace(this)
      menues = this.childNodes;
      for (var i = 0; i<menues.length; i++) {
         if ( menues[i].attributes.label = "Comunicaciones" ) {
            _this.attachMovie("menu_mc2", "menumc_"+i, -i);
         } else {
            _this.attachMovie("menu_mc", "menumc_"+i, -i);
         }
         _this.attachMovie("menu_mc", "menumc_"+i, -i);
         _this["menumc_"+i].menutxt.text = menues[i].attributes.label;
         _this["menumc_"+i].url = menues[i].attributes.url;  
         _this["menumc_"+i]._y = 16;
         if (i == 0) {
            _this["menumc_"+i]._x = 100;
         } else {
            _this["menumc_"+i]._x = _this["menumc_"+(i-1)]._x+_this["menumc_"+(i-1)]._width-20;
         }
         _this["menumc_"+i].onRollOver = function() {
               
            this.gotoAndPlay(2)
            
            menu_rollover(this);
         };
         _this["menumc_"+i].onRollOut = function() {
            menu_rollout(this);
         };
         _this["menumc_"+i].onRelease = function() {  
                getURL( this.url , "_self" )
         };






Esa es una parte del codigo, si necesitas el codigo xml lo posteo para que le heches una ojeada.

Desde ya muchas gracias jorge

Por brunoo.182

25 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Ago 2010 06:57 pm
perdon me olvide de borrar la parte despues del else que vuelve a decir _this.attachMovie("menu_mc", "menumc_"+i, -i);

Lo que sucede uso este codigo es que simpre me aparece la viñieta con la palabra comunicaciones y el menu_mc2

Por brunoo.182

25 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Ago 2010 07:31 pm
Estás asignando en vez de comparando:

if ( menues[i].attributes.label == "Comunicaciones" )

Tienen que ser dos iguales, no uno solo

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 19 Ago 2010 08:02 pm
muchisimas gracias jorge devuetla me has salvado la vida.
De veras eres un genio siempre me solucionas los problemas.


Gracias.

Bruno

Por brunoo.182

25 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Ago 2010 08:17 pm
Una ultima pregunta Jorge. Se puede hacer que la longitud del movie clip de los submenus se adecue segun la la cantidad de caracteres que tenga la palabra? Porque tengo el problema de que algunas son muy largas y otras cortas y no me da el espacio para ponerlas todas?

Te agradecieria si me pudieras ayudar con este problema.


Gracias,

Bruno

Por brunoo.182

25 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Ago 2010 08:44 pm
Haz el campo autosize, luego aplica un TextFormat para darle un formato, finalmente usa textWidth del textFormat aplicado ( o getTextExtent) para conocer el tamaño del campo de texto

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 19 Ago 2010 09:33 pm
Muchas gracias Jorge por la respuesta pero no tengo idea de como se aplica un TextFormat y usar el textWidth.(Perdon por mi ignorancia)
Te agradeceria si me pudieras aclarar esos puntos

Por brunoo.182

25 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Ago 2010 10:57 pm
te agradeceria tambien se me pudieras escribir masomenos la forma como seria el codigo.
Gracias,

Bruno

Por brunoo.182

25 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Ago 2010 11:10 am
Perdón, es mas fácil aún, suponiendo que tengo un campo de texto llamado muestra_txt, aquí un ejemplo

Código ActionScript :

muestra_txt.autoSize = "left"
trace(muestra_txt.textWidth)
muestra_txt.text = "casa"
trace(muestra_txt.textWidth)
muestra_txt.text = "tres tristes tigres"
trace(muestra_txt.textWidth)


Es decir, usa simplemente la propiedad textWidth (y el texto en autoSize, claro)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 21 Ago 2010 11:41 pm
gracias jorge nuevamente por la ayuda pero no pude lograr qe me funcionara lo que me explicaste. El codigo lo formule de esta manera :


for(var i=0; i<submenu.length; i++){
_this.attachMovie("submenu_mc", "submenu_"+i, i+menues.length);
_this["submenu_"+i].menutxt2.autoSize = "left"
_this["submenu_"+i].menutxt2.text = submenu[i].attributes.label;
trace( _this["submenu_"+i].menutxt2.textWidth ) ;
_this["submenu_"+i].url = submenu[i].attributes.url;
_this["submenu_"+i]._y = _this["menumc_"+menu_num]._y+ _this["menumc_"+menu_num]._height;
if(i == 0)
{
_this["submenu_"+i]._x = 70






El error que aparece en el output son una serie de numeros no se si tiene algo que ver y no se ajusta el tamaño del texto asi que el codigo no esta funcionando.

Te agradeceria si me pudieras ayudar a encontrar el error en el codigo.
Desde ya muchas gracias ,

Bruno.

Por brunoo.182

25 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Ago 2010 03:30 am
El primer paso es muy importante: entender lo que estás haciendo.
Yo te puse una serie de trace para que veas como la propiedad se modifica al cambiar el texto, suponía que tu lo ibas a ajustar para cambiar tu rutina de menúes, pero me encuentro que solo agregaste un trace ... ¿se supone que un trace arregle algo? ¿o me estoy perdiendo de algo?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 22 Ago 2010 05:22 pm
aa claro ya comprendo el trace lo unico que hace es mostrar el tamaño de las palabras en el output. Disculpa mi ignorancia. Ya entiendo lo que se debe realizar. No entiendo como se debe usar el textWidth para que luego de poner autosize se ajuste a ese textWidth.

Por brunoo.182

25 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Ago 2010 11:14 pm
Con autosize el campo de texto se ajusta automáticamente, y puede que sea suficiente para tu caso. Intenta eso primero, sino luego vemos que hacer con el textWidth

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 25 Ago 2010 06:33 pm
Gracias jorge pero probe solo con el autosize y no se soluciono, simplemente sigue sucediendo lo mismo y las frases largas quedan cortadas. supongo que ahora deberiamos probar con el textwidth pero no se que es lo que te parece lo mejor para ti.

Desde ya muchas gracias,

Bruno.

Por brunoo.182

25 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Ago 2010 06:35 pm
Bien, dentro del loop anterior, este sería el ancho:

this["submenu_"+i].menutxt2.textWidth

Ahora, ¿que es lo que quieres ajustar? ¿El fondo?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 25 Ago 2010 11:02 pm
lo que quisiera ajustar es la instancia de texto, es decir el ancho del menutxt2 porque si es muy grande tapa algunas palabras y si es chico hay algunas que no etran. Probare lo que tu me recomiendas

Por brunoo.182

25 de clabLevel



 

firefox
Citar            
MensajeEscrito el 31 Ago 2010 09:09 pm
jorge disculpa la demora es que anduve ocn problemas familiares y debia solucionarlos. Ya intente lo de poner el codigo de text width pero no dio ningun resultado, todo sigue de la misma manera entonces las frases largas quedan cortadas. Creo que la falla esta en el orden en que coloque el codigo pero no encuentro el orden que debe seguir. Lo escribi de esta manera :

for(var i=0; i<submenu.length; i++){
_this.attachMovie("submenu_mc", "submenu_"+i, i+menues.length);
_this["submenu_"+i].menutxt2.autoSize = "left";
_this["submenu_"+i].menutxt2.text = submenu[i].attributes.label;
_this["submenu_"+i].menutxt2.textWidth
_this["submenu_"+i].url = submenu[i].attributes.url;



Te agradeceria si me pudieras ayudar a colocar bien el codigo.

Desde ya muchas gracias,

Bruno.

Por brunoo.182

25 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Sep 2010 01:38 pm
Ok, veo que sigues creyendo en la magia. Antes pusiste trace(textWidth) y decías que no funcionaba ... claro, el trace sirve para imprimir mensajes en el output. Ahora veo que agregaste esto:

_this["submenu_"+i].menutxt2.textWidth

¿Que se supone que haga eso? Revisa ese código y muestrame que usas la propiedad para algo

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 02 Sep 2010 09:35 pm
gracias jorge. Entiendo que hay que ese codigo solo indica el ancho pero nose como indicarle que se adapte a ese ancho. No entiendo cual es el codigo que se deberia usar para que se adapte al textWidth indicado.

Por brunoo.182

25 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Sep 2010 03:12 am
Ok, si no entendemos lo que hacemos estamos en un problema. Pensemos en el problema: tenemos un texto que se hace muy grande y quiero que ...¿el fondo? ... se ajuste a su tamaño. Identifica ese fondo, debiera ser un MovieClip, ponle de instancia "fondo" y prueba:

_this["submenu_"+i].fondo._width = _this["submenu_"+i].menutxt2.textWidth

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 09 Sep 2010 06:37 pm
graicas jorge pero lo que estaba buscando era que la instancia de texto "menutxt2" que es un texto dinamico sea el que se ajuste con el textWidth.

Gracias,

Bruno

Por brunoo.182

25 de clabLevel



 

firefox

 

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