Comunidad de diseño web y desarrollo en internet online

Error en tutorial: Conectar Flex, PHP, MySQL y WebORB para n

Citar            
MensajeEscrito el 24 Abr 2008 09:30 am
Muy buenas,

He seguido el tutorial al pie de la letra y una vez cargado el swf y pulsar sobre Obtener, me salta la venta de trazas de Flash y me dice que:
TypeError: Error #1034: Error de conversión forzada: no se puede convertir []@1400e079 en mx.collections.ArrayCollection.

Según parece se produce en la sentencia:

Código :

private function onResult(event:ResultEvent):void{
                    usuarios = ArrayCollection(event.result); 
                    //Es necesario convertir el "result" a un ArrayCollection (Eso se llama hacer cast)
                    //Asignamos al ArrayCollection, 
                    //la colección de objetos de 
                    //transporte recibidos desde WebORB.
                }


¿Sabéis a que puede ser debido? He buscado por los foros y he visto gente con problemas con el mismo tuto pero no exactamente como el mio.

Agradezco vuestra ayuda.
Salu2

Por villanuev4

4 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Abr 2008 10:32 am
No he leído ese tuto, pero asegúrate que event.result tenga algo (es decir se devuelvan datos)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 24 Abr 2008 05:38 pm
claro, el error es q tu envias otro tipo de dato distinto al ArrayCollection y no puede castearlo, si te es muy complejo, puedes hacer q ese event sea del tipo ArrayCollection (en caso extremo)

intenta primero ver q estas recibiendo con un

Código :

trace(event, event.result);

Por eldervaz

BOFH

10964 de clabLevel

39 tutoriales
56 articulos

Genero:Masculino  

en algún lugar del mundo

firefox
Citar            
MensajeEscrito el 24 Abr 2008 07:53 pm

eldervaz escribió:

claro, el error es q tu envias otro tipo de dato distinto al ArrayCollection y no puede castearlo, si te es muy complejo, puedes hacer q ese event sea del tipo ArrayCollection (en caso extremo)

intenta primero ver q estas recibiendo con un

Código :

trace(event, event.result);


Muchas gracias eldervaz, efectivamente el problema era al hacer el cast.

Al final buscando, rebuscando y volviendo a rebuscar, lo he resuelto de la siguiente forma (por si se quiere sustituir en el tuto)

He sustituido la linea:

Código :

usuarios = ArrayCollection(event.result);

por:

Código :

usuarios = new ArrayCollection(ArrayUtil.toArray(event.result));


event.result es "cargado" por el siguiente código php:

Código :

$respuesta = array ();
        //Array de datos a devolver.
        //De este modo nuestro ArrayCollection en Flex,
        //tendrá una serie de objectos con la propiedad "name"
        //para pasarle al DataGrid

        while ($row = mysql_fetch_object($rst))
        //Tomamos record a record y lo encapsulamos
        //en nuestro objeto de transporte
        {
            //Creación de los Objetos de Transporte
            $vo = new UsuarioVO();
            //Le añadimos a nuestro ValueObject el nombre obtenido de MySQL
            $vo->name = $row->name;

            //Añadimos a nuestro array el ValueObject creado
            $respuesta[] = $vo;
        }

        //Devolvemos el resultado hacia Flex
        return $respuesta;

Por villanuev4

4 de clabLevel



 

firefox

 

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