windows vista telecharger acheter windows xp professional prix autocad 2006 telecharger adobe premiere pro francais preis microsoft office 2007 adobe flash cs4 preis achat windows 2000 günstig outlook 2007 prix cubase windows 7 preisvergleich heise office 2003 billig telecharger autocad lt 2010 preisvergleich dreamweaver sony vegas 9 preis cubase vollversion windows 2008 datacenter preis dreamweaver cs4 preis prix office 2008 preis windows 7 home premium preis office 2007 microsoft project kaufen windows vista ultimate preisvergleich preis acrobat professional autosketch kaufen preis windows 7 prof achat access 2003 microsoft access 2003 kaufen microsoft office download deutsch illustrator acheter achat photoshop cs solidworks 2009 prix autodesk inventor download deutsch autocad 2010 telecharger adobe indesign preisvergleich prix illustrator cs4 achat autocad 2004 office 2007 moins cher windows vista ultimate 64 bits achat 3ds max prix de windows 7 professionnel acheter archicad 12 dragon naturally speaking pas cher dreamweaver cs3 prix acheter photoshop 7.0 windows 7 home premium kaufen photoshop prix mac corel draw preisvergleich microsoft access prix mathcad 14 preis autocad 2010 preis pcanywhere prix prix pinnacle adobe illustrator cs4 vollversion outlook 2007 prix prix de microsoft project acheter microsoft outlook 2007 acheter windows 2000 pro microsoft word preis indesign cs4 download deutsch microsoft powerpoint preis windows 7 günstig downloaden preise photoshop cs4 prix adobe audition 3 prix de photoshop elements microsoft windows 7 prix acheter windows seven etudiant adobe illustrator cs3 download deutsch acheter vista basic acheter dreamweaver 8 acheter pinnacle studio 14 prix microsoft office professional 2007 prix autocad 2009 acheter photoshop cs3 occasion indesign cs4 français telecharger visual studio 2008 francais achat windows 7 meilleur prix preis windows 7 home premium upgrade corel draw x4 download deutsch acheter encarta 2009 windows 7 premium pas cher indesign achat windows xp professional preis achat microsoft visio acheter kaspersky internet security 2010 preis photoshop cs3 kaspersky internet security 2009 kaufen acheter windows 7 complet preise solidworks dreamweaver cs3 preis windows 7 home vollversion adobe cs5 francais lightroom preise windows 7 ultimate vollversion preise matlab prix cubase le 4 solidworks prix licence adobe fireworks kaufen acheter cubase 5 acheter adobe cs4 acheter lightroom 2 telecharger norton 360 francais preis vmware workstation 7 telecharger office 2010 francais adobe cs3 preis prix windows 7 64 bits adobe audition kaufen acheter windows 7 canada photoshop elements 8 prix acheter microsoft outlook 2003 preis word 2007 acheter autocad electrical preise cs4 acheter windows vista home basic telecharger cubase windows xp sp3 preisvergleich preis microsoft office 2007 solidworks kaufen preis nero 8 corel draw vollversion download office 2007 vollversion download prix omnipage sql server 2008 enterprise prix prix autocad inventor windows xp pro sp3 oem microsoft office 2007 kauf prix sony vegas illustrator cs5 kaufen dreamweaver acheter frontpage kaufen acheter pinnacle video capture for mac preisvergleich photoshop elements 8 windows xp kauf photoshop cs4 preise final cut express 4 kaufen windows 7 kaufen acheter adobe illustrator cs3 preis indesign cs3 illustrator günstig windows 7 home premium billiger nero 9 vollversion kaufen autocad 2010 preisliste autocad architecture 2009 kaufen telecharger windows seven french telecharger windows 7 francais dreamweaver cs5 prix windows vista home premium preise acheter corel draw x3 windows xp telechargementz acheter microsoft office 2010 matlab acheter photoshop elements 6 preis prix autocad architecture 2010 windows xp achat en ligne adobe cs5 vollversion windows 7 preis oem office 2010 preis inventor autodesk preis prix microsoft office 2007 standard acheter word 2007 adobe photoshop cs4 vollversion download preise autocad 2009 prix 3ds max 2010 microsoft powerpoint download deutsch prix kaspersky 2009 acheter windows 7 edition familiale indesign preise windows 7 ultimate kaufen windows 7 home premium preise 3ds max 2009 kaufen achat windows 7 starter adobe premiere pro cs4 download deutsch acheter adobe cs2 acheter microsoft money 2005 prix windows 7 etudiant microsoft office enterprise 2007 preis prix de illustrator telecharger windows vista 64 bits acheter after effect 7 microsoft windows 7 ultimate preis achat windows 7 pas cher windows 7 professional prix windows xp download deutsch word 2003 kaufen preis autocad lt adobe illustrator vollversion acheter windows 7 update photoshop elements 8 preisvergleich office 2007 etudiant prix acheter norton ghost 15 acheter autocad 2008 acheter office 2007 pro microsoft office 2003 kaufen excel 2003 kaufen cs3 prix prix autocad light prix guitar pro prix adobe flash cs4 windows 7 kauf download achat outlook seul microsoft outlook preis acheter adobe premiere elements adobe photoshop cs4 acheter microsoft office 2007 etudiant et famille microsoft office 2010 günstig windows 7 prix oem achat solidworks acheter windows 7 ultimate 64 windows vista preisvergleich cubase preise prix de windows xp visual studio preisvergleich windows 7 preisvergleich schweiz powerpoint vollversion telecharger windows 7 64 bits prix acrobat pro 9 acheter windows xp version boite windows xp pro acheter windows 7 preise versionen archicad 13 kaufen preis windows 7 family pack prix de photoshop achat windows 7 edition familiale premium adobe indesign cs5 preis windows 7 professional vollversion preis windows vista kaufpreis prix autocad 2009 adobe photoshop cs5 kaufpreis prix windows xp edition familiale adobe cs4 acheter prix solidworks 2010 seven windows prix telecharger dreamweaver cs4 after effects cs3 preis microsoft office 2010 download deutsch beta achat photoshop elements 7 prix de microsoft office 2009 preis windows 7 64 bit prix adobe creative suite 4 design premium acheter adobe photoshop acheter quarkxpress telecharger illustrator fr acheter vista pas cher acheter windows 7 aux usa telecharger adobe photoshop cs4 français windows 7 vollversion preis prix windows 7 suisse windows 7 ultimate prix telecharger windows 7 ultimate 32 bits autocad mechanical 2010 preis achat excel 2003 windows 7 vollversion oder upgrade telecharger adobe premiere pro cs3 norton ghost download deutsch pinnacle studio 14 preisvergleich télécharger autocad 2010 français windows 7 günstig kaufen nero preisvergleich windows 7 professionnel oem 32 bits adobe lightroom 2 prix acheter windows xp pro 64 bits acheter office 2007 en suisse windows 7 ultimate achat windows 7 prix microsoft office 2007 pme oem prix photoshop 7 acheter final cut express 4 acheter adobe flash cs3 dreamweaver vollversion download photoshop cs4 preis dragon naturally speaking preisvergleich windows 7 billiger.de microsoft visio download deutsch windows 7 ultimate billig acheter microsoft office pour windows 7 acheter indesign kaspersky internet security 2010 vollversion adobe indesign download deutsch acheter sql server 2008 achat adobe acrobat pro windows xp professional günstig kaufen acheter access 2003 adobe photoshop cs3 download deutsch prix acrobat standard acheter cubase 3 office 2003 prix acheter windows 7 premium acheter office 2003 telecharger word 2003 francais achat adobe photoshop cs5 telecharger photoshop filter windows 7 prix belgique acheter microsoft office en ligne windows 7 starter kaufen windows 7 professional kaufen windows 7 preis 2010 acheter windows vista home premium prix windows 7 acheter microsoft autoroute 2010 guitar pro 5 vollversion download windows 2003 preis maya preisig prix windows 7 integrale pcanywhere download deutsch outlook preis 3ds max 2010 preis achat powerpoint 2003 microsoft office 2003 preise autodesk maya kaufen sql server kaufen adobe premiere elements 8 kaufen acheter acrobat reader autocad electrical kaufen windows 7 pro download deutsch adobe photoshop cs3 preis preis omnipage prix de office 2007 microsoft works vollversion download prix premiere pro cs4 achat vmware workstation acheter sony vegas pro 9 acheter autodesk maya windows vista premium oem acheter adobe photoshop adobe premiere pro cs4 preis adobe after effect prix adobe captivate 3 download windows vista business kaufen sony vegas 9 download deutsch lightroom 2 preise adobe cs4 vollversion prix de frontpage acheter microsoft word 2009 microsoft money kaufen prix cs4 master collection telecharger kaspersky internet security 2010 fr prix windows 2008 r2 enterprise acheter windows 7 en ligne corel draw günstig acheter photoshop lightroom 2 acheter visual studio 2005 dreamweaver cs5 günstig microsoft outlook 2007 günstig acheter windows xp canada acheter adobe premiere pro cs5 adobe cs4 telecharger sql server 2008 enterprise preis prix cs4 photoshop quarkxpress preis prix windows vista prix powerpoint 2007 windows 7 kaufen student

