Comunidad de diseño web y desarrollo en internet online

Eventos en Flex!!

Citar            
MensajeEscrito el 16 May 2006 08:23 pm
8) Como no hay un Foro referente a Flex y AS3, planteare mi pregunta acá!! 8)

He estado jugando un poco con Flex, y he revisado un poco la documentación, pero no logro comprender bien, como funcionan los eventos.
Un ejemplo: Tengo un Componente List y quiero que al seleccionar uno de los Ítems, se cargue un texto en un TextArea, por decir algo.

PD: Por lo que pude ver en la documentación, es algo similar a los listener de flash, que construyes el evento y luego lo llamas o asocias al componentes para que realice esa acción cuando haces click sobre ítems, corríjanme si me equivoco!!; Que es muy probable que este equivocado!!!

Un Saludo, gracias!!! 8)

Por wasserfrauen

28 de clabLevel



 

Venezuela

firefox
Citar            
MensajeEscrito el 16 May 2006 08:49 pm
Hola espero te sirva para un inicio

Código :

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
   <mx:List x="77" y="50" height="241" id="list" width="170" enabled="true" change="{ponTexto();}">
   <mx:dataProvider>
      
   
   <mx:Array>
      <mx:String> Sandy</mx:String>
      <mx:String> Sandy1 </mx:String>
   </mx:Array>
   </mx:dataProvider>
   </mx:List>
   <mx:TextInput x="287" y="164" id="texto"/>
   <mx:Script>
      <![CDATA[
         function ponTexto(){
            texto.text = list.selectedItem.toString();
         }
      ]]>
   </mx:Script>
</mx:Application>


saludos

Por Zandy

Claber

1345 de clabLevel

5 tutoriales

Genero:Masculino   Premio_Secretos

firefox
Citar            
MensajeEscrito el 16 May 2006 09:02 pm
Efectivamente, al usar 'change' como un atributo XML del componente List, queda programado el detector de eventos de una forma mucho más fácil que en AS2 tal como lo ves en el ejemplo de Sandy. Creo que funciona en forma idéntica para los otros componentes basados en listas, es decir, Combobox y DataGrid. Saludos.

Por EdilbertoO

23 de clabLevel



Genero:Masculino  

Colombia

firefox
Citar            
MensajeEscrito el 16 May 2006 09:04 pm
O, de la forma en que tu predecias

Código :

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="crea_tu_listener()">
   <mx:List x="10" y="10" height="241" id="list" width="170" enabled="true">
   <mx:dataProvider>
      
   
   <mx:Array>
      <mx:String> Sandy</mx:String>
      <mx:String> Frank </mx:String>
   </mx:Array>
   </mx:dataProvider>
   </mx:List>
   <mx:Script>
      <![CDATA[
         
         
         function objE(e:MouseEvent):void{
            textA.text = list.selectedItem.toString();
         }
         
         function crea_tu_listener():void{
         list.addEventListener(MouseEvent.CLICK,objE,false,0);
         }
      ]]>
   </mx:Script>
   <mx:TextArea x="188" y="14" width="288" height="318" id="textA"/>
</mx:Application>


saludos

Por Zandy

Claber

1345 de clabLevel

5 tutoriales

Genero:Masculino   Premio_Secretos

firefox
Citar            
MensajeEscrito el 16 May 2006 09:37 pm
Excelente. Ambas formas ofrecen el mismo rendimiento? . Aprovecho para tratar de resolver algo: he tenido problemas al intentar acceder a datos locales en mi pc desde Flex2, he podido hacerlo con WebServices remotos y no tengo el inconveniente de 'violación de seguridad' que me marca en la ejecución. Estoy usando el ejercicio propuesto por Freddie en su conferencia Flex2. La cosa es, obviamente hacerlo en forma local. Puse un 'crossdomain' en la ruta de mi servicio para autorizar, además tengo todos los archivos en la misma carpeta en el servidor, pero tampoco me funciona. Este es el error :

Código :

[RPC Fault faultString="Security error accessing url" faultCode="Channel.Security.Error" faultDetail="Destination: DefaultHTTP"]
   at mx.rpc::AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal::faultHandler()
   at mx.rpc::Responder/fault()
   at mx.rpc::AsyncRequest/fault()
   at ::DirectHTTPMessageResponder/securityErrorHandler()
   at flash.events::EventDispatcher/dispatchEvent()
   at flash.net::URLLoader/flash.net:URLLoader::redirectEvent()

Estoy usando Beta3,... que será? :crap:

Por EdilbertoO

23 de clabLevel



Genero:Masculino  

Colombia

