Comunidad de diseño web y desarrollo en internet

Texto dinamicos dentro de movieclips duplicados con AS

Citar            
MensajeEscrito el 29 Ago 2008 10:30 am
Buenas, pues tengo un problema al duplicar un movieclip mediante AS. El movieclip se trata de un item de menú que éste contiene 3 fotogramas clave (_up,_over_down) y en cada fotograma un texto dinámico (con nombre de instancia: "submenu_txt").
Bueno el problema exacto es que cuando duplico el MC y le asigno un nuevo valor de texto al texto dinámico (submenu_txt) sólo me cambia el valor en el primero fotograma (_up)...
Cómo consigo cambiarle el valor al texto en los otros dos fotogramas (_over, _down)?

gracias de antemano!!
saludos

Por akados

8 de clabLevel



 

firefox
Citar            
MensajeEscrito el 29 Ago 2008 11:39 am
Si pudieras describirme el estado de tus botones cuál es precisamente, por supuesto que debe cambiar algo en los textos, sino no los tuvieras duplicados, pero aparte de describirme qué cambia en los textos en los 3 estados, dime también que cambia en el resto del botón en cada uno.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

 

España

firefox
Citar            
MensajeEscrito el 29 Ago 2008 01:36 pm
deberias utilizar gotoAndStop, me explico:
nombrar la intancia, aplicarle la propiedad gotoAndStop y luego nombrar a la instancia el campo de texto, ya que la cabezera lectora de la linea de tiempo debe estar justo en el fotograma donde quieres cambiar el texto, nose si me explico bien...

si el fotograma 1 es (_up), el 2(_over) y el 3(_down)

menu.gotoAndStop(2) //seria _over
menu.submenu_txt.text ="espero que te sirva de ayuda"

menu.gotoAndStop(3) //seria _down
menu.submenu_txt.text ="espero que te sirva de ayuda"

Saludos

Por TuMadre

12 de clabLevel



 

safari
Citar            
MensajeEscrito el 29 Ago 2008 03:39 pm
He probado con gotoAndStop y no me ha funcionado, sigue sin cambiarme el texto en los 3 fotogramas.
Dejo el código con el que duplico el MC que hace de boton:

Código :

function DuplicarItem()
{
   mcs = _root.contenedor_submenu.item.duplicateMovieClip("item"+i, i);
   mcs._y = 38*mdirY + 0;

   mcs.gotoAndStop(1);
   mcs.submenu_txt.text = nombreSubmenu[i];
   mcs.gotoAndStop(2);
   mcs.submenu_txt.text = nombreSubmenu[i];
   mcs.gotoAndStop(3);
   mcs.submenu_txt.text = nombreSubmenu[i];

   mdirY++;
   
}


Éste es el código que he puesto al probar lo del gotoAndStop.
nombreSubmenu es el array que contiene los nombres de cada item del submenu sacados de un XML.
Me lo duplica bien, y me sale con el nombre de ese item (con el nombre nuevo sacado del XML), pero cuando paso por encima que en teoría debería irme al fotograma 2 (_over) y con el nombre sacado del XML, me sale el fotograma 2 (_over) del MovieClip que uso para duplicar... Espero que se entienda.

Gracias por las respuestas!!

Por akados

8 de clabLevel



 

firefox
Citar            
MensajeEscrito el 29 Ago 2008 04:57 pm
Tengo suerte para que ignoren mis preguntas: :lol:


Si pudieras describirme el estado de tus botones cuál es precisamente, por supuesto que debe cambiar algo en los textos, sino no los tuvieras duplicados, pero aparte de describirme qué cambia en los textos en los 3 estados, dime también que cambia en el resto del botón en cada uno.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

 

España

firefox
Citar            
MensajeEscrito el 29 Ago 2008 06:20 pm
Disculpa elchininet :$
A ver si he entendido tu pregunta... (que creo que no)
El estado de mis botones en reposo es (_up), cuando paso con el ratón por encima (_over) y cuando clicko en él (_down). Creo que no te refieres a esto pero espero que si, sino no entendí tu pregunta. El botón no tiene más, sólo es un movieclip que contiene un texto dinámico (con sus 3 fotogramas clave).
Luego en los textos tiene que cambiar el valor por defecto (que le he puesto "inicio") por el valor que recojo en el array que puse antes. Cada botón tiene un texto diferente. Ahora bien, lo único que cambia cuando lo hago es el texto del estado en reposo (_up), aquí me cambia bien el texto, pero en cuanto paso por encima me vuelve a poner "inicio"...

Bueno perdona si no he conseguido contestar a lo que preguntabas..
un saludo y mil gracias!

Por akados

8 de clabLevel



 

firefox
Citar            
MensajeEscrito el 29 Ago 2008 08:08 pm
La explicación que quería era algo como:

Estado _up - el botón es rosado con bordes dorados y el texto está en variante normal y en color blanco.
Estado _over - el botón es rojo con bordes negros y el texto está en variante bold y en color negro.
Estado _down - el botón es azul sin bordes y el texto está en variante cursiva y en color verde.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

 

España

firefox
Citar            
MensajeEscrito el 29 Ago 2008 10:27 pm
Estado _up - el texto está en variante normal y en color blanco.
Estado _over - el texto está en variante normal y en color blanco con un filtro de Iluminación.
Estado _down - el texto está en variante normal y en color gris oscuro.

Ok, si sirve de algo ahí va! no tengo ningun boton sólo está el texto dinámico.
un saludo!

Por akados

8 de clabLevel



 