Del uso de mx_internal

 Como ya he discutido antes, los componentes en el Flex SDK tienen propiedades, métodos y eventos que nos permiten manipular su apariencia y comportamiento. Por ejemplo, el siguiente mxml declara un botón con una leyenda y que ejecuta cierta función al clic.

   <mx:Button id="miboton" label="Presiona me" click="ejecutaFuncion()"/>

 

  Cada uno de los componentes en el Flex SDK tiene propiedades y métodos, tanto públicos, privados y protegidos. Esto es por su naturaleza Orientada a Objetos. Teniendo esto en consideración es posible modificar propiedades y métodos predefinidos sobrescribiendo (overriding) su definición. Para saber el alcance ( public, private o protected) de cada propiedad o método, y si son propios o heredados, recurrimos a la documentación de Flex (http://livedocs.adobe.com/flex/2/langref/). Ahí podemos ver las propiedades y su alcance.

   A como los componentes son mas sofisticados, encontramos que sus propiedades pueden provenir de un antecesor o están de otros componentes que son usados como parte de ellos, por ejemplo un Label dentro un Button.  Aun así, regularmente encontramos como cambiar cierta propiedad mirando la ayuda. Pero que pasa cuando esas propiedades no están disponibles? Por ejemplo, tomemos el dateChooser, el cual muestra en esencia un calendario. 
 

 Internamente el dateChooser esta haciendo uso de otros componentes Flex, y regularmente podemos hacer referencia a ellos para cambiarlos.  Por ejemplo los meses que por default están en Ingles pueden ser cambiados a Español como ya mostré en otra entrada. Sin embargo, digamos que queremos desaparecer los botones de avance y regreso de los meses. Tal vez queremos mostrar un mes en específico a la vez, y no queremos que el usuario tenga la opción de avanzar o regresar en meses.
Bueno curiosamente no existe una función o propiedad pública, privada o protegida que nos permita hacer referencia a tales botones. 
 Pero es claro que estos son dos buttons y que fueron declarados en algún lugar. Donde?. Bueno tomando una mirada a la clase original (DateChooser.as) se puede ver que si están declarados ambos botones: backMonthButton y fwdMonthButton.

 /**

* @private

* The internal Button which, when clicked,

* makes the DateChooser display the next month.

*/

mx_internal var fwdMonthButton:Button;

 

/**

* @private

* The internal Button which, when clicked,

* makes the DateChooser display the previous month.

*/

mx_internal var backMonthButton:Button;  


Entonces si están como variables en DateChooser, pero no como public, private o protected, sino como mx_internal. Esta declaración, mx_internal, es diseñada para declarar variables de las cuales se pensó no son necesarias para el programador. Aunque en el caso del DateChooser y estos botones, yo diría que deberían estar disponibles y así pudiéramos hacerlos invisible con algo como:  

miDateChooser.backMonthButton.visible=false;

  Pero si hay una manera de accesarlos, usando el mismo mx_internal, podemos hacer referencia a dichas propiedades.

Esta seria una clase que extiende el DateChooser pero que esconde los botones de avance y regreso del mes usando mx_internal.

//DateChooserNoMonthButtons.as bajo fólder skins
package skins

{

import mx.controls.DateChooser;import mx.core.mx_internal;

// Paso 1: Usar decirle a ActionScript que use el namespace mx_internal

use namespace mx_internal; 

          public class DateChooserNoMonthButtons extends DateChooser

          {

                     override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{      

                                         super.updateDisplayList(unscaledWidth, unscaledHeight);

                     // Usar la sintaxis this.mx_internal:: para hacer referencia a propiedades bajo el namespace mx_internal

                                        this.mx_internal::fwdMonthButton.visible=false;                    

                                        this.mx_internal::backMonthButton.visible=false;

                 }

       }

}

Y se puede usar asi

 

<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:calendario="skins.*">

       <calendario:DateChooserNoMonthButtons />

</mx:Application> 

 

Con un resultado como este:

 
 

Hola AIR! Adobe AIR Tour Bus es en Boston hoy!

   En un par de minutos parto hacia el Artists for Humanity EpiCenter aqui en Boston para las conferencias sobre Adobe AIR como parte del Tour en los Estados Unidos:

                        http://onair.adobe.com/schedule/cities/boston.php

  Estoy lleno de preguntas para el Ryan Stewart y Mike Chambers con respecto a Adobe AIR. No solo tecnicas pero tambien sobre la vision que tienen sobre el uso de AIR.

  Ya voy de salida, pero estare reportando desde el lugar, o en una entrada posterior para darles a saber mi experiencia.

  Por lo pronto los dejo con unos videos sobre el AIR tour que Ryan Stewart subio a su canal personal en Brightcove:

        http://www.brightcove.com/channel.jsp?channel=1138212696 

Saludos desde Boston donde se siente un AIR-e a todo dar!

Y donde esta Oscar? Aftermixing en Brightcove

 Han sido ya seis excitantes meses desde que me uní a Brightcove. Desde entonces he estado colaborando en la creación de una aplicación Flex que promete bastante. Me refiero a Aftermix. Aftermix es un editor de video que permite mezclar música, video y fotografías, ya sea del Internet o propias.

Aftermix ha estado hasta el momento ofrecido como una Beta privada, sin embargo ya se ha estado colando información sobre ella en el Internet. Y no es que sea un supersecreto, el mismo Jeremy Allaire ya ha hecho demostraciones de la misma, pero dado su estado Beta aun esta sujeto a muchas mejoras y solo ha estado disponible para una audiencia pre-seleccionada.

Sin embargo sitios como Mashable ya han sacado Aftermix a la luz. Para la comunidad Flex, tal vez sea hoy el día que marque su debut en el radar de muchos desarrolladores interesados en lo que se puede lograr con Flex, ya que mi colega - y unos de sus creadores, Brian Deitte - estará presentando Aftermix in 360Flex en Seattle hoy. Go Brian!

  Si alguien esta interesado en recibir una invitación para usar Aftermix y saber más, dejen un comentario en esta entrada con su correo electrónico y su nombre. Yo me haré cargo de que se les otorgue una invitación. Pueden ver algunos de los ejemplos de lo algunos han creado con Aftermix aqui!

      Vaya que son muy buenos tiempos para ser un Flex Developer!

Saludos desde Boston donde los sentidos se mezclan con Aftermix! 

 El siguiente video fue creado con Aftermix:

Recursos sobre ActionScript 3 en Español

 Una de las barreras para aprender Flex y ActionScript es que casi todo el material esta escrito en Ingles. Aunque un programador esta mas interesado en el codigo de los ejemplos, siempre es bueno leer el material disponible en Español. A como madura el mercado en Latino America y España cada vemos mas sitios estan  generando tutoriales y comentando sobre la tecnologia. Sin embargo, la documentacion oficial es una base primordial para aprender la teoria.

 Los siguientes enlaces son la documentacion oficial de Adobe para ActionScript 3 en español.  Como podran ver, los primeros dos pueden aplicarse directamente a Flex. Recuerden que el framework Flex fue construido en ActionScript 3.

  •   Sobre Flex

           http://www.adobe.com/es/products/flex/

           http://www.adobe.com/es/products/flex/productinfo/faq/flex2_faq.html

         

Usando labelField, labelFunction con XML en un ComboBox

Por default cuando datos son asignados al dataProvider de un combo box, este busca por dos atributos dentro los elementos de datos: el label y data. Lo contenido en el atributo label es lo que finalmente es desplegado en la lista, y data es accesible via selectedItem.data. Sin embargo, la mayoría de las veces nuestras fuentes de datos no tienen la información etiquetada de esa forma. Digamos por ejemplo que queremos mostrar la lista de Mascotas contenidas en el siguiente XML:

private var misMascotas : XML = <WSResult>   <Resultado>       <Mascotas>          <Id>001</Id>                                               <Nombre>Gato</Nombre>   

      </Mascotas>

      <Mascotas> 

          <Id>002</Id> 

          <Nombre>Perro</Nombre> 

      </Mascotas>  

 </Resultado>    

</WSResult> 

En este caso se nos presentan tres cuestiones a solucionar, no tenemos label o data como parte de los atributos en nuestro XML y los datos en los que estamos interesados ( <Mascotas> ) esta en un subnivel en nuestro XML. Entonces como hacemos que el combo box despliegue los nombres de las mascotas en el combo box?  Bueno para eso que el combo box cuenta con dos opciones para que manipular que atributo o atributos usar para lo que se despliega en esta lista. Estas son labelField y labelFunction. El primero simplemente le indica al combo box cual el nombre del atributo a usar en vez de label. En este ejemplo ya que queremos mostrar el nombre de la mascota, el cual es el atributo Nombre en el XML, este seria labelField=”Nombre”.  Por supuesto esto es valido si usamos la notación punto para acceder al nivel de XML que nos interesa, en este caso <Mascotas>. En sintaxis de AS3 esto seria: misMascotas.Resultado.Mascotas

En otras instancias es necesario desplegar en el combo box una combinación o concatenación de varios de los atributos. Por ejemplo, tal vez queremos desplegar el Id y Nombre de nuestras mascotas concatenado. Para esto puede ser usada el atributo labelFunction, el cual permite ejecutar una función que puede acceder a los atributos de los datos en el dataProvider y regresar dicha concatenación o combinación.

Un ejemplo completo de todo lo anterior es la siguiente aplicación. La cual muestra como usar un subnivel del XML como dataProvider para el combo box y el uso de labelField y labelFuncion.

<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

<mx:Script>

<![CDATA[

 

import mx.controls.Alert;import mx.events.ListEvent;

 

[Bindable]

private var misMascotas : XML =

<WSResult>

      <Resultado>

             <Mascotas>

                   <Id>001</Id>

                   <Nombre>Gato</Nombre>

           </Mascotas>

            <Mascotas>

                    <Id>002</Id>

                   <Nombre>Perro</Nombre>

            </Mascotas>

</Resultado>

</WSResult> ;

 

// Se llama cuando el usuario cambia de opcion en el combo box

private function getPetName ( event: ListEvent) : void

{

 

mx.controls.Alert.show("Hello I'm "+ myCombo.selectedItem.Id+" "+ myCombo.selectedItem.Nombre, "Mensaje");

}

 

// Funcion usada en labelFunction

// Concatena el Id y el Nombre para desplegar algo como : 001 Gato

private function getIDName(oItem : Object): String

{

return oItem.Id + " " + oItem.Nombre;

}

]]>

</mx:Script>

 

<mx:ComboBox id="myCombo" x="10" y="50" labelField="Nombre" dataProvider="{misMascotas.Resultado.Mascotas}"

change="getPetName(event)" />

 

<mx:ComboBox id="myCombo2" x="200" y="50" labelFunction="getIDName" dataProvider="{misMascotas.Resultado.Mascotas}"/>

 

</mx:Application>

Introduccion al manejo de Eventos en Flex

Como explique en una entrada anterior, el framework Flex es sinónimo de una colección de clases escritas enteramente en ActionScript, e incluye controles, contenedores, y gestores diseñados para la simplificar la construcción de aplicaciones sofisticadas para el Internet o RIA por su nombre en inglés ( Rich Internet Applications). A estos controles, contenedores o gestores, se les puede cambiar sus propiedades para obtener un comportamiento o apariencia especifica. De hecho en lo que probablemente mas se tarda alguien que esta aprendiendo Flex es en aprender la cantidad masiva de propiedades y métodos disponibles en todos los componentes y como usarlos. Por si solos los componentes Flex no crean una aplicación, es decir tienen que comunicarse unos con otros para responder a la interacción con el usuario y así representar una aplicación. El ingrediente que permite tal comunicación son los eventos o Events. Cada componente además de propiedades o métodos también tiene eventos predefinidos. Por ejemplo un botón (Button) tiene un evento click que se dispara cuando el usuario pulsa el botón en pantalla. A su vez, podemos crear nuestros propios eventos usando ActionScript, lo cual es común cuando queremos que dos o más componentes se comuniquen y necesitan intercambiar datos. El entendimiento de cómo funcionan y como usar eventos en Flex es una importante base para diseñar aplicaciones con una buena arquitectura. Principalmente para el re-uso de componentes. Aunque Flex permite hacer referencia a propiedades públicas de otros componentes dentro de otro componente, esta práctica no es buena por que este tipo de componentes no pueden ser extraídos para su uso en otra aplicación. A su vez entender como funcionan los eventos nos permite entender el comportamiento asíncrono de Flex con lo que a llamadas a data services se refiere (WebServices, Remote Object, http etc). Como todo en Flex, los eventos están basados en clases de ActionScript. En este caso, cada evento tiene un flujo con ciertos actores. Lo siguiente es una descripción simplificada de tales actores y su función:

  1. Dispatcher: El objeto que es manipulado por el usuario y que dispara el evento. No olvidemos de que además de que los eventos son disparados automáticamente como respuesta a una acción del usuario también podemos dispararlos manualmente con ActionScript. ( Ver el uso de dispatchEvent en el ejemplo)
  2. Event object : Este es un objeto creado de acuerdo al tipo de acción generada y es el elemento que toma información del dispatcher para compartirla con otros componentes. Por ejemplo, el clic de un botón dispara un evento cuyo tipo es MouseEvent, el cual tiene asociado un event object con información sobre tal evento, este podría contener un objeto con propiedades indicando las coordenadas X y Y donde el usuario hizo clic, así como una referencia al dispatcher.
  3. Listeners: Objetos que escuchan y responden a dichos eventos, es decir, son los objetos que están registrados para tomar una acción cuando cierto evento es disparado en algún otro objeto.

La secuencia es sencilla: a) un objeto dispara un evento, b) el cual es representado como un tipo de object event y que entonces esta disponible para los listeners de tal tipo de evento, c) los listeners ejecutan una acción como respuesta al evento, donde pueden o no usar datos enviados por el dispatcher.Nótese que pueden ser más de unos los objetos listeners que respondan a cierto evento.

