Facebook y API ActionScript

81 views
Skip to first unread message

Sgiraldo

unread,
Jun 15, 2009, 7:50:05 AM6/15/09
to ASNativos - Lista de Actionscript
Hola,

recientemente estoy trasteando por la API de Facebook que sacó Adobe
para poder interactuar con Facebook de una manera externa.

Todo va bien, pero estoy teniendo problemas con mi intención de hacer
un upload de un BitMapData de mi flash.

Hay alguien que tenga por la mano esta API y me pueda encender una luz
al final de mi túnel?


Gracias,

sergi.

Fede Rivas

unread,
Jun 15, 2009, 8:19:13 AM6/15/09
to asna...@googlegroups.com
Pero tienes creada una app para el propio FB, o lo que quieres es
simplemente guardar un bitmap de tu flash, y que el user pueda
publicarlo en el muro ?

Salu2!

Sgiraldo

unread,
Jun 15, 2009, 11:08:34 AM6/15/09
to ASNativos - Lista de Actionscript
la aplicación se conecta a través de Facebook Connect y ya está
usandose externamente para acceder a los datos del usuario conectado.

La intención es guardar una imagen capturada de la aplicación y
subirla a su perfil de Facebook.


sergi.

Fede Rivas

unread,
Jun 15, 2009, 2:12:45 PM6/15/09
to asna...@googlegroups.com
Bueenas. Vaya dia llevo ...

Yo no he usado la API, sino que he atacado directamente al sharer, al
que le pasas la URL de tu imagen y el titulo, de modo que el usuario
se logea en FB posteriormente para poder colocar en su muro.

Si usas la API, ya tienes las credenciales y tal, mas facil, pues
podras publicar directo al muro del user.

Para capturar imagen y hacer el upload, puedes mirarte esto, es
sencillo y funciona de maravilla :

http://www.quietless.com/kitchen/upload-bitmapdata-snapshot-to-server-in-as3/

Salu2!

Fede.

Sgiraldo

unread,
Jun 16, 2009, 2:07:01 AM6/16/09
to ASNativos - Lista de Actionscript
Buenas,

el tema de subir a un server ya lo tenía controlado... el problema es
"subir" la foto a los álbumes del usuario en FB.

Encontré un ejemplo y lo sigo, pero no sé si hay problemas de permisos
o alguna otra cosa que se me escapa.

Gracias!

Joseba Alonso

unread,
Jun 16, 2009, 5:36:15 AM6/16/09
to asna...@googlegroups.com
Yo no creo que puedas hacerlo por los temas de restricción del sandbox. Creo
que no te deja hacer un draw en una imagen de otro dominio. ¿Has mirado si
la url de la imagen que carga tiene un crossdomain.xml?

Un saludo,

Joseba

Daniel Gabana Arellano

unread,
Jul 2, 2009, 5:21:56 PM7/2/09
to asna...@googlegroups.com
Hola a todos,
He estado mirando este hilo por que tengo que usar Facebook Connect desde mi web, pero el problema que tengo es que la web está hecha en Actionscript 2... He estado buscando y no he encontrado nada que permita conectarlo con AS2, alguien sabe si esto es posible?

En el caso de que no lo sea, podría cargar un swf "de AS3" en una web "de AS2" ?? No creo que con un loadMovie o loadClip sea suficiente...

Muchas gracias!
--
Daniel Gabana // Nextep
www.nextepvision.com

xleon

unread,
Jul 3, 2009, 2:28:26 AM7/3/09
to asna...@googlegroups.com
Si capturas el la imagen cargada directamente peta, pero si capturas su contendor padre no.

Daniel Gabana Arellano

unread,
Jul 3, 2009, 6:59:32 AM7/3/09
to asna...@googlegroups.com
Como? xleon, nose si esta respuesta iba para mi o no...

De todas formas, he buscado y creo que para AS2 no hay nada hecho. Encontré un proyecto pero el desarrollador lo abandonó por la obsolencia de AS2.

He estado investigando en cómo conectar mi web con Facebook Connect, y creo que hay que "suscribirse" a Facebook antes para que valide tu web como amiga y le deje acceder a su base de datos...es esto correcto ? alguien lo sabe? Creo que el Facebook Connect abre un popup en tu web en el que el usuario mete su nombre y contraseña y tras validarlo, ya puedes acceder a toda la información del usuario en Facebook..... Todo esto son suposiciones, nose si estoy en lo correcto.

Alguien me hecha un cable, mano o manopla ??

Gracias!!!!

Joseba Alonso

unread,
Jul 3, 2009, 7:14:19 AM7/3/09
to asna...@googlegroups.com
El funcionamiento que comentas es correcto. Pero en AS2 como que la llevas clara... Lo unico que se me ocurre es que en el HTML metas una peli de AS3 oculta que realice el proceso y luego envíe los datos via LocalConnection a la de AS2. Es feo y te dará problemas, pero es tu única posibilidad.

Un saludo,

Joseba

Daniel Gabana Arellano

unread,
Jul 3, 2009, 7:32:27 AM7/3/09
to asna...@googlegroups.com
Al final la solución va a ser sacar al usuario de la web y meterla en otro HTML con un flash con AS3. Me he bajado la librería de Facebook que permite comunicarlo con Flash, pero no se si es suficiente para empezar a trabajar o me tengo que bajar también la API en cuestión (estoy un poco perdido).

He estado mirando un poco y he encontrado esto:
http://stream.microsite.be/cecemel/
y creo que debería tener algo más para que te salte el popup del principio para que el usuario se loge. Sabeis donde puedo encontrar esa API ? No sé si el popup que salta lo debo programar yo con las clases que me bajé o necesito la API...

