Foros del Web » Creando para Internet » Flash y Actionscript »

rollover en un elemento dentro de un data grid

Estas en el tema de rollover en un elemento dentro de un data grid en el foro de Flash y Actionscript en Foros del Web. hola ojala alguien me pueda ayudar. estoy tratando de hacer que cuando el mouse pase por un elemento que es imagen dentro de un datagrid, ...
  #1 (permalink)  
Antiguo 31/08/2010, 12:34
Avatar de yaz_vivi  
Fecha de Ingreso: julio-2010
Ubicación: Monterrey
Mensajes: 12
Antigüedad: 13 años, 9 meses
Puntos: 0
rollover en un elemento dentro de un data grid

hola ojala alguien me pueda ayudar.

estoy tratando de hacer que cuando el mouse pase por un elemento que es imagen dentro de un datagrid, me despliegue un texto en vez de la imagen y cuando salga obviamente regresar la imagen.

estoy usando una clase que encontre en internet para cellrender en datagrid para imagenes la cual es:


Código:
class EleImagen extends mx.core.UIComponent{
	
	var imagen:MovieClip;
	var owner; //La fila que contiene esta celda
	var listOwner; //El datagrid que contiene esta celda

	
	//Constructor
	function EleImagen(){
		
	}
	
	function createChildren():Void{
		//Creamos un contenedor
		createEmptyMovieClip("imagen",1);
		imagen._y = 0;
		imagen._x = 10;
		//75/2 * -1;
	}
	
	function setValue(ruta:String, item:Object, seleccionado:String):Void{
		//Solo se carga la imagen si dan un valor correcto y no esta cargada previamente
		if(ruta.length > 1 && imagen._url.indexOf(ruta) == -1){
			imagen.loadMovie(ruta);
		}
		//Sin dan un valor vacio hay que quitar la imagen
		else if(ruta.length <= 1){
			imagen.unloadMovie();
		}	
	}	
}
y en mi data grid estoy tratando de llamarla asi


Código:
data_consulta.getColumnAt(0).cellRenderer = "MultiLineCell";
data_consulta.getColumnAt(1).cellRenderer = "EleImagen";
data_consulta.getColumnAt(2).cellRenderer = "EleImagen";			
data_consulta.getColumnAt(3).cellRenderer = "MultiLineCell";
data_consulta.getColumnAt(4).cellRenderer = "MultiLineCell";			
			
			
data_consulta.getColumnAt(1).onRollOver =  function()
{
	data_consulta.editField(1, "Cambio", "No");
	//rotulo = "No";
}
estuve tratando de meter un addEventListener al movieclip imagen dentro de la clase, pero me marca error...

asi que no se entonces como es que puedo hacer el rollove de ese especifico elemento.


alguien me puede ayudar!!!!! estoy desesperada...

me super urge!!!!!!
  #2 (permalink)  
Antiguo 01/09/2010, 19:29
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: rollover en un elemento dentro de un data grid

Hola
bueno, pues me llamo la atención lo que buscabas,
no se si ya revisaste esto

mientras, te comento, estuve haciendo pruebas y
al parecer el datagrid no es tan flexible como debería,
esto porque si cambio el valor de esa columna (donde se carga la imagen)
al estar vinculada a la clase que comentas, el trata de cargar
una imagen con el texto que le pases como parámetro,
marcando obviamente error de carga de archivo

Así el asunto, se me ocurrio simplemente no cambiar el valor de esa
celda, sino su vecina (en este caso Titulo)

En cuanto a los eventos, volvemos a lo inflexible, al parecer no tiene
como tal un evento que sea de algún tipo de roll (out,over) y lo más
parecido que yo vi es cellFocusIn y cellFocusOut
Sin embargo, al hacer uso de estos eventos, haciendo pruebas limpiaba
toda la fila aún diciendole que solo cambiara el valor de una de las celdas de la fila seleccionada, haciendo necesario capturar el valor original de cada celda de la fila seleccionada para luego restaurarlo

y teniendo eso en mente, te ofrezco este código

Código actionscript:
Ver original
  1. var cell_imagen:String;
  2. var cell_titulo:String;
  3. var cell_director:String;
  4.  
  5. var dgListener:Object = new Object();
  6. dgListener.cellFocusIn = function(evt_obj:Object) {
  7.     cell_imagen = evt_obj.target.selectedItem.Imagen;
  8.     cell_titulo = evt_obj.target.selectedItem.Titulo;
  9.     cell_director = evt_obj.target.selectedItem.Director;
  10.    
  11.     mi_dg.replaceItemAt(evt_obj.itemIndex,{Imagen:cell_imagen,Titulo:"fr",Director:cell_director});
  12.  
  13. };
  14. dgListener.cellFocusOut = function(evt_obj:Object) {
  15.     mi_dg.replaceItemAt(evt_obj.itemIndex,{Imagen:cell_imagen,Titulo:cell_titulo,Director:cell_director});
  16. };
  17.  
  18. mi_dg.addEventListener("cellFocusIn", dgListener)
  19. mi_dg.addEventListener("cellFocusOut", dgListener)

pruebalo y comentas
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Etiquetas: data, grid, rollover
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:09.