Veamos un ejemplo en MXML de lo anterior, que es la manera mas usada de responder a un evento en el mismo componente:

 
<mx:Script>
        <![CDATA[
            import flash.events.MouseEvent;
        
            private function manejadorClick ( event:MouseEvent ):void
            {
                trace( "Hola Mundo!");
            }
        ]]>
    </mx:Script>      
   <mx:Button id="miBoton" label="Presioname!" click=" manejadorClick(event);" />
 

En este ejemplo, se define un manejador para el evento click de un botón.  Cuando el usuario hace clic en el, el manejador para el evento

despliega el mensaje ‘Hola Mundo!’ en la consola a través de la función trace.Como también ya he mencionado antes, MXML es una vía corta que nos salva de teclear mucho del código ActionScript. En este caso, aunque no lo veamos declarado en AS, el Listener es la aplicación o componente que contenga al botón, el botón es el dispatcher y el event object es del tipo MouseEvent. Internamente este MXML hace uso de las clases de ActionScript para declarar el event object,  disparar el evento y declarar el objeto que escuche por dicho evento. Para verlo mas claramente veamos el mismo ejemplo pero ahora usando ActionScript.

<?xml version="1.0" encoding="utf-8"?>
<mx:Application 
    xmlns:mx="http://www.adobe.com/2006/mxml"      
    horizontalAlign="center" verticalAlign="middle" 
    width="300" height="200"
    creationComplete="manejadorCreationComplete (event);"> 
    <mx:Script>
        <![CDATA[
            import flash.events.MouseEvent;
            import mx.events.FlexEvent;
            private function manejadorCreationComplete (event:FlexEvent):void
            {
                // Escucha por el evento click event en el botón.
                miBoton.addEventListener (MouseEvent.CLICK, manejadorClick);
            }        
            private function manejadorClick ( event:Event ):void
            {
              miEtiqueta.text = "Hola Mundo!";
            }     
        ]]>
    </mx:Script>             

    <mx:Panel title="Mi aplicacion" horizontalAlign="center"
        paddingTop="10" paddingBottom="10" paddingLeft="10" paddingRight="10"    >
        <mx:Label id="miEtiqueta" width="180" fontWeight="bold" fontSize="24"/>
        <mx:Button id="miBoton" label="Presioname!" />
    </mx:Panel>