firefox
Citar            
MensajeEscrito el 17 May 2006 08:00 pm
Edilberto realmente no se porque no te funciona, hace poco que trabajo con flex y al igual que tu estoy aprendiendo, pero a mi me esta pasando algo raro, Flex beta 3 dice que la propiedad result del objeto HTTPService no es valida ??. Sabes por cual la habran cambieado ?

saludos

Por Zandy

Claber

1345 de clabLevel

5 tutoriales

Genero:Masculino   Premio_Secretos

firefox
Citar            
MensajeEscrito el 17 May 2006 08:02 pm
Pues si, la propiedad result ahora es lastResult, vaya que estaba en los changelog de labs.adobe.com

saludos

Por Zandy

Claber

1345 de clabLevel

5 tutoriales

Genero:Masculino   Premio_Secretos

firefox
Citar            
MensajeEscrito el 19 May 2006 04:46 pm
Bueno, ahora que sabes lo del 'lastResult' avísame si con el Beta 3 puedes tener acceso a datos sin que te marque el error de seguridad como a mí. Como te dije, he podido acceder a WebServices remotos, pero a nivel local, nada... sigue el bendito error. Según la documentación, parece que es necesario una de estas tres cosas para evitar ese error:

- Tener el servicio de datos en el mismo dominio donde está el proyecto,
- Haber configurado un crossdomain.xml para autorizar el acceso a esos datos,
- Ó, configurar un proxy (esto no lo entiendo muy bien, o casi nada).

Yo hice, la más fácil, proyecto y datos en el mismo dominio. Como no me funcionó, cree el crossdomain, y :shock: tampoco... de ahí en adelante, decidí enviar a Adobe a [-censurado-].

Saludos. :lol:

Por EdilbertoO

23 de clabLevel



Genero:Masculino  

Colombia

firefox
Citar            
MensajeEscrito el 20 May 2006 12:21 am
Me acuerdo q en flash tambien habia un error similar para conectarse en remoto ... ummm.. y se solucionaba con solo una linea de codigo ... :) algo como System.Security.allowDomain .. seguro es lo mismo en flex.. Aun no llego a esa parte.. jijijiji :lol: :lol: :lol:
Pd: Prontooo con buenas nuevas ... esperooo :) :)
P1 : Me esta quedando corta mi RAM de 512 .. snif snif... noooooohhh :cry: :cry:

Por davo25

183 de clabLevel



 

Lima - Peru

msie
Citar            
MensajeEscrito el 22 May 2006 12:40 pm
Bueno , realmente no se que puede estar pasandote, yo puedo acceder a datos remotos , en una red local, de todas maneras prueba ponerle useProxy="true" a la etiqueta de HTTPServices o WebService.

saludos ^^

Por Zandy

Claber

1345 de clabLevel

5 tutoriales

Genero:Masculino   Premio_Secretos

firefox
Citar            
MensajeEscrito el 25 May 2006 09:07 pm
Saludos, gracias por sus respuestas me sirvieron de mucho. 8) :lol: :lol: :lol:

Ahora les cuento, en la conferencia de Freddy el utilizo HTTPServices para realizar una consulta a una BD de MySQL atravez de PHP que le generaba un XML...bla, bla, bla...
ya todo eso ustedes lo saben, la cosa es que yo quiero hacer lo mismo pero mis datos están en un XML, no en una base de datos. Mi inquietud es como puedo hacer la consulta de esos datos!!! :lol: :lol: :lol:

Por wasserfrauen

28 de clabLevel



 

Venezuela

firefox
Citar            
MensajeEscrito el 25 May 2006 11:20 pm
Es lo mismo, wasserfrauen, en el HTTPService le pasas la URL (Absoluta o relativa) de tu XML y ya

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