También me gustaría preguntar si sabeis si necesito parte de backend para desarrollar esto. Me han comentado que Flash hace una llamada a un PHP el cual se conecta con Facebook para hacer los cambios o subir las fotos que quiera... o tal vez eso se haga directamente desde el Flash...

Gracias!!!!!

Javier Fernández Montes

unread,
Jul 3, 2009, 1:14:58 PM7/3/09
to asna...@googlegroups.com
Buenas Daniel, no he comentado nada porque la verdad es que no tengo
ni idea de cómo hacer lo que quieres hacer, no conozco ningún
workaround para meter as3 en as2, pero como te veo algo perdido en
algunos aspectos básicos, te cuento mi experiencia por si te sirve de
algo.

Lo primero que tienes que hacer es tener una cuenta en facebook, e
instalarte la aplicación "desarrollador"[1]
Ahí ya puedes darle a "configurar una aplicación nueva" y tener acceso
al panel de control de aplicaciones de desarolladores, donde entre
muchas opciones de configuración, te da un id de aplicación, una clave
api y un código "secreto". También tendrás que definir el dominio
donde va a estar alojada la aplicación.

Estos datos son imprescindibles para cualquier cosa, ya que
independientemente de la api que uses, tendrás que enviarselos a
facebook, el cual los contrastará con el dominio que has registrado en
la aplicación, haciendo una consulta a un html (xd_receiver), que vas
a tener que poner en el servidor.

Una vez hecho esto, ya puedes empezar con la api, que es lo realmente
dificil.

No hay forma de saber qué se puede y no se puede hacer, yo por ejemplo
estuve 3 días dando vueltas en círculo por toda la documentación y
ejemplos y no fui capaz de enviar una simple invitación a un grupo, se
tuvo que quedar en una notificación. :(

Lo de las apis es un mundo, yo después de mirar la recién sacada por
entonces en adobe labs en as3[2], y un bridge as3 que había hecho un
tipo[3] basandose en la js y ExternalInterface, hice un mix. La de
adobe me obligaba a logar en una ventana completa (incluso me pareció
que en la misma ventana, y una vez logado volvías al flash) lo que no
me gustaba nada, mientras que la js abría una capa html de facebook
sobre el flash, lo que me gustaba bastante más.

Ahora que lo pienso quizás podrías mirar el bridge de as3-js y tratar
de hacer algo parecido llamando a js desde as2, pero debe ser una
machada ;-)

En fin, no se si te ayudo, pero ahí queda. Ve tirando de los enlaces y
buscando ejemplos (acabaras navegando en círculos, ya te aviso)
Tienes más documentación en facebook[4], en adobe developer
connection[5], y la api actionscript en googlecode[6]

Un saludo

[1] http://www.facebook.com/developers
[2] http://code.google.com/p/facebook-actionscript-api/
[3] http://www.wellconsidered.be/2009/01/04/facebook-connect-to-actionscript-3/
[4] http://wiki.developers.facebook.com/index.php/Main_Page
[5] http://www.adobe.com/devnet/facebook/
[6] http://code.google.com/p/facebook-actionscript-api/


Javier Fernández :: Drus Unlimited™
listas[at]drusunlimited[dot]com
http://drusunlimited.com

insomnius

unread,
Jul 9, 2009, 4:47:48 AM7/9/09
to ASNativos - Lista de Actionscript
Yo estoy intentando "logar" con una capa encima del flash en lugar de
en una página aparte. En el ejemplo que he visto el html tiene la
llamada al javascript:
<script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/
FeatureLoader.js.php" type="text/javascript"></script>

y debajo de la llamada al swf han puesto:
fbInit("flashcontent", "5003be9a216f1f70f814aa2e289bc058",
"xd_receiver.htm");
Que por lo que he leído se corresponde con la llamada al javascript...

¿Pero cómo se llama la función a la que llamo por External interface
desde el botón de Empezar del flash?

Saludos

. ¿Alguien sabe cómo se ll