</mx:Application>

Esta vez hemos registrado el manejador para el evento usando la función addEventListener. Esto quiere decir que las siguientes dos líneas de código hacen lo mismo: miBoton.addEventListener (MouseEvent.CLICK, manejadorClick); Es lo mismo que click="manejadorClick(event);" dentro de

        <mx:Button id="miBoton" click="manejadorClick(event);" />         

El conocimiento del papel que juegan los Eventos en Flex es muy importante para el desarrollo de componentes. Lo presentado aquí es la idea

básica del manejo de eventos, pero aun hay más, como su propagación, sus fases, y su programación adecuada para el manejo de memoria. Pero eso lo dejaremos para más adelante.

Saludos desde Boston, una ciudad llena de Eventos!

Usando el comboBox en Flex, switch statement y mas

Este es un breve ejemplo de como usar el comboBox, detectar cuando se ha cambiado de seleccion y usar un switch statement para inicializar una variable de acuerdo al valor seleccionado. Tambien muestra como usar dataBinding para llenar el comboBox usando un ArrayCollection.

<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

<mx:Script>

<![CDATA[

import mx.controls.Alert;

import mx.events.ListEvent;

import mx.collections.ArrayCollection;

 

[Bindable]private var myPets : ArrayCollection;

 

private function createDP() : void

{

myPets = new ArrayCollection();

 

// Addiciona dos elementos al ArrayCollection

var oItem : Object;

 

oItem = new Object();oItem.name = 'dog';

oItem.id =1;

myPets.addItem(oItem);

oItem = new Object();oItem.name = 'cat';

oItem.id =2;

myPets.addItem(oItem);

 

oItem = new Object();oItem.name = 'fish';

oItem.id =3;

myPets.addItem(oItem);

 

// Usar el arrayCollection como dataProvider en el comboBox

myCombo.dataProvider=myPets;

}

 

private function getPetName ( event: ListEvent) : void

{

var miSonido : String;

// Dependiendo de la seleccion asignamos un sonido.

switch ( myCombo.selectedItem.name )

{

case 'dog':

miSonido ="guau, guau!"

break; case 'cat':

miSonido ="meow, meow!"

break; case 'fish':

miSonido ="glup, glup!"

break;

}

 

mx.controls.Alert.show("Hello I'm a " + myCombo.selectedItem.name + " "+miSonido, "Mensaje");

}

]]>

</mx:Script>

<mx:ComboBox id="myCombo" creationComplete="createDP()" labelField="name" change="getPetName(event)"/>

</mx:Application>

google

google

asus