Seleccionaste la categoría: ‘ Código ’

Múltiples Item Renderers en un DataGroup

Lunes, octubre 18, 2010

Interesante receta que me encontré en el Cookbook, pongan atención en la propiedad itemRendererFunction del DataGroup.

NOTA: Útil para renders más complejos.

< ?xml version="1.0" encoding="utf-8"?>
<s:group xmlns:fx="http://ns.adobe.com/mxml/2009" 
		 xmlns:s="library://ns.adobe.com/flex/spark" 
		 xmlns:mx="library://ns.adobe.com/flex/mx"
		 creationComplete="init()">
	<fx:declarations>
		<!-- Place non-visual elements (e.g., services, value objects) here -->
	</fx:declarations>
 
	<fx:script>
		< ![CDATA[
			import com.flexeando.multipleitemrenderers.render.FemeninoItemRender;
			import com.flexeando.multipleitemrenderers.render.MasculinoItemRender;
 
			import mx.collections.ArrayCollection;
			import mx.utils.ObjectProxy;
 
			[Bindable]
			private var arrDataProvider:ArrayCollection = new ArrayCollection();
 
			private var object:ObjectProxy;
 
			private function init():void
			{
				for (var i:uint = 0; i < 20; i++)
				{
					object = new ObjectProxy();
					object.name = "Nombre + " + i;
					object.lastName = "Apellido + " + i;
 
					if (i % 2 == 0)
						object.sexo = "H";
					else			
						object.sexo = "M";
 
					arrDataProvider.addItem(object);
				}
			}
 
			private function getItemRender(o:Object):IFactory
			{
				var clazz:Class;
 
				switch (o.sexo)
				{
					case "M":
						clazz = FemeninoItemRender;
						break;
					case "H":
						clazz = MasculinoItemRender;
						break;
				}
 
				return new ClassFactory(clazz);
			}
 
		]]>
	</fx:script>
 
	<s:datagroup height="600" width="100" 
				 dataProvider="{arrDataProvider}"
				 itemRenderer="com.flexeando.multipleitemrenderers.render.FemeninoItemRender"
				 itemRendererFunction="getItemRender">
		<s:layout>
			<s:verticallayout />
		</s:layout>
	</s:datagroup>
</s:group>

(más…)

Componente de búsqueda estilo Grooveshark

Viernes, septiembre 10, 2010

Me he vuelto muy fanático de Grooveshark, me gusta mucho su interfaz y la experiencia de usuario que brinda. Tiene componentes sencillos e interesantes que no es muy común ver en otras aplicaciones.

Me ha llamado mucho la atención uno de los campos de búsqueda (esquina superior izquierda), me agrada que esté ahí: es muy útil y su comportamiento esta muy bien solucionado.

Me tomé un tiempo para hacer el componente, tiene varias cosas que mejorar pero ya esta funcional, sin duda lo usaré en alguno de mis proyectos. Agrega una búsqueda y presiona enter ;-)

(más…)

Encontrar propiedad de objeto en un ArrayCollection

Lunes, enero 11, 2010

private function findPropertyAtArrayCollection(arrayCollection:ArrayCollection, object:Object):Number
{
	var n:Number = arrayCollection.length;
	var index:Number = -1;
 
	for(var i:uint = 0; i < n; i++)
	{
		if(object["uri"] == arrayCollection[i].uri)
			index = i;
	}
 
	return index;
}

Función para invertir una cadena

Martes, noviembre 17, 2009

private function invertirCadena(cadena:String):String
{
      // split("") : separa la cadena y la convierte en un array.
      // reverse() : invierte el array de manera automática.
     // join("") : Úne nuevamente la cadena para retornarla.
 
     return cadena.split("").reverse().join("");
}

Ir al cielo