firefox
Citar            
MensajeEscrito el 30 May 2006 08:59 pm
:crap: Me surgio un error: "Access of possibly undefined property result through a reference with static type mx.rpc.http.mxml:HTTPService." :? :(

Por wasserfrauen

28 de clabLevel



 

Venezuela

firefox
Citar            
MensajeEscrito el 31 May 2006 12:23 am
Pon codigo o es imposible ayudarte

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

firefox
Citar            
MensajeEscrito el 31 May 2006 02:18 pm
Esto es lo que tengo:

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:HTTPService id="servicio" url="xml/db.xml"/>
<mx:Panel layout="absolute" left="30" top="30" bottom="100" right="30">
<mx:DataGrid x="10" y="90" height="340" width="596" dataProvider="{servicio.result.datos.datos}">
<mx:columns>
<mx:DataGridColumn headerText="Nombre" dataField="Nombre"/>
<mx:DataGridColumn headerText="Edad" dataField="Edad"/>
<mx:DataGridColumn headerText="Estatura" dataField="Estatura"/>
</mx:columns>
</mx:DataGrid>
<mx:Button x="235" y="10" label="Buscar" click="servicio.send();"/>
<mx:TextInput x="67" y="10" id="nombre"/>
<mx:Label x="10" y="12" text="Jugador"/>
</mx:Panel>
</mx:Application>

el error me lo da relacionado con el DataGrid.

Por wasserfrauen

28 de clabLevel



 

Venezuela

firefox
Citar            
MensajeEscrito el 31 May 2006 02:30 pm
cambia result por lastResult

Por Zandy

Claber

1345 de clabLevel

5 tutoriales

Genero:Masculino   Premio_Secretos

firefox
Citar            
MensajeEscrito el 06 Jun 2006 09:02 pm
:lol: :lol: :lol: Saludos, por fin pude retomar esto.

Al cambiar result por lastResult evidentemente se cargan los datos en el dataGird, pero mi pregunta con respecto a como hacer la consulta(o búsqueda) de esos datos, he leído por ahí que la tecnología Xpath serviría para ello, pero también vi que Flex incorpora E4X que es una tecnología mas poderosa para realizar consultas o búsquedas en un XML.

Bueno saludos, espero me puedan orientar en esto!!! :lol: :lol: :lol:

Por wasserfrauen

28 de clabLevel



 

Venezuela

firefox
Citar            
MensajeEscrito el 16 Oct 2007 01:48 am
Hola estube viendo estos recortes de codigo y estan fabulosos, pero tengo un problema, no puedo cargar mi propio archivo XML...por las dudas les paso el codigo y el XML...

Saludos.

Codigo

Código :

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:HTTPService id="servicio" url="bin/datos.xml"/>
<mx:Panel layout="absolute" left="30" top="30" bottom="100" right="30">
<mx:DataGrid x="10" y="90" height="340" width="596" dataProvider="{servicio.lastResult.datos}">
<mx:columns>
<mx:DataGridColumn headerText="Nombre" dataField="asunto"/>
<mx:DataGridColumn headerText="Edad" dataField="correo"/>
<mx:DataGridColumn headerText="Estatura" dataField="remitente"/>
</mx:columns>
</mx:DataGrid>
<mx:Button x="235" y="10" label="Buscar" click="servicio.send();"/>
<mx:TextInput x="67" y="10" id="nombre"/>
<mx:Label x="10" y="12" text="Jugador"/>
</mx:Panel>
</mx:WindowedApplication>


XML

Código :

<?xml version="1.0" encoding="utf-8"?>
<mensaje>
    <asunto>Aviso de suspensión</asunto>
    <correo>[email protected]</correo>
    <cuerpo>Su servicio sera suspendido a partir de la fecha</cuerpo>
    <remitente>[email protected]</remitente>
</mensaje>


Gracias por las sugerencias.

Saludos.

Por razor7

26 de clabLevel



 

Argentina

firefox
Citar            
MensajeEscrito el 16 Oct 2007 04:36 am
razor7
tienes que cambiar el dataProvider de esta forma: dataProvider="{servicio.lastResult.mensaje}

Por wasserfrauen

28 de clabLevel



 

Venezuela

firefox
Citar            
MensajeEscrito el 16 Oct 2007 03:32 pm
Hola, realice ese cambio pero sigue sin andar...:( , el archivo es el que postee anteriormente y esta dentro de la carpeta "bin" del proyecto.

Código :

<mx:HTTPService id="servicio" url="bin\datos.xml"/>
<mx:Panel layout="absolute" top="49" right="107" left="107" bottom="69">
<mx:DataGrid x="10" y="10" height="163" width="300" dataProvider="{servicio.lastResult.mensaje}">
<mx:columns>
<mx:DataGridColumn headerText="Nombre" dataField="asunto"/>
</mx:columns>
</mx:DataGrid>
<!--<mx:Button x="235" y="10" label="Buscar" click="servicio.send();"/> 
<mx:TextInput x="67" y="10" id="nombre"/>
<mx:Label x="10" y="12" text="Jugador"/>-->
</mx:Panel>


Estoy usando FlexBuilder 3 milestone 3 beta 2

Gracias por las sugerencias...!!

Por razor7

26 de clabLevel



 

Argentina

firefox
Citar            
MensajeEscrito el 16 Oct 2007 04:33 pm
Ok no me había fijado en ese detalle, crea un folder(carpeta) en la raíz de tu proyecto llámala por ejemplo XML y alli coloca el .xml en cuestión que tiene los datos.

Saludos!!

Por wasserfrauen

28 de clabLevel



 

Venezuela

firefox
Citar            
MensajeEscrito el 16 Oct 2007 04:48 pm
Hola, he creado la carpeta "data" y puse ahi dentro el archivo datos.xml y no hay caso tampoco...


Alguna otra sugerencia?

Gracias.


Código :

<mx:HTTPService id="servicio" url="data\datos.xml"/>
<mx:Panel layout="absolute" top="49" right="107" left="107" bottom="69">
<mx:DataGrid x="10" y="10" height="163" width="300" dataProvider="{servicio.lastResult.mensaje}">
<mx:columns>
<mx:DataGridColumn headerText="Nombre" dataField="asunto"/>
</mx:columns>
</mx:DataGrid>
<!--<mx:Button x="235" y="10" label="Buscar" click="servicio.send();"/> 
<mx:TextInput x="67" y="10" id="nombre"/>
<mx:Label x="10" y="12" text="Jugador"/>-->
</mx:Panel>

Por razor7

26 de clabLevel



 

Argentina

firefox
Citar            
MensajeEscrito el 16 Oct 2007 05:52 pm
Bueno de verdad no se a menos que sea un bug del versión beta que estas usando, yo tome tu código y lo corrí con las modificaciones que te sugerí y corre perfectamente.
Al hacer click en el botón buscar los datos se envían al datagrid sin inconveniente alguno

Código :

?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
   <mx:HTTPService id="servicio" url="XML/datos.xml"/>
   <mx:Panel layout="absolute" left="30" top="30" bottom="100" right="30">
   <mx:DataGrid x="10" y="90" height="340" width="596" dataProvider="{servicio.lastResult.mensaje}">
      <mx:columns>
         <mx:DataGridColumn headerText="Nombre" dataField="asunto"/>
         <mx:DataGridColumn headerText="Edad" dataField="correo"/>
         <mx:DataGridColumn headerText="Estatura" dataField="remitente"/>
      </mx:columns>
   </mx:DataGrid>
   <mx:Button x="235" y="10" label="Buscar" click="servicio.send();"/>
   <mx:TextInput x="67" y="10" id="nombre"/>
   <mx:Label x="10" y="12" text="Jugador"/>
   </mx:Panel>
</mx:Application>

Por wasserfrauen

28 de clabLevel



 

Venezuela

firefox
Citar            
MensajeEscrito el 16 Oct 2007 06:03 pm
Que cosa mas rara...a mi me sigue sin funcionar, copie y pegue el codigo que me pasaste y cree la carpeta XML y no hay caso...

Que version de flex usas?...tener AIR ?

Gracias.

Por razor7

26 de clabLevel



 

Argentina

firefox
Citar            
MensajeEscrito el 16 Oct 2007 06:20 pm
La versión 2.0.1 y si también tengo instalada la beta 2 de AIR!!

Por wasserfrauen

28 de clabLevel



 

Venezuela

firefox
Citar            
MensajeEscrito el 16 Oct 2007 08:05 pm
Ahhh...creo que ese seria el problema...no pude encontrar los plugins de AIR para Flex2 asique directamente me tire por flex 3...sabrias de algun lugar para descargar AIR y los plugins para que me funcione en flex2?

Gracias.

Por razor7

26 de clabLevel



 

Argentina

firefox
Citar            
MensajeEscrito el 16 Oct 2007 09:32 pm
Al final lo logre!!! el problema era un mal "url", el mismo se basa en la carpeta bin, asique mi carpeta XML debia estar dentro de bin y no dentro del root del proyecto.

Por otro lado, los datos nunca se hubieran cargado dado que nunca se ejecutaba el metodo Send del objeto HTTPservice.

Les adjunto el cofigo...

Código :

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"
   layout="absolute"
   horizontalAlign="center"
   verticalAlign="top" width="800" height="600"
   creationComplete="servicio.send()">

   <mx:HTTPService id="servicio" url="XML/datos.xml"/>
   <mx:Panel layout="absolute" left="30" top="30" bottom="100" right="30">
   <mx:DataGrid x="10" y="90" height="340" width="596" dataProvider="{servicio.lastResult.mensajes.mensaje}"/>
      <mx:Button x="235" y="10" label="Buscar" click="servicio.send();"/>
      <mx:TextInput x="67" y="10" id="nombre"/>
      <mx:Label x="10" y="12" text="Jugador"/>
   </mx:Panel>

   <mx:HTTPService id="sandData" url="assets/sandwichData.xml"/>
   <mx:DataGrid dataProvider="{sandData.lastResult.sandwichMenu.sandwich}"/>
</mx:WindowedApplication>

Por razor7

26 de clabLevel



 

Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.