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
-------------------------------->