Comunidad de diseño web y desarrollo en internet online

MenuBar +XML +Flex

Citar            
MensajeEscrito el 16 Feb 2007 06:45 am
Hola a todos!!

Como no vi algun foro de Flex decidi postear aqui pues he visto que en estos foros se habla mucho de flex aunque no hay un foro especifico, sería bueno crear uno.

En fin espero me puedan ayudar, ya llevo algunos dias en flex tratando de llenar un menubar con xml que se genera dinamicamente.

Lo que sucede es que esporadicamente lo llena pero si modifico el xml y vuelvo a ejecutar mi aplicacion nomas no actualiza, probe pasando mi carpeta bin a otra maquina y tampoco, asi que decidi crear un nuevo proyecto, cambiar de workspace y pegar el codigo y..... AAAAAA lo corri y ahora no desplegó nada!!!! :| revise el codigo y esta bien. Se los juro me estoy quedando sin cabellos y ya recorri muchos sites y no he encontrado nada que me pueda ayudar. Paso un tiempo volvi a correr el mismo archivo y corrio sin problemas, modifique el xml y se volvio a repetir el mismo comportamiento:shock:. El servidor donde radica el xml esta sobre https pero aun asi ya lo probe localmente con y sin https pensando que podria ser eso y nada :0(

Ojala alguien puiera ayudarme antes de que ponga este codigo en el libro de los grandes misterios :(:(:(

Espero me puedan apoyar, toy al borde de la locura jejejej:

Saludos
Y de antemano gracias por su atencion y tiempo que toman en leer y responder este correo

Yaka

Les anexo el codigo mxml.

Código :

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

 <mx:Application
     xmlns:mx="http://www.adobe.com/2006/mxml"
     layout="absolute"
     creationComplete="cargaMenu.send();"
     <mx:HTTPService
         id="cargaMenu"
         showBusyCursor="true"
         method="POST"
         url="https://localhost:8001/menu.xml"
         useProxy="false" result="httpResult(event)"
         </mx:HTTPService>
     <mx:Script>
         <![CDATA[
             import mx.rpc.events.ResultEvent;
             import mx.collections.XMLListCollection;
             import mx.collections.ArrayCollection;
             [Bindable]
                 public var datos:XMLListCollection;
                 private function httpResult(event:ResultEvent){
                 var listaMenu:XML = new XML(event.result);
                 datos = new ArrayCollection(listaMenu.Menu);
                 }
         ]]>
     </mx:Script>
     <mx:MenuBar
         x="10"
         y="10"
         width="608"
         id="menuA"
         dataProvider="{datos}"
  />
</mx:Application>



El xml es:

Código :

<menu>
 <menuitem label="nomas">
           <menuitem label="SubMenuItem A-1" enabled="False"/>
          <menuitem label="SubMenuItem A-2"/>
 </menuitem>
 <menuitem label="MenuItem B" type="check" selected="true">
      <menuitem label="SubMenuItem D-1" type="radio" groupName="one"/>
      <menuitem label="SubMenuItem D-2" type="radio" groupName="one"
 selected="true"/>
      <menuitem label="SubMenuItem D-3" type="radio" groupName="one"/>
 </menuitem>
 <menuitem label="MenuItem C" type="check" selected="false">
      <menuitem label="SubMenuItem D-1" type="radio" groupName="one"/>
      <menuitem label="SubMenuItem D-2" type="radio" groupName="one"
 selected="true"/>
      <menuitem label="SubMenuItem D-3" type="radio" groupName="one"/>
 </menuitem>
 <menuitem label="MenuItem D">
      <menuitem label="SubMenuItem D-1" type="radio" groupName="one"/>
      <menuitem label="SubMenuItem D-2" type="radio" groupName="one"
 selected="true"/>
      <menuitem label="SubMenuItem D-3" type="radio" groupName="one"/>
 </menuitem>
 </menu>


Y un detalle mas aun asi cuando corre o no me marca un error

Código :

Severity    Description    Resource    In Folder    Location
Creation
 Time    Id
 2    1067: Conversión implícita de un valor de tipo mx.collections:ArrayCollection a un tipo mx.collections:XMLListCollectionno relacionado. nomas2.mxml    nomas2    line 27    15 de febrero de 2007 18:25:09    37


Dudo que sea eso. en fin cuento con ustedes.... :| :zzz: :zzz: :shock:

Por Yacatematrix

2 de clabLevel



Genero:Masculino  



Ultima edición por Yacatematrix el 16 Feb 2007 07:04 pm, editado 2 veces

México D.F.

firefox
Citar            
MensajeEscrito el 16 Feb 2007 04:11 pm
Arghhh, es imposible leer así. Por favor, repite la pregunta si saltos de línea innecesarios y usando las etiquetas code para escribir código.

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 16 Feb 2007 06:13 pm

zah escribió:

Arghhh, es imposible leer así. Por favor, repite la pregunta si saltos de línea innecesarios y usando las etiquetas code para escribir código.
Mil disculpas zah!!! pero ya lo he editado. espero me puedas apoyar Saludos

Por Yacatematrix

2 de clabLevel



Genero:Masculino  

México D.F.

firefox
Citar            
MensajeEscrito el 16 Feb 2007 10:15 pm
El error es muy descriptivo: Declaras la variable como un tipo y le pides que sea otro. No sé si servirá, pero prueba a hacerlo así:

Código :

        [Bindable]
                 public var datos:ArrayCollection;
                 private function httpResult(event:ResultEvent){
                      var listaMenu:XML = new XML(event.result);
                      datos = listaMenu.Menu as ArrayCollection;
                 }

pd: Por favor, cambia el tamaño de tu firma: así se ve muy grande...

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 17 Feb 2007 12:34 am
Lo modifique como lo mencionaste pero me marca el siguiente error:

Código :


TypeError: Error #1034: Error de conversión forzada: no se puede convertir XMLList@eb13c69 en Array.
   at pantallaDinamica/::httpResult()
        at pantallaDinamica/__cargaMenu_result()
   at flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchEventFunction()
   at flash.events::EventDispatcher/dispatchEvent()
   at mx.rpc.http.mxml::HTTPService/http://www.adobe.com/2006/flex/mx/internal::dispatchRpcEvent()
   at mx.rpc::AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal::resultHandler()
   at mx.rpc::Responder/result()
   at mx.rpc::AsyncRequest/acknowledge()
   at ::DirectHTTPMessageResponder/completeHandler()
   at flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchEventFunction()
   at flash.events::EventDispatcher/dispatchEvent()
   at flash.net::URLLoader/flash.net:URLLoader::onComplete()


Asi que modifique los tipos:

Código :

         [Bindable]
            public var datos:XMLList
            private function httpResult(event:ResultEvent):void{
            var listaMenu:XML = new XML(event.result);
            datos = new XMLList(listaMenu.Menu);
            }


y aun asi lo ejecuto y me muestra el componente del MenuBar pero no se llena... =( tu como lo harias??, llenar un menubar desde un xml generado dinámicamente con un php

Saludos y gracias por tu ayuda

Por Yacatematrix

2 de clabLevel



Genero:Masculino  

México D.F.

firefox
Citar            
MensajeEscrito el 03 Mar 2007 04:03 am
hola.. mira yo mucho de xml no conosco solo lo basico pero mi preguntita es...
<menuitem label="nomas">
<menuitem label="SubMenuItem A-1" enabled="False"/>
<menuitem label="SubMenuItem A-2"/>
</menuitem>

el primer menuitem es como el principal q engloba a los otros q estan adentro, pero si llamas igual al q esta adentro de produce un kilombito no? ahora lo voy a probar a ver q pasa

Por demiantriebl

33 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Mar 2007 08:01 pm
Si, la idea es que cada menu tenga sus submenus.

Y disculpa mi ignoracia, pero no se que significa kilombito. espero me lo peudas aclarar.

Saludos!!!

Por Yacatematrix

2 de clabLevel



Genero:Masculino  

México D.F.

firefox
Citar            
MensajeEscrito el 09 May 2007 08:27 pm
La respuesta para poder crear un menú interactivo con PHP (usando ColdFusion hay otro método) sería algo así:

Código :

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="cargaMenu.send();">
   <mx:HTTPService id="cargaMenu" showBusyCursor="true" method="POST" url="http://aries/miMenu.php" 
      result="httpResult(event)" resultFormat="e4x"/>
<mx:Script>
<![CDATA[
   import mx.rpc.events.ResultEvent;
   import mx.collections.XMLListCollection;
   import mx.collections.ArrayCollection;
   [Bindable]
   public var datos:XMLList
   
   private function httpResult(event:ResultEvent):void{
      var miXML:XML;
      miXML = event.result as XML;
      datos = new XMLList(miXML.menuitem);
   }
]]>
</mx:Script>
<mx:MenuBar x="10" y="10" width="608" id="menuA" dataProvider="{datos}" labelField="@label"/>
</mx:Application>

Utilizando el XML del primer Post. A muchos se nos olvido la propiedad "resultFormat" que esta por default en object y debemos colocarlo como XML. Ojalá le sirva a alguien más esta respuesta.

Por zickedhelik

93 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 30 Jun 2007 05:36 pm
zickedhelik no sabes cuanto me costo este problemita...llevaba día y medio sin saber con que clase podía manipular unos datos antes de proveerlos a un componente en mi caso a un ComboBox. Le di vueltas hasta que encontré en la parte final de la pregunta tu tip. Te debo mil y una trasnochadas!!!

:o :) :D :lol:

Por vanvanero

246 de clabLevel


2 articulos

Genero:Masculino  

firefox

 

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