On 3 jul, 19:14, Javier Fernández Montes <lis...@drusunlimited.com>
wrote:
> [3]http://www.wellconsidered.be/2009/01/04/facebook-connect-to-actionscr...
> [4]http://wiki.developers.facebook.com/index.php/Main_Page
> [5]http://www.adobe.com/devnet/facebook/
> [6]http://code.google.com/p/facebook-actionscript-api/
>
>      Javier Fernández :: Drus Unlimited™
>      listas[at]drusunlimited[dot]com
>      http://drusunlimited.com
>
> El 03/07/2009, a las 13:32, Daniel Gabana Arellano escribió:
>
>
>
> > Al final la solución va a ser sacar al usuario de la web y meterla  
> > en otro HTML con un flash con AS3. Me he bajado la librería de  
> > Facebook que permite comunicarlo con Flash, pero no se si es  
> > suficiente para empezar a trabajar o me tengo que bajar también la  
> > API en cuestión (estoy un poco perdido).
>
> > He estado mirando un poco y he encontrado esto:
> >http://stream.microsite.be/cecemel/
> > y creo que debería tener algo más para que te salte el popup del  
> > principio para que el usuario se loge. Sabeis donde puedo encontrar  
> > esa API ? No sé si el popup que salta lo debo programar yo con las  
> > clases que me bajé o necesito la API...
>
> > También me gustaría preguntar si sabeis si necesito parte de backend  
> > para desarrollar esto. Me han comentado que Flash hace una llamada a  
> > un PHP el cual se conecta con Facebook para hacer los cambios o  
> > subir las fotos que quiera... o tal vez eso se haga directamente  
> > desde el Flash...
>
> > Gracias!!!!!
>
> > El 3 de julio de 2009 13:14, Joseba Alonso <jalo...@5dms.com>  
> > escribió:
> > El funcionamiento que comentas es correcto. Pero en AS2 como que la  
> > llevas clara... Lo unico que se me ocurre es que en el HTML metas  
> > una peli de AS3 oculta que realice el proceso y luego envíe los  
> > datos via LocalConnection a la de AS2. Es feo y te dará problemas,  
> > pero es tu única posibilidad.
>
> > Un saludo,
>
> > Joseba
>
> > On 03/07/09 12:59, "Daniel Gabana Arellano" <gabana....@gmail.com>  
> > wrote:
>
> > Como? xleon, nose si esta respuesta iba para mi o no...
>
> > De todas formas, he buscado y creo que para AS2 no hay nada hecho.  
> > Encontré un proyecto pero el desarrollador lo abandonó por la  
> > obsolencia de AS2.
>
> > He estado investigando en cómo conectar mi web con Facebook Connect,  
> > y creo que hay que "suscribirse" a Facebook antes para que valide tu  
> > web como amiga y le deje acceder a su base de datos...es esto  
> > correcto ? alguien lo sabe? Creo que el Facebook Connect abre un  
> > popup en tu web en el que el usuario mete su nombre y contraseña y  
> > tras validarlo, ya puedes acceder a toda la información del usuario  
> > en Facebook..... Todo esto son suposiciones, nose si estoy en lo  
> > correcto.
>
> > Alguien me hecha un cable, mano o manopla ??
>
> > Gracias!!!!
>
> > El 3 de julio de 2009 08:28, xleon <malan...@gmail.com> escribió:
> > Si capturas el la imagen cargada directamente peta, pero si capturas  
> > su contendor padre no.
>
> > El 16 de junio de 2009 11:36, Joseba Alonso <jalo...@5dms.com>  
> > escribió:
>
> > Yo no creo que puedas hacerlo por los temas de restricción del  
> > sandbox. Creo
> > que no te deja hacer un draw en una imagen de otro dominio. ¿Has  
> > mirado si
> > la url de la imagen que carga tiene un crossdomain.xml?
>
> > Un saludo,
>
> > Joseba
>

Comet!

unread,
Jul 9, 2009, 6:03:27 AM7/9/09
to ASNativos - Lista de Actionscript
Mi experiencia es la siguiente:

Primero seguí los tutoriales de InsideRia pero la mitad no iban en
Flash (por ejemplo usando el .swc no me tira bien)
Inside Ria - Facebook Application Development,
http://www.insideria.com/series-facebook-dev.html

Luego estuve también dando vueltas por la documentación de Facebook
pero está todo bastante lioso
Al final conseguí hacer un par de juegos utilizando el iFrame (no
FBML), es bastante fácil, haces el juego en AS3, lo cuelgas en un
sitio, te das de alta como developer en Facebook y creas la
aplicación.
Puedes seguir este tuto: http://gathadams.com/2007/06/18/how-to-write-a-facebook-application-in-10-minutes/

Facebook Connect también lo estuve mirando. Es lo mismo sólo que en
vez de que el usuario entre a través de Facebook, lo hace a traves de
la página que sea (del cliente, tuya, etc.), y desde ahí se conecta.

Todo esto con Flash, yo creo que con Flex es más fácil, al menos la
conexión.
De AS2 nada, ni lo intentes, todo en AS3, y mejor que sea así. Aunque
yo he visto cosas que conectan AS3 con AS2, sí, no en Facebook, en
otras apps, no sé si te funcionaría.

Vamos, para hacer un post por lo menos...

Javier Fernández Montes

unread,
Jul 9, 2009, 7:21:39 PM7/9/09
to asna...@googlegroups.com
Pues la verdad es que no se decirte, yo use un bridge js-as3
http://www.wellconsidered.be/2009/01/04/facebook-connect-to-actionscript-3/

Ahí puede descargar un ejemplo, quizás puedas destriparlo y averiguar
las llamadas, pero si no tienes el problema del as2 yo me tiraría de
cabeza a usar algo hecho porque el tema tiene miga.

Un saludo

Javier Fernández :: Drus Unlimited™
listas[at]drusunlimited[dot]com
http://drusunlimited.com

xleon

unread,
Jul 9, 2009, 9:01:56 PM7/9/09
to asna...@googlegroups.com
Hay muy buenos tutos y ejemplos en la web de Adobe, eso si, para Flex, que están hechos ademas por gSkinner

xleon

unread,
Jul 9, 2009, 9:03:58 PM7/9/09
to asna...@googlegroups.com
¿Por qué nadie usa Flex aqui?
A veces si necesitas cosas potentes de Flex, pero toda tu aplicación es Flash, puedes meterla enterita dentro de un contender Flex y usar las bondades de éste último. Es muy sencillo.

xleon

unread,
Jul 9, 2009, 9:05:38 PM7/9/09
to asna...@googlegroups.com
Inclulso añadir el swc del framework de flex a tu proyecto "solo ActionScript", y usar muchas historias que con Flash seria un lio de madre. Me refiero a clases de lógica, no de vista ni contenedores, etc, como por ejemplo, todo lo que hace falta para servicios web, remoting, facebook, etc, etc

insomnius