firefox
Citar            
MensajeEscrito el 29 Ago 2008 11:06 pm
Eso es lo que necesitaba saber, no te hace falta hacer un movieClip con estados si tu boton es un texto que cambia de color o filtros, aquí tienes un ejemplo genérico, pégalo en el primer frame de un documento nuevo, deberás ajustarlo a lo que quieres:

Código ActionScript :

import flash.filters.GlowFilter;

//---Nombres a insertar en los botones
var nombres:Array = new Array("Sección 1", "Sección 2", "Sección 3");

//---Variables
var boton:MovieClip;
var fondo:MovieClip;
var texto:TextField;

var estilo:TextFormat = new TextFormat();

var ancho:Number;
var alto:Number;
var posY:Number = 0;

with(estilo){
   
   font = "Arial";
   size = 12;
   color = 0x666666;
   
}

//---Ciclo de crear los botones y darle acciones
for(var i:Number = 0; i < nombres.length; i++){
   
   boton = this.createEmptyMovieClip("boton" + i, this.getNextHighestDepth());
   fondo = boton.createEmptyMovieClip("fondo", boton.getNextHighestDepth());
   texto = boton.createTextField("texto", boton.getNextHighestDepth(), 0, 0, 0, 0);
   
   //---Crear el texto
   with(texto){
      
      autoSize = true;
      selectable = false;
      text = nombres[i];
      setTextFormat(estilo);
      
   }
   
   //---Dibujar el fondo depende de las medidas del texto   
   ancho = texto._width;
   alto = texto._height;
   
   with(fondo){
      
      beginFill(0x000000, 0);
      moveTo(-2, -2);
      lineTo(ancho + 4, -2);
      lineTo(ancho + 4, alto + 4);
      lineTo(0, alto + 4);
      lineTo(0, 0);
      endFill();
      
   }
   
   //---Situar los botones
   boton._y = posY;
   
   posY += boton._height + 20;
   
   //---Acción de los botones
   
   boton.onRollOver = function():Void{
      
      var glow:GlowFilter = new GlowFilter(0x000000, 100, 3, 3, 1, 10);
      
      var filterArray:Array = new Array();
      filterArray.push(glow);
      
      this.texto.filters = filterArray;
      
      
   }
   
   boton.onRollOut = function():Void{
      
      this.texto.filters = [];
      
      
   }
   
   boton.onPress = function():Void{
      
      this.texto.filters = [];
      this.texto.textColor = "0xFF0000";
      
      
   }
   
   boton.onRelease = function():Void{
      
      this.texto.filters = [];
      this.texto.textColor = "0x666666";
      
      
   }
   
   boton.onReleaseOutside = function():Void{
      
      this.texto.filters = [];
      this.texto.textColor = "0x666666";
      
      
   }
   
}

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

 

España

firefox
Citar            
MensajeEscrito el 30 Ago 2008 09:38 am
elchininet, me ha ido increiblemente bien! graciaaaas!

Por akados

8 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Dic 2008 04:08 pm
Hola chicos, me gustaria saber que le puedo añadir a éste código tan suculento para que cuando clicke un boton se quede en el estado Press, es decir, en rojo, y se mantenga hasta que presione otro boton. Lo saben??

Por albertomelo

15 de clabLevel



 

safari
Citar            
MensajeEscrito el 12 Feb 2009 02:35 pm
Hola, este codigo está genial, llevaba dias intentando hacer algo similar y tenis bastantes problemaspara crear un menú de este tipo.

pero aún tengo una duda, quiero usar este codigo para un glosario y ya organicé el array de terminos para que sean los textos de los botones, lo que no he podido es asignar el numero del boton para que me lance el texto que tengo en otro arreglo de definiciones.
es posible crear una variable que me almacene la posición (i) de ese boton que fue creado? para poder llamar luego la definicion respectiva a ese boton?
gracias por su atencion

Por Garulars

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 Feb 2009 02:49 pm
hola Albertomelo, se me ocurre que podrias quitarle el comportamiento onRollOver y OnRollOut y creas una variable global que te almacene la logitud del array, y asi puedes poner un ciclo en el onPress antes de cambiar el estado, para que te devuelva todos los botones a su estado normal antes de cambiar el boton seleccionado al nuevo estado

Por Garulars

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 Feb 2009 03:59 pm

Garulars escribió:

Hola, este codigo está genial, llevaba dias intentando hacer algo similar y tenis bastantes problemaspara crear un menú de este tipo.

pero aún tengo una duda, quiero usar este codigo para un glosario y ya organicé el array de terminos para que sean los textos de los botones, lo que no he podido es asignar el numero del boton para que me lance el texto que tengo en otro arreglo de definiciones.
es posible crear una variable que me almacene la posición (i) de ese boton que fue creado? para poder llamar luego la definicion respectiva a ese boton?
gracias por su atencion


ya lo consegui muchas gracias, lo posteo por si a alguien le sirve

boton.onPress = function():Void
{

this.texto.filters = [];
this.texto.textColor = "0x0D53F2";
a=this._name;//obtengo el nombre de instacia del boton
trace(a);
b = a.split("n");//divido la cadena de texto en dos " boto, i "
trace (b);
c=number(b[1]); // convierto el segundo elemento de la matriz (i que debe ser un numero) en tipo Number, por que anteriormente era una cadena
trace(c);
textodefini =definiciones[c]; //lanzo el objeto del arreglo de definiciones
};

Por Garulars

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 Feb 2009 08:11 pm
hmmm como haria para limpiar el menu? (borrar los botones) con el fin de crear uno nuevo cada vez que se presione una letra?

Por Garulars

5 de clabLevel



 

firefox

   Página 1 de 1

 

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