¿Cómo avanzar en ActionScript?
10 seguidores
Hola a todos.
Soy más diseñador que programador, pero me encanta Actionscript. Conozco un poco de AS 2.0 y quisiera pasarme a AS 3.0. He intentado machacarme los tutoriales de www.sargentoweb.com y www.flashkit.com, pero creo que me falta algo de base teórica para poder desarrollar -literalmente- proyectos.
He pensado en hacerme con un libro tipo "Actionscript 3.0" de Anaya, o buscar otras webs que vayan dando lecciones paso a paso más que tutoriales. ¿Qué me recomendáis?
Muchas gracias, un saludo!
Usuario desconocido
Yo te recomiendo que te pilles un buen libro. A mi el Essential ActionScript 2.0 de O'Reilly me fue muy bien, asi que supongo que el mismo libro pero para AS3 estara igual o mejor.
Para mi, un must have.
http://www.librerialuces.com/libro/Actionscript_3.0/isbn/978-84-415-2340-1
(La version española no pone nada de Essential)
tpmmds
Hola:
También te recomendaría que empezaras por Essential AS3, es muy bueno (la versión original inglesa; la española tiene una traducción nefasta, que te va a liar más que otra cosa).
Por otro lado te recomendaría que no edites código en el IDE de Flash; búscate cualquier opción menos esta (SE-PY, FlashDevelop, Flex...) Han mejorado algo la versión CS4, con la posibilidad de crear directamente el armazón de las clases, añadir bibliotecas compiladas a proyecto... pero... no sé, quizá para Flash CS8 lo consigan ;-)
Otra idea: utiliza bibliotecas existentes para lo que te interese. No programes lo que está ya hecho y funciona medianamente bien. En mi caso, utilizo BulkLoader para las precargas de assets (imágenes, swf's, etc), Tweener (a veces TweenMax) para animar, Papervision3D para contenidos 3D, algún paquete de Matemáticas y Física (APE)...
Para estructurar tus proyectos puedes "inspirarte" en frameworks existentes. Puedes echarle un vistazo a Gaia, que es bastante completo y viene como una extensión para Flash. Te crea un proyecto con la estructura de clases que suele tener cualquier aplicación web genérica, con precargas, transiciones entre secciones, etc. (utiliza TweenMax).
Por cierto, a poco que "ojees" las clases, por osmosis se te van pegando "buenos habitos" de programación y todo ;-)
Un saludo, y ánimo, que en esto de aprender AS estamos muchos y como no nos demos esperanzas unos a otros...
SdR
Algún libro de patrones de diseño tampoco está de más.
Yo lo que suelo recomendar siempre son un par de tardes con "el amigo ese que es una máquina en AS3". En una charla bien pensado de 3 o 4 horas, te pueden dar una idea general de como hacer bien las cosas y ahorrarte mucho trabajo de aprendizaje.
Ventd'Aval
Yo, por dar otro enfoque, te doy la recomendación contraria que tpmmds ^^
Prueba con un libro de AS3 básico primero, para aprender sintaxis (como el que mencionas creo, no el essential as3)... Como eres diseñador, no te recomiendo que comiences directamente con OOP ni con patrones de diseño (programático), sino dejará de gustarte actionscript. Tampoco te recomiendo usar cosas ya hechas ^^...
Antes de usar cualquier librería ya hecha, intenta crearte una propia, por muy rudimentaria que sea, y ya le iras encontrando los fallos, y las posibles mejoras... luego ya usaras alguna ya hecha, sabras que buscas, y entenderás mucho mejor las partes importantes del código y del enfoque usado. Intenta reinventar la rueda cuantas veces te sea posible!
Yo te recomiendo ir de a poco y experimentar mucho... empápate lo mas que puedas de bitmapData (que seguro te molará)... estudia y prueba todo lo que puedas todos los filtros (flash.filters.*)... asi es posible que te empiecen a interesar aspectos mas profundos de AS3.
Prueba alguna libreria 3D, pero ten en cuenta que son muy necesarios conocimientos en 3D para explorar los limites... lo mismo con APE y conocimientos de matematicas/geometria/trigonometria.
Cuando veas que una libreria tiene demasiados ficheros, piénsatelo... por ejemplo, la libreria de Flickr de mike chambers (as3flickrlib), para hacer cosas simples, tiene una curva de aprendizaje muchisimo mas pronunciada que hacer llamadas directas a la api de Flickr.... y la documentacion de Flickr es muchisimo mas simple tambien ;)
No te enredes demasiado con hacer las cosas de la forma "correcta", sino busca siempre la forma mas simple (en todo sentido)... al menos al comienzo ;)
Suerte y fuerza!
tpmmds
Hola:
Coincido con Ventd'Aval en lo de experimentar para aprender, sobre todo porque consigues que te motive algo tan árido como escribir código. Flash/AS es muy agradecido en ese sentido ya que se consiguen resultados con relativamente poco esfuerzo. Si te interesa el mundo 3D te recomendaría dedicarle algo de tiempo a las nuevas posibilidades 3D que trae AS3 con la versión CS4: mover/rotar sprites en el espacio, combinado con efectos de desenfoque o color puede hacerte creer que estás en AfterEffect más que en Flash ;-)
En mi caso, cuando empecé con Flex me propuse hacer un sudoku, básicamente porque soy un adicto a ellos, y así, cuando llegaba a casa tenía una motivación para abrir Flex y ponerme a pelear con los controles, layouts, estados, y la madre que pari... pues eso.
Por cierto, veo que quieres hacerte la reconversión de AS2 a AS3. Me da la sensación de que lo que más asusta es el tema de los "eventos", cuando es una de las cosas que han simplificado en AS3. Y creo que la causa de esto (junto a que no se pueda escribir ya código directamente en los movie clips) es cómo aparecen en la ayuda de Flash y los libros de AS3 que van apareciendo. Me explico:
Cuando llega uno por primera vez a los eventos de AS3, se abre la ayuda de Flash, algún libro... y se topa con la "gestión de eventos" (el flujo del evento, el nodo destino, que si fase de captura, que si fase de propagación, target, bubbling event...), y lo compara con lo fácil que era en AS2 hacer un on(press) y listo. La gestión de eventos lo que te da es un potencial increíble para comunicar clases entre sí (que una clase se entere de que otra ha hecho, o ha empezado a hacer, algo), pero que no hay que conocer necesariamente para que al pulsar un botón se abra una ventana en un swf :-). Para esto basta hacer:
miBoton.addEventListener(MouseEvent.CLICK, nombreFuncion);
y en la función/método nombreFuncion escribir el código que debe ejecutarse cuando se pulse el botón, ya está
Un saludo
mindcookin
Lo primero, muchas gracias por vuestras respuestas.
Echaré un vistazo a otros libros más sencillos, pero el problema es que me da un poco de miedo que sean del tipo "te enseño cuatro cosas y mal explicadas", pero en cualquier caso los valoraré. Y sobre todo haré caso al tomarme las cosas con calma, aunque la verdad es que me cuesta un güevo pararme a pensar (que es lo más importante). Ir poco a poco creo que es la clave para mí ahora mismo...
Y mil gracias por las recomendaciones (ni siquiera sabía que hubiera librerías ni editores AS fuera de Flash!!) realmente me son útiles. Una última pregunta, ya que estamos y que me viene a la mente viendo todos estos datos: teniendo en cuenta que soy un principiante y que quizá como diseñador no necesite machacarme tanto código (por razones de tiempo y estallido de cerebro espontáneo, más que por ganas) ¿me recomendáis pasarme a AS3 antes que avanzar en AS2? ¿o mejor avanzar en AS2 y luego pasarme a AS3 cuando tenga un cierto nivel? -se que son preguntas más personales, pero vamos, sólo una opinión....-
En fin, sinceramente muchas gracias...
tpmmds
Hola:
Si no tienes una razón de peso (que tu empresa desarrolle contenidos pensando en Flash Player 8), te recomendaría que dedicaras tu tiempo a AS3, por una razón fundamental: vamos por Flash Player 10, y AS3 no lo soporta Fash Player 8 e inferiores (AS2 corre en la AVM1 y AS3 en la AVM2 que apareció con FP9). A la velocidad que se está desarrollando la AVM2 cada vez va a existir un mayor escalón entre aplicaciones hechas en AS2 y AS3: velocidad, mejor renderizado de textos e imágenes, todas las novedades de Flash serán para AS3, etc.
Por cierto, existe un libro que puede interesarte ActionScript 3 Cookbook, está traducido al español con una traducción bastante aceptable y es eso, un recetario: quieres crear un texto dinámico, vas al índice y buscas la "receta" de cómo hacerlo, y así todo.
Un saludo.
oskitar
Por si sirve de algo, muy acertado todo lo que han comentado tpmmds y Ventd'aval,
El libro "Actionscript 3.0 Cookbook es muy bueno, no se anda por las ramas, y la metodología de aprendizaje está totalmente orientada a la práctica, con lo que enseguida empiezas a resolver los problemas que se te plantean habitualmente. Con esto me refiero a que el sistema es:
Problema :
Quiero hacer una copia de un array
Solución :
Usa concat ()
Discusion
Explicación, modos y ejemplos.
Una vez que te has leído el libro puedes complementar lo aprendido con el Essential Actionscript 3.0 también de O'Reilly, este profundiza en los temas y explica casi todo lo que debes sabe, una vez que te hayas leído el cookbook tendrás claro todo lo que te va a contar ahí.
Como lecturas complementarias te aconsejo el Design Patterns de O´Reilly again :D, en el que se explican las diferentes aproximaciones a la programación orientada a objetos , es decir aprendes que tipo de estructuras de programación son las más convenientes a la hora de abordar un proyecto gordo. Y uno que me gustó mucho sobre técnicas de animación mediante programación, es decir, como programar un aceleración o un sistema de partículas, porque aunque en la práctica ya existen soluciones muy buenas, conviene saber de donde biene cada cosa y este libro explica la matemática aplicada a as3 muy bien, el libro "ActionScript 3.0 Animation" ed. friendsofed.
fernandocomet
Prueba este:
http://llops.com/blog/2008/06/16/learning-actionscript-3/
http://oreilly.com/catalog/9780596527877/
tpmmds
Hola:
Un comentario un poco offtopic pero no me puedo resistir. Ya sé que somos pocos los "aficionaos" a ActionScript, en comparación con otros lenguajes como java, php, C, etc... pero de verdad ¿no podían elegir los de O´Reilly unos animales un poco más "agradables". El de AS3 CookBook es una rata, el de Essential una cobra, el de patrones una ¿tenia?, creo recordar que el de Flash Comm Server (el anterior a Flash Media Server) era un armadillo...
No sé, me gustaría ver algún animal que no esté asociado a enfermedades, muertes por picadura, mal olor...
Un saludo, y este comentario va un poco en broma ;-)
oskitar
A mi me mola el de la serpiente de coral de as3, me recuerda a eso de "una serpiente de coral verdadera reconoce a una falsa serpiente de coral" , pero en versión programador de AS3.
tpmmds
Hola, oskitar:
Es verdad, en qué estaba pensando, es una coral. Pero igual de venenosa, porque es la auténtica ¿no? ;-)
Un saludo.
Slammer
Hola, yo te recomiendo el mismo que Fernando Comet, el Learning AS3, es un libro muy asequible. Si te metes con el Essential de Moock te va a dar un jamacuco en la primera parte del libro que pa qué.
En www.flashbookmarks.com puedes ver todo lo nuevo en blogs relacionados con flash. Encontraras muchisima información de todos los temas de toda la gente que curra en el tema.
Saludos
TheOm3ga
Hombre, el de "Learning Python" también es una rata, con unos pedazos de bigotes que no veas.
El de patrones de diseño no te lo recomiendo. Ese y cualquier otro libro sobre ingeniería del software está más orientado a gente que, en un momento dado, si les pidiesen hacer un proyecto X serían capaces de hacerlo fuera el que fuera, pero quieren aprender la manera correcta de implementarlos. P.ej. si no sabes cargar y descargar secciones dinámicamente, de poco te va a servir saber qué es y cómo implementar un singleton que centralice la carga de secciones.
Sobre lo de pasar por AS2.0 antes que por AS3.0... olvídalo. Yo soy de la vieja escuela de AS2.0 y he estado bastante tiempo off del flash, y ahora que quiero volver a la onda (qué moderno xD) estoy previendo que me va a costar horrores deshacerme de mis formas del AS2.0 para hacerlo a la 3.0. Creo que aprender de cero (o casi de cero) es más fácil que cambiar lo que ya sabes.
Saludos
Kaax Staff Plus
TheOm3ga...si que ha pasado tiempo eh! desde la época de after-hours!
bienvenido de nuevo! ; )
TheOm3ga
Kaax
¡Gracias Kaax! Sí que ha pasado tiempo, pero como propósito de año nuevo me he decidido a volver a mis raíces flasheras, que ya iba siendo hora :D A ver si me pongo al día porque me da vergüenza no saber hacer un attachMovie al estilo actionscript 3.0 xD Afortunadamente el amigo Moock ya viene en camino desde Amazon, a ver si me ayuda.
Nos leemos por el foro! :D
juandelgado
TheOm3ga
Vi el tu comentario en mi blog y se me olvidó comentártelo: el libro de Moock es un TOCHAZO, yo diría que imposible de leer estilo "libro de cabecera". Yo he empezado (vamos, estoy empezando) con AS3 y no lo miro CASI nunca. ¿Cuándo lo miro? Cuando tengo una duda sobre un tema específico, me voy al libro al capítulo que habla de ello y entonces sí que es útil.
Y para los programadores el paso de AS2 a AS3 es una bendición. De hecho, tiemblo que me llegue un proyecto AS2 (lo único bueno sería volver a MTASC, snif, snif). La mayoría de las clases están en el package que tienen que estar y, salvo excepciones, la API está muy bien pensada. Como siempre, la referencia es nuestra mejor amiga!
Y bienvenido, claro : )
oskitar
Hay mucha gente que cuando dice que programa en as2, lo que hace es solamente usar las nuevas funcionalidades de as2 y la sintaxis, y ahora con as3 se han llevado una sorpresa desagradable al ver que no solo la sintaxis ha cambiado sino que el modo de programar es totalmente distinto.
TheOm3ega, si programabas en as2 correctamente, y me refiero a la metodología y no solo a la sintaxis, el cambio te va a resultar sencillísimo, los cambios más importantes quizas son la gestión de eventos y el nuevo display list, a cambio te vas a poder olvidar de cosas como el "Delegate.create()" y disfrutar de todas las ventajas que ofrece la POO.