Felipe,

metele un metodo a cada boton mas o menos asi:

<code>
miClip.resaltar = function(){
                  tEstiloPress = new TextFormat();
                  tEstiloPress.color = "0x000000";
                  tEstiloPress.bold = true;
                  this.mes.setTextFormat(tEstiloPress);
}
</code>

luego cuando quieras activar ese evento para el clip puedes hacer esto

<code>
miClip.onRollOver = miClip.resaltar
// Muy imporante la ausencia de los parentesis en resaltar
</code>

y para desactivarlo:

<code>
miClip.onRollOver = null;
</code>

Asi un clip puede tener varios metodos con nombres mas descriptivos como
"resaltar", "ocultar","restaurar" y vas asignando o desasignando, yo esto te
lo he hecho con otros dos metodos activar y desactivar.

Hechale un vistazo al codigo modificado, te lo he comentado.

<code>
var posX = separadorMes._x+10;
var posY = separadorMes._y-2;
var tAncho = 110;
var tAlto = 15;
var color = "0x999999"
var colorRoll = "0x666666"
var monthsOfYear_array =
["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiemb
re","Octubre","Noviembre","Diciembre"];

//--Generamos la lista de los nombres de los meses
//---crear el clip contenedor
for (i=0; i<=monthsOfYear_array.length; i++){
            this.createEmptyMovieClip(monthsOfYear_array[i], i);
            //--asignamos a la variable "miClip" el valor
   //de la asignacion dinamica
            miClip = this[monthsOfYear_array[i-1]];

            miClip._x = posX;
            miClip._y = posY+tAlto*(i-1);

            //---creacion de campo de texto
            miClip.createTextField("mes", 1, 0, 0, tAncho, tAlto);

            miClip.mes.multiline = false;
            miClip.mes.border = false;
            miClip.mes.selectable   = false;
            miClip.mes.align  = "centre";

            //---el texto para el campo
            miClip.mes.text = monthsOfYear_array[i-1];

            //---crear los estilos para campos
            tEstilo = new TextFormat();

            //---aplicar el estilos de texto a campo
            tEstilo.size      = 9;
            tEstilo.font      = "Verdana";
            tEstilo.color     = color;
            //tEstilo.bold    = true;

            //---aplicamos el formato
            miClip.mes.setTextFormat(tEstilo);
   /*
   Comienzo de la

   modificacion del codigo
   */

   // Creamos los metodos

   // Estos dos metodos por comodidad
   miClip.activar = function(){
    // basicamente asigna eventos a metodos
    this.onRollOver = this.resaltar;
    this.onRollOut = this.restaurar;
    this.onPress = this.marcar;
    this.useHandCursor = true;
    // Seguramente cuando queramos activar
    // tambien queremos obtener el estilo inicial
    this.restaurar();
   }
   miClip.desactivar = function(){
    // Borramos los eventos, pero no los metodos ;)
    this.onRollOver = null;
    this.onRollOut = null;
    this.onPress = null;
    this.useHandCursor = false;
   }
   // Estos tres metodos representan los 3 diferentes estados
            miClip.resaltar = function(){
                  tEstiloRoll = new TextFormat();
                  tEstiloRoll.color = colorRoll;
                  tEstiloRoll.bold   = true;
                  this.mes.setTextFormat(tEstiloRoll);
            }
            miClip.restaurar = function(){
                  tEstiloOut = new TextFormat();
                  tEstiloOut.color = color;
                  tEstiloOut.bold = false;
                  this.mes.setTextFormat(tEstiloOut);
            }
            miClip.marcar = function(){
                  tEstiloPress = new TextFormat();
                  tEstiloPress.color = "0x000000";
                  tEstiloPress.bold = true;
                  this.mes.setTextFormat(tEstiloPress);
      // Este se desactiva a si mismo y activa el ultimo pulsado
      this.desactivar();
      _global._ultimoMes.activar();
      // Una vez hecho esto, ahora el ultimo es �l
      _global._ultimoMes = this;
      // Ya de paso lanzamos un evento
      this.onClick();
            }
   // Usamos el evento
   // Supongo que aqui querras hacer algo
   // cuando se active cada mes
   miClip.onClick = function(){
    trace("Mes "+this.mes.text+" tuvo dia 5");
   }
   // Listo, lo activamos
   miClip.activar();
}
</code>

yepps

Joseba Alonso
www.sidedev.net


----- Original Message -----
From: <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, July 03, 2003 4:47 PM
Subject: [ASNativos] Anular function


Buenas tardes quillos.

Estoy haciendo una especie de dietario con flash y me he encontrado con un
peque�o problema con las funciones creadas para los estados rollOver y
rollOut

Descripci�n:

De un array saco los meses del a�o
Creo un clip vacio y dentro un campo de texto al que asigno mediante "for"
los nombre de los meses del a�o.
He creado ademas tres funciones de bot�n:
-RollOver
-RollOut
-Press

Algunos ya veis por donde van los tiros

Todo funciona cojonudo, pero claro, cuando yo presiono uno de estos texto,
inmediatamente despues hago rollOut, por lo que el aspecto gr�fico de la
funci�n "press" se pierde.

No s� cual puede ser la soluci�n, he pensado en que desde la funci�n
"press" anule las otras dos, pero ha de ser en referencia al clip sobre el
que estoy.

�alguna idea?
Gracias

[code]
var posX = separadorMes._x+10;
var posY = separadorMes._y-2;
var tAncho = 110;
var tAlto = 15;
var color = "0x999999"
var colorRoll = "0x666666"
var monthsOfYear_array =
["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiemb
re","Octubre","Noviembre","Diciembre"];

//--Generamos la lista de los nombres de los meses
//---crear el clip contenedor
for (i=0; i<=monthsOfYear_array.length; i++){
            this.createEmptyMovieClip(monthsOfYear_array[i], i);
            //--asignamos a la variable "miClip" el valor de la asignacion
dinamica
            miClip = this[monthsOfYear_array[i-1]];

            miClip._x = posX;
            miClip._y = posY+tAlto*(i-1);

            //---creacion de campo de texto
            miClip.createTextField("mes", 1, 0, 0, tAncho, tAlto);

            miClip.mes.multiline = false;
            miClip.mes.border = false;
            miClip.mes.selectable   = false;
            miClip.mes.align  = "centre";

            //---el texto para el campo
            miClip.mes.text = monthsOfYear_array[i-1];

            //---crear los estilos para campos
            tEstilo = new TextFormat();

            //---aplicar el estilos de texto a campo
            tEstilo.size      = 9;
            tEstilo.font      = "Verdana";
            tEstilo.color     = color;
            //tEstilo.bold    = true;

            //---aplicamos el formato
            miClip.mes.setTextFormat(tEstilo);

            miClip.onRollOver = function(){
                  tEstiloRoll = new TextFormat();
                  tEstiloRoll.color = colorRoll;
                  tEstiloRoll.bold   = true;
                  this.mes.setTextFormat(tEstiloRoll);
            }
            miClip.onRollOut = function(){
                  tEstiloOut = new TextFormat();
                  tEstiloOut.color = color;
                  tEstiloOut.bold = false;
                  this.mes.setTextFormat(tEstiloOut);
            }
            miClip.onPress = function(){
                  tEstiloPress = new TextFormat();
                  tEstiloPress.color = "0x000000";
                  tEstiloPress.bold = true;
                  this.mes.setTextFormat(tEstiloPress);
            }
}
[/code]

----------------------------------------------------------------------------

Felipe Alonso
Dise�ador/Desarrollador
MDS Pharma Services
c/ Rosa de Lima, 1-bis, Edificio Alba
28290 Las Matas (Madrid)

Tel: 91 636 99 37 (directo)
Fax: 91 630 7474

[EMAIL PROTECTED]
www.mdsps.es
----------------------------------------------------------------------------


<!-------------------------------
Lista ASNativos:
subscripciones/desubscripciones
http://www.sidedev.net/asnativos
-------------------------------->

<!-------------------------------
Lista ASNativos:
subscripciones/desubscripciones
http://www.sidedev.net/asnativos
-------------------------------->

Responder a