unread,
Jul 10, 2009, 5:19:56 AM7/10/09
to ASNativos - Lista de Actionscript
¿y dónde me tiro a algo hecho con la api flash de fb? Los ejemplos que
he visto tratan los temas de las peticiones de datos, pero no he
encontrado explicación alguna de la parte del login en la misma
página. Siempre me salta una ventana nueva.

Saludos

On 10 jul, 01:21, Javier Fernández Montes <lis...@drusunlimited.com>
wrote:
> Pues la verdad es que no se decirte, yo use un bridge js-as3http://www.wellconsidered.be/2009/01/04/facebook-connect-to-actionscr...

Daniel Gabana Arellano

unread,
Jul 10, 2009, 5:35:08 AM7/10/09
to asna...@googlegroups.com
Hola de nuevo!

Yo en el curro he estado desarrollando Facebook Connect desde un site en Flash. La verdad que he acabado muy muy parecido a como me decía Javier ( Drus Unlimited ), he usado todos los links que me pasó, aunque ya los había encontrado yo... Al final conseguí conectar desde Flash con AS3 a Facebook (aunque abriendo una nueva ventana para que el usuario se loge) y cojer todos los datos del usuario, pero me quedé atrancado cuando quise mandar solicitudes como por ejemplo para cambiar el estado (status)... me daba un fallo ( que no encontraba el metodo setStatus, tal y como lo había encontrado en un ejemplo). El caso es que me volví loco y, como me dijo Javier, dando vueltas en circulo llendo de un sitio a otro, leyendome mil veces la documentación, pero sin sacar nada en claro realmente... Creo que esta API de Facebook Connect no está muy pensada para Flash, puesto que casi todos los ejemplos y tutoriales están para HTML/JS y lo que hay con ActionScript estan hechos en Flex... que bueno, puedes sacar el código AS de ahi, pero al fin y al cabo no  es lo mismo....

Por otra parte, xleon, creo que no usamos Flex por que realmente no sabemos. Mi primer contacto fué con este proyecto ( aunque decidí no iniciarme en un nuevo programa) y me quedé flipando cuando vi un archivo .mxml
 
Al final acabamos abandonando el proyecto por su complegidad y que el esfuerzo no iva a a ser  compensado... es decir, q al fin y al cabo los usuarios no lo van a usar mucho....

Salud!

xleon

unread,
Jul 10, 2009, 7:11:44 AM7/10/09
to asna...@googlegroups.com
No se, la verdad no entiendo tanto miedo a Flex, en el fondo es puro ActionScript. El mxml es lo más útil que te puedas imaginar. Solo hay que ponerse unos días para entenderlo. Yo no puedo vivir sin él. De verdad te ahorra mucho tiempo, pero como todo, hay que aprenderlo antes.

Javier Fernández Montes

unread,
Jul 10, 2009, 9:48:40 AM7/10/09
to asna...@googlegroups.com
Jejeje, xleon, yo lo del facebook lo acabé haciendo en flex, y cargando el swf en una web flash.
Solo por los componentes ya merece la pena, pero la verdad es que da un poco de miedo meterse, hasta que te das cuenta de que es más de lo mismo, AS3 puro y duro.

Un saludo

xleon

unread,
Jul 10, 2009, 10:49:07 AM7/10/09
to asna...@googlegroups.com
Por ejemplo, con un simple ViewStack (o anidaciones del mismo) y el BrowserManager, te haces un "Gaia" con toda la navegación solucionada en cuestión de minutos.

xleon

unread,
Jul 10, 2009, 10:50:16 AM7/10/09
to asna...@googlegroups.com
Ahora que lo pienso, me extraña que no exista un símil del Gaia hecho con Flex

Javier Fernández Montes

unread,
Jul 10, 2009, 6:05:29 PM7/10/09
to asna...@googlegroups.com
Hombre, no olvides que el framework pesa, y mucho. Lo que te da merece
la pena, pero no todo el mundo ni todos los proyectos pueden
permitirse 500kb en componentes. Y la verdad es que es una lástima, ya
querría yo un editor visual para que me colocara todos mis componentes
sin tener que ir haciéndolo a mano.

Por otro lado ya que estamos, y aunque me vaya un poco del tema, hasta
donde yo he llegado he visto que en el momento en que el proyecto se
acompleja, la comunicación entre clases resulta infernal (supongo que
ahí entra en juego caingorn) y me recuerda sospechosamente a cuando
picaba en procedural y abusaba del root, aunque en este caso se llame
Application.application. :-P

Pero efectivamente no deja de ser AS3, y de hecho cualquier ejemplo en
Flex te puede valer de mucho para un trabajo actionscript, y viceversa.

Un saludo

Javier Fernández :: Drus Unlimited™
listas[at]drusunlimited[dot]com
http://drusunlimited.com

xleon

unread,
Jul 10, 2009, 10:43:05 PM7/10/09
to asna...@googlegroups.com
No estoy deacuerdo Javier.
Cuando haces una release del proyecto (project > build release) el framework se queda en menos de 300 kb. Si además usas RSL externa, puedes cachearlo y solo se cargará la primera vez, o con el primer módulo de tu aplicación.
¿Qué son 300 kb hoy en día? de 1 a 3 segundos como mucho muchísimo.

Sobre la comunicación de clases no creo que sea una cuestión Flash/Flex, es tu forma de programar. Aunque si quieres flipar, por ejemplo mírate el MATE (mucho mas sencillo que Caingorm) y mira como fluyen los eventos de un sitio a otro de forma muy natural, y sin escribir una sola linea en ActionScript. Es un pasote. Da igual lo mucho que crezca tu aplicación (bueno, ejem, esto es relativo)

Sobre el root o Application.application creo que es una mala práctica y bastante ñapa. En esta lista se ha hablado mucho de ese tema últimamente, variables estáticas, Singletons, etc, etc.

Lo que si he notado es que en Flex por algún motivo las animaciones (por lo menos las de componentes visuales del framework) no son tan fluidas como cuando trabajas con simples Sprites o MovieClips.

Flex tambien te invita mucho a embeber mil cosas, por eso hay mucha tendendia a que las aplicaciones crezcan demasiado. Pero para eso están los módulos y las precargas dinámicas de toda la vida.

Los módulos es algo que no se puede hacer con Flash. Es decir, son piezas que están dentro de tu mismo proyecto y comunicándose con otras partes de éste, pero al compilar, Flex te los separa en distintos swf. Con Flash necesitas una aplicación para cada swf.

¿Hacemos otro post? Esto ya no tiene nada que ver con Facebook

Javier Fernández Montes

unread,
Jul 11, 2009, 5:10:59 PM7/11/09
to asna...@googlegroups.com
Empiezo por cambiar el topic porque realmente no estamos yendo del
tema original.

No me extraña que no estés de acuerdo, porque tienes muchísima razón :)

Hasta ahora solo había observado una mejora en el peso de unas 4kb en
proyectos actionscript, por lo que había desestimado completamente el
hacer la release, pero ya veo que en proyectos flex merece la pena, y
mucho. Gracias por el dato.
En cuanto al RSL de momento no me ha sido necesario porque
habitualmente hago cosas relativamente pequeñas y con optimizar los
módulos para la aplicación principal me había bastado, pero me lo
apunto para el futuro porque por lo que veo es muy interesante.

Y ahora vamos al tema del nuevo topic...

Lo del MATE suena realmente bien, tengo que echarle un vistazo, pero
ahí le has dado: la necesidad de usar otro framework (además del de
flex) o utilidad para funcionar como hasta ahora. Yo actualmente no
uso root ni de lejos (por eso me chirría el Application.application) y
trato de centrarme en programar orientado a objetos, usando para la
comunicación el fabuloso modelo de eventos que nos ha dado as3, lo más
MVC que me entra en la cabeza (aún me queda, la C no la he encontrado
todavía), y siguiendo estos métodos tengo verdaderos problemas en los
pocos proyectos mxml que hago para comunicar las clases.

No me cabe duda que es por mi falta de experiencia al respecto (lo que
he hecho en mxml ha sido por gusto y curiosidad), pero igualmente veo
que es un escollo bastante gordo para que la gente que hace AS "de
toda la vida" haga mxml, aunque al final venga a ser lo mismo.

La curva de aprendizaje al principio es vertiginosa, porque de hecho
el framework te da hechas un montón de cosas increíbles -como el
drag&drop entre componentes-, pero a medida que vas avanzando la
dificultad se incrementa exponencialmente. Y aunque es facilísimo
extender todo porque está muy bien hecho, te exige mucho.

Lo de las animaciones yo también lo he observado, supongo que al usar
un framework como este nunca sabes cuánto del framework estás metiendo
en tu componente, ni de qué forma está haciendo las animaciones. Y
creo que esa pérdida de control es bastante crítica.

Pero es que además hay cosas que lo hacen bastante antinatural. Por
ejemplo cuando hago estados y veo en el mxml "setProperty" se me ponen
los pelos como escarpias, por lo menos desde mi punto de vista huele a
ñapa.

Supongo que tendré que darle más caña, pero ahí volvemos al problema,
tenemos que estar constantemente al día entre revisiones del lenguaje,
librerías, frameworks, y APIs, y flex con el mxml es otro reto más,
pero parece completamente innecesario.

Pasar de as2 a as3 ha sido un parto para mi que me ha tocado por fin
pasar de procedural a POO -aunque ya tocaba sin duda- pero es que ya
se está haciendo costumbre encontrarme con APE o Box2D, PV3D, FMS,
Gaia o las malditas APIs de flickr-youtube-googlemaps-facebook (o lo
que se le ocurra a la agencia para sacarle la pasta al cliente a base
de implementar tecnología cuando no tiene ni pizca de creatividad)

Vale, este último párrafo ha sido por despotricar, pero es que
últimamente me tienen frito y me parece que las APIs se han vuelto
contra nosotros.

Cambiando de tema, xleon, ¿vas al subflash? :)

Javier Fernández :: Drus Unlimited™
listas[at]drusunlimited[dot]com
http://drusunlimited.com

xleon

unread,
Jul 11, 2009, 6:12:50 PM7/11/09
to asna...@googlegroups.com
Hombre, yo no lo veo tan complicado como lo cuentas.
Las cosas cuando no las sabes, parecen muy lejanas y liosas, pero en el fondo no lo es tanto.
Flex da dolores de cabeza como cualquier otra cosa, tiene sus bugs y sus inexplicables movidillas que te pueden amargar ciertas horitas de tu vida.
Pero al final vale la pena, por lo menos desde mi punto de vista.
Como siempre he dicho, cada herramienta es para lo que es. No hay que usar Flex porque sí, sino en las ocasiones que haga falta.
Pero por ejemplo, una simple web con 5 pantallas, con transiciones entre ellas, con swf adress, con SEO incluido, y contenidos "normales", se me hace mucho más fácil programar en Flex pero si tienes que hacer una web con fuegos artificiales y objetos volando en 3d por todo el monitor, pues tal vez Flex no te sirva para nada, todo hay que decirlo.
A mi no me gusta abusar de los estados. Solo creo un par de ellos para el evento "show" y "hide" de cada sección, y lo dimás tiro con un ViewStack, o varios ViewStack anidados, que son perfectos para un MVC.

Ejemplo concreto de navegación ActionScript:

Clase manager de navegación
Clase sección (yo metía los efectos de transición dentro de la propia sección, lo que me llevaba bastante tiempo)
Menú que se comunica con el manager de navegación (hay que tener cuidado con el estado de los botones para que se quede marcado el de la sección actual)
Dicho manager de navegación podía ser tela, en función del proyecto (ya los he sufrido mucho aquí y aquí, sobre todo por temas de deeplinking)

Ejemplo concreto de navegación con Flex:
Navegación = ViewStak (un par de lineas de mxml)
Contenidos. Los contenidos son componentes que anidas de la forma más lógica dentro del ViewStack, los cuáles con interpretados como pantallas o vistas automáticamente.
Efectos de transciones aplicados a las pantallas = Un par de States (unas 5 lineas de mxml) si usas los mismos para todas las pantallas.
Ventajas = DataBinding, que es lo más potente que tiene Flex. Si el modelo de datos de tu aplicación supongamos que tenga una propiedad "seccionActual=0", con cambiar el varlor a 1, 2, etc. automáticamente se produciría la transición a la sección correspondiente sin hacer nada más. Creo que eso no tiene precio.
Si además tienes una bontonera "bindeada" con esa misma variable "seccionActual", cuando pinches en un item del menú, la variable "SeccionActual" cambiará sola, evitandote programar una sola linea para navegar.

Como estos ejemplos te podría dar otros muchos igual de prácticos.

Sobre los frameworks:

Sí, hay muchas APIS, muchos frameworks, y muchos recursos que te pueden volver loco si quieres aprenderlos todos, pero dudo que sea necesario, y de todas formas, da gracias a Dios de que existan, y no te los tengas que crear tú y buscarte la vida cuando un cliente te pida una rallada de la que nunca habías oido hablar. Creo que la comunidad opensource de Flash/Flex es impresionante, y que sin ella los que nos dedicamos a esto no seriamos nadie (exepto algunos iluminados entre los que no me incluyo).

No hace falta usar MATE, ni PureMVC, ni leches para hacer una aplicación tocha. Yo aprendí Flex de golpe y porrazo cuando mi compa Carlos Serrano (tambien en esta lista) y yo decidimos un día que era lo mejor para un proyecto que apareció. Con dos cojones y unos cuantos días investigando el tema nos dimos cuenta de que estábamos en lo cierto. Aquí puedes ver el resultado: www.maskedummies.com. Es un proyecto necesita mantenimiento y cambios constantes, cosa que a través de los módulos se hace bastante fácil, ya que ciertos contenidos son bastante sencillos y cualquier programador o diseñador puede generarlos.
Yo no considero Flex como un framework (aunque sí es un framework de componentes) sino más bien como una herramienta. Usar otro framework por encima de éste, no es complicarte la vida (según cuál jeje), sino todo lo contrario. Eso sí, implica unos dias empapándote el tema.

Flex tiene su propio framework de remoting, cosa que para mí es fundamental. Remoting con Flash requiere mucho más código. Si quieres te pongo dos ejemplos para que veas la diferencia...
En aplicaciones que tengan mucho intercambio de datos con servidores, ya sea remoting, webservices, peticiones http, etc, creo que Flex gana sin lugar a dudas.

No soy partidario de usarlo para todo, pero cuando empiezo un nuevo proyecto, hago un proyecto Flex en el FlexBuilder, si luego necesito Sprites y MovieClips, también se lo puedes añadir. A veces partes de la interfaz las hacemos con Flash, porque suelen quedar más bonitas y mejor animadas que si te pones a skinear un componente en Flex, por eso digo que todo tiene su medida, y el truco está en aprovechar cada cosa para su punto fuerte.

Siempre he querido ir al Subflash, pero por unas cosas y por otras, siempre me he quedado sin entrada, o no he podido ir =P

xleon

unread,
Jul 11, 2009, 7:23:51 PM7/11/09
to asna...@googlegroups.com
Por cierto, se me olvida decirte. Cuando haces una release el rendimiento de la aplicación mejora una pasada. Lo aprendí haciendo cosas con Papervision dónde los FPS son críticos, y ahora lo hago para todo.

xleon

unread,
Jul 11, 2009, 7:25:57 PM7/11/09
to asna...@googlegroups.com
Como siempre, me voy acordando por partes...
Al hacer una relase le estás diciendo al compilador que se cargue todo lo relacionado en el debugg, además de otras cosas que afectan al rendimiento.
En realidad la release se trata de un argumento de compilador, que tú mismo puedes añadir en las propiedades del proyecto, sin tener que hacer la release.
Pero en definitiva, es solo un detalle.

Javier Fernández Montes

unread,
Jul 11, 2009, 8:00:28 PM7/11/09
to asna...@googlegroups.com
Juer, solo puedo decirte "gracias", me has dado unos consejos
estupendos, y tienes un puñado de argumentos muy buenos ;-)

Lo de la release, después de lo que comentas del rendimiento, va a ser
pecado mortal no hacerlo.

Lo de que gracias a las apis, no estoy tan seguro, el cliente pide lo
que ve, y desgraciadamente los creativos de las agencias se alimentan
de lo que ven por internet en un 99%. Lo que no se puede hacer no se
puede hacer y punto, pero si han visto que _algo_ se puede hacer ya es
muy diferente discutirlo.
Y las apis de la web 2.0, dejan mucho que desear, vamos yo creo que
con la de facebook se podría incluso crear un perfil específico de
desarrollador, porque de un día para otro salen deprecated y hay que
ser un santo gurú para entender eso.

Los ejemplos comparativos que pones yo los veo bastante claros, y
estoy muy de acuerdo contigo, flex gana por goleada, pero ojo para
maquear luego eso con un creativo de por medio, que te puedes volver
loco. :-P

Ahora solo queda que los que no hacen mxml expliquen por qué no lo
hacen, al fin y al cabo, a pesar de las dificultades por lo menos yo
he tratado de hacer algo[1] :)

Por si alguien le ha quedado alguna duda, mxml es actionscript, y por
tanto cualquier ejemplo mxml te puede valer para saber como hacer algo
en AS3.

[1] http://drusunlimited.com/labo/AMF/Wall_MXML_List_itemRenderer/
(Por cierto, que ahí puedes ver el "último escollo" que me encontré. y
no fui capaz de solucionar... esos malditos gaps)

Javier Fernández :: Drus Unlimited™
listas[at]drusunlimited[dot]com
http://drusunlimited.com

xleon

unread,
Jul 11, 2009, 11:46:49 PM7/11/09
to asna...@googlegroups.com
Me alegro que lo veas así, porque de nada sirve hacer una lucha Flex/Flash. Cada uno al final hace lo que quiere.
Está claro lo que dices de los creativos, y yo diría que un 99.9% de la "creatividad" sale de lo que han visto por ahí...
Como me dijo una pintora amiga mia, la creatividad como tal no existe. Cualquier cosa que pienses que has creado no es mas que una conjunción de experiencias e impresiones vividas anteriormente. El gran "creador" es el que sabe unirlas de la mejor manera y en el mejor momento...

El tema de la maquetación:
Si alguien formara a los diseñadores para skinear componentes de Flex, la vida sería mucho más sencilla. Tal vez ahora con Catalyst y Gumbo la cosa cambie. Pero cierto que es que aún así, nunca les dará tanta libertad como te la da Flash, donde prácticamente puedes hacer cualquier cosa. En lo referente a lo visual y la animación, Flash es mucho más adecuado y potente que Flex, eso nadie te lo puede negar.

Cierto tambien que algunas APIS crean perfiles específicos. He visto muchas ofertas de curro (ojo, no en España) que buscan perfiles para 3D, para juegos, para Facebook, etc, todo dentro de Flash me refiero. El ejemplo del 3D es lo más parecido a lo que comentas. Hace falta estar actualizado casi a diario, consecuencia de la forma en que Flash evoluciona, y su poco tiempo como lenguaje POO, que comparado con otros lenguajes deja mucho que desear. Pero eso es otro tema que no viene el caso.

Y una última aclaración. Mxml en realidad no es ActionScript, es XML a secas. Solo que el compilador de Adobe (mxmlc) lo interpreta de tal forma que genera el mismo bytecode que con ActionScript (que alguien me corrija si me equivoco). Pero vamos, se podría decir que un componente MXML representa una clase ActionScript. De hecho si mirais el código fuente, todos los componentes de Flex son clases e interfaces de AS3.

Javier Fernández Montes

unread,
Jul 12, 2009, 6:08:04 AM7/12/09
to asna...@googlegroups.com
Pues yo lo veo una capa más, y al decompilar una peli mxml ves
perfectamente todas las clases que comentas de flex, y de hecho
cualquier clase "flash" que extienda de movieclip o sprite la puedes
convertir en un componente flex con hacer que extienda de canvas por
ejemplo.

No se, para mí es lo mismo, está claro que mxml es xml, pero desde mi
punto de vista para usar el editor visual y poco más. El componente
que te comento que puedes haber creado con extender canvas, lo vas a
añadir y a posicionar con mxml...

Un saludo

Javier Fernández :: Drus Unlimited™
listas[at]drusunlimited[dot]com
http://drusunlimited.com

Ivan Gajate

unread,
Jul 12, 2009, 8:27:02 AM7/12/09
to asna...@googlegroups.com
de hecho cuando haces un
<mx:Button id="button1" label="Hello world!" width="100"/>realmente él
por debajo está haciendo: var button1:Button = new Button();
button1.label = "Hello world!"; button1.width = 100;Lo cual es
muchiiiiisimo mas engorroso de hacer.Al menos así es como lo explican en
algún libro que he visto (http://oreilly.com/catalog/9780596517328/). Y ojo
que hablo desde la casi total inclultura de mxml, solo he empezado a
tocarlo, pero quizá por eso venga bien mi mirada "limpia" ;)Un saludo.

Iván Gajate yporqueno.es - Programación Flash

xleon

unread,
Jul 12, 2009, 10:18:58 AM7/12/09
to asna...@googlegroups.com
sastamente

Mario

unread,
Oct 9, 2009, 4:55:12 AM10/9/09
to asna...@googlegroups.com
Hola a todos, despues de que pasen unos meses no se si lo correcto retomar este hilo o abrir uno nuevo, aquí dejo mi duda igualmente. Despues de leer este hilo he visto que os habies peleado pero que bien con lo de facebook en flash, al final yo he optado por usar también el bridge js-as3, este mismo que citais aquí de wellconsidered, he conseguido hacer login en facebook pero al recuperar los datos del usuario, iexplorer (he probado con ie8) no me muestra la foto y firefox si, ¿alguien se encontro con este problema? en el ejemplo del autor de la librería también sucede...

http://stream.microsite.be/cecemel/

Gracias!
Mario

El 10 de julio de 2009 01:21, Javier Fernández Montes <lis...@drusunlimited.com> escribió:

Javier Fernández Montes

unread,
Oct 9, 2009, 7:48:19 AM10/9/09
to asna...@googlegroups.com
Qué raro... a mi en el ejemplo de ese enlace no me sale ninguna foto,
en ningún navegador, y aunque lo que hice no lo probé en explorer no
recibí ninguna queja parecida del cliente.

Un saludo

Javier Fernández :: Drus Unlimited™
listas[at]drusunlimited[dot]com
http://drusunlimited.com

Mario

unread,
Oct 13, 2009, 10:51:48 AM10/13/09
to asna...@googlegroups.com
Gracias javier,

la verdad es que después de lo que has comentado he comprobado que la imagen solo se muestra en firefox (uso la 3.5.3 en win), he comprobado que ni ie, ni safari, ni opera ni crome la muestran, pero el código esta ahí, esta es la función que carga los datos del usuario en el ejemplo (incluyendo la foto):

private function onUserInfo(e:FBBridgeEvent):void
            {
                var uInfo:FBBridgeUser = _fbBridge.user;
               
                trace("User info received (" + uInfo.name + ") !");
               
                lblName.text = uInfo.name;
                lblStatus.text = uInfo.status.message;
               
                imgProfile.load(uInfo.pic_square_with_logo);
            }

¿alguna idea?

igualmente, creo que mostrar la foto de facebook del usuario podría pasarse por alto para el cliente...

gracias!
Mario

Javier Fernández Montes

unread,
Oct 13, 2009, 11:25:36 AM10/13/09
to asna...@googlegroups.com
Puf, la verdad es que ahí me pillas, porque si bien empecé y usé en
gran medida ese bridge, el producto final fue una mezcla de este y
otro ejemplo que encontré
http://www.stevenvh.be/blog/?p=57

El caso es que yo los datos de usuario no los recibía como describes,
sino con un "FacebookEvent" de este último enlace que te envío.

No se si te ayudo :-/
Un saludo

Javier Fernández :: Drus Unlimited™
listas[at]drusunlimited[dot]com
http://drusunlimited.com

Mario

unread,
Oct 14, 2009, 8:07:33 AM10/14/09
to asna...@googlegroups.com
Gracias por la info Javier,

Al final he conseguido resolverlo(aunque parcialmente), lo pongo aquí por si a alguien le sucede alguna vez:

al cargar uInfo.pic_square_with_logo, la imagen no se muestra en los navegadores, excepto firefox, me he fijado que devuelve una url con parámetros (creo que con url encode), yo entiendo que en algún punto de pase de la web de js a as o al convertir el json a objeto, algo se pierde...

sin tiempo a poder centrarme en esto, he averiguado que la propiedad uInfo.pic_square devuelve la misma foto sin la "f" de facebook en la esquina, esta url que devuelve facebook no tiene parámetros ni nada, y funciona ok, de momento ha sido suficiente para mí.

Saludos,
Mario

Daniel Gabana Arellano

unread,
Oct 18, 2009, 12:11:59 PM10/18/09
to asna...@googlegroups.com
Perdon por la tardanza en contestar a este hilo....Pero (aunque mi proyectó lo dejamos de lado por tiempos) yo me quedé encasquillado en la parte de publicar cosas en el muro, enviar y recibir notificaciones, y en general, interactuar con el muro y las fotos de FB....

Supongo que los que lo habeis desarrollado plenamente habreis superado este obstaculo,no?

El caso es que miré bastantes ejemplos y al final acabé con la picha hecha un lio....Intenté algo así, pero no funcionaba:

   var estadoCambiado:String = cambio_estado_txt.text;
   
   user.status.set(estadoCambiado);
   facebookSession.setStatus(estadoCambiado);
   
   var statcall:FacebookCall = facebookSession.facebook.post(new SetStatus(estadoCambiado));
   
   statcall.addEventListener(FacebookEvent.COMPLETE, onStatPublish);
   facebookSession.users.setStatus("setting status");
   var statusData1:StatusData = StatusData(event.data);

Alguien me puede decir como hacer esto ??? Usé Flash puro y duro, nada de Flex.... Bueno , si sabeis como hacer esto mas sencillo en Flex, me gustaría que me lo comentaseis ;)

Gracias!!!

Comet!

unread,
Nov 9, 2009, 4:10:37 PM11/9/09
to ASNativos - Lista de Actionscript

Mario

unread,
Nov 9, 2009, 4:30:42 PM11/9/09
to asna...@googlegroups.com
que buena noticia!, yo aún estoy sufriendo con el desarrollo en facebook :S

Comet! escribió:

Christian Portuguez C.

unread,
Nov 9, 2009, 4:32:54 PM11/9/09
to asna...@googlegroups.com
Muchisimas Gracias !!

2009/11/9 Mario <mar...@gmail.com>



--
Christian Portuguez C.
Developer Web & Multimedia
www.agenciaweb.com.pe
in...@agenciaweb.com.pe
msn:               cportuguez
google talk:      cportuguez
skype:             christianportuguez
Telf. Perú:        0051 - 1 - 2410413 anexo 129
                       0051 - 1 - 2434786
Móvil Perú:       0051 - 1 - 990782771
Telf. Argentina: 0054 - 9 - 1159273029
Reply all
Reply to author
Forward
0 new messages