AS1, AS2 y AS3
11 seguidores
Espero me podais ayudar, acabo de ver por primera vez el AS3 y me he quedado completamente de piedra, ¿porqué hay que dar tantan vueltas para hacer una cosa tan sencilla como un mc_btn, o un empty_mc?, por poner un ejemplo. En su momento me costó mucho cambiar al AS2, pero valió la pena, pero el AS3 es otra filosofía completamente diferente, por lo menos desde mi punto de vista, y para un diseñador como yo, lo encuentro demasiada programación para la que realmente necesito.
Perdonadme si peco demasidado, pero pensais que si sigo diseñando en AS1 y AS2, en un futuro tendré problemas para que los navegadores reconozcan estas versiones?
Thanks.
ventdaval
ozke
Hacer "attach", un par de goTos y una especie de Tweener en pocas lineas. y sin clases ni nada.
Coincido con Hartum... Flash CS3 te deja hacer todo eso muy facilmente, y sin tanto rodeo como se piensa... Quizas lo que sí faltaria seria un wrapper para loadMovie() que creo que es bastante coñazo en AS3, pero vamos, tambien lo era en AS1 y AS2 ^^
Al final yo creo que todo el problema pasa en que los diseñadores que hasta ahora sabian lo basico de AS1 creen que necesitarán aprender OOP para seguir con Flash... y no, pueden seguir escribiendo su codigo en el timeline, haciendo sus protos, etc... de hecho yo lo sigo haciendo para aplicaciones chicas y/o experimentos... y por cierto, el paso de AS1 a AS3 (en cuanto a sintaxis basica) es muy facil...
Y es que cada vez que un diseñador pregunta por ahi libros para "pasarse" a AS3, le recomendais el puto Essential AS3 del Moock, que es un tocho asqueroso de programación que no aguantaria leer entero ni yo :P
(por cierto, alguien de aqui lo ha leido entero? ^^)
¿Que qué os recomiendo?:
-primero que nada la consola de errores del CS3 (leed bien los errores, y consultad luego la ayuda y la guia de migracion de AS2)...
-la ayuda de Flash... sobretodo la lista de metodos/propiedades/eventos disponibles de cada objeto... seguid y leed bien los ejemplos de cada clase...
-leeros bien la documentacion de Tweener (esta hecha principalmente para diseñatas). Indepentientemente si quereis o no usar Tweener, aprendereis como importar librerias (clases), como usarlas, y por que existen ^^
Saludos...
ozke
Que AS3 es la leche y q puedes hacer cosas con CS3 sin programar mucho es obvio.
Solo se comentaba la posibilidad de lanzar librerias "tontas" para recuperar animadores (gotoAndPlayers con alguna cosita mas alla del efecto agua que comentas).
A mi pllin eh, solo era un comentario sobre si adobe le interesaria o no.
hartum
No quiero ser un talibán del ActionScript ni nada por el estilo, lo que pasa que hace 2 días me encontré en esa misma situación, yo soy javascripter pero quería un reflejo con efecto agua en un logo, abrí mi flash hice el efecto y fuera, ni una sola linea de código, y lo hice con el Flash CS3.
A lo que voy es que no hace falta saber todas las posibilidades de un programa para usarlo(ejem: Word, Dreamweaver, etc...) sin embargo, esta muy bien que si quiero ir un poco mas allá, el programa de lo suficiente de si para cubrir mis necesidades.
con CS3 puedes programar en AS1,AS2,AS3 o directamente no programar, es decir tiene lo que necesitas y mucho mas.
por eso mismo WTF???? cuando la gente se queja por que le dan mucho mas, en lugar de callarse la boca y usar solo lo que necesita, me parece el quejarse por quejarse.
ozke
Más fácil aún.
Pon los ascensores que quieras, pero deja una escalera para los que tienen caustrofobia.
txuma Plus
HARTUM
WTF??????
[modo silogismo ironico=on]
vaya antes habia un ascensor, que llegaba al quinto, y ahora bufffff hay uno que llega hasta el 11, y para colmo han puesto muchos mas botones encima del nº 5,menudo follon!!! y yo encima tengo vertigo, jo, creo que deberian construir un ascensor al lado del que ya hay, para que los que solo quieran ir al quinto, puedan hacerlo sin problemas, que eso de buscar el numero 5 entre tanto boton es un lioo.........
[modo silogismo ironico=off]
Utilizando tu analogía, yo sólo digo lo siguiente: me encanta un ascensor nuevo, remodelado, que ahora es capaz de llevarme hasta el piso 11, en menos tiempo y de forma más fluida.
Pero estaría bien, dado que hay un sector bastante importante de usuarios (creo) que sólo quiere ir al 1er y 2nd piso, que los botones para ir a esas dos alturas sean muuuuy grandes y fáciles de pulsar.
Y repito, otro debate sería que ese 1er y 2nd piso deba ser el destino más habitual de ese ascensor.
aupa!
ernieb
Jojojojojo... como esta el perrito.
Yo, en cierto modo, también coincido con Txuma. Y la verdad es que también coincido en parte con la apreciación de Hartum.
A mi lo que me preocupa es la velocidad a la que avanza todo. ¡Que panico! :(
hartum
txuma
Estoy de acuerdo. Hay un sector de creadores en flash que no tiene el mínimo interés en 'programación'. Sólo la utiliza para conseguir efectos y otras movidas para sus diseños. Creo que sería bueno que tuviesen algo sencillo para conseguirlo.
WTF??????
[modo silogismo ironico=on]
vaya antes habia un ascensor, que llegaba al quinto, y ahora bufffff hay uno que llega hasta el 11, y para colmo han puesto muchos mas botones encima del nº 5,menudo follon!!! y yo encima tengo vertigo, jo, creo que deberian construir un ascensor al lado del que ya hay, para que los que solo quieran ir al quinto, puedan hacerlo sin problemas, que eso de buscar el numero 5 entre tanto boton es un lioo.........
[modo silogismo ironico=off]
ozke
No Ricardo,
Me refiero a una librería general para crear objectos y manipular las acciones de una forma sencilla.
Hacer "attach", un par de goTos y una especie de Tweener en pocas lineas. y sin clases ni nada.
Va en contra de lo que usaría yo pero a cambio mantienes un pequeño fragmento de mercado que solo quiere animar y hacer "goto"´s.
Usuario desconocido
Black Velvet
Todavía hasta ahí llego a adaptarme, es un poco complicado pero se puede, pero a lo que no me puedo adaptar es a crear MC con actionScript lo que conlleva a no poder usar las interpolaciones para hacer un alpha por ejemplo, sino tenerlo que hacer con el código, y ya no hay LoadMovie(), o unLoadMovie(), no se, cositas básicas, limpitas y sencillas.
Por otro lado, con AS2 no se podia crear un movieclip limpiamente, ahora es new MovieClip(), antes era createEmptyMovieClip (como dice tpmmds: guarradon!) y no podias hacer una clase a partir de ello, ni extendiese el MovieClip. Ahora si :_)
txuma
Estoy de acuerdo. Hay un sector de creadores en flash que no tiene el mínimo interés en 'programación'. Sólo la utiliza para conseguir efectos y otras movidas para sus diseños. Creo que sería bueno que tuviesen algo sencillo para conseguirlo.
Nadie te prohibe seguir usando AS1,AS2.. Si te funciona...
ozke
Yo creo que debería existir alguna librería para animadores que les haga las cosas fáciles. Algo así como el SimpleSetup en Fuse.
Y la hay... se llama Tweener :P
http://hosted.zeh.com.br/tweener/docs/en-us/
http://code.google.com/p/tweener/
gorus Plus
Un poco de ayuda:
http://www.cristalab.com/tips/tags/actionscript_3
tpmmds
mrdoob
<div class="quote">
Black Velvet
<blockquote>
boton_mc.onRelease=Fu nction(){
gotoAndPlay()
}
</blockquote>
</div>
boton_mc.addEventListener( MouseEvent.CLICK, function(){ trace("hola") } );
ea, en 1 linea :P
Claro, si cuando estaba escribiendo la respuesta, a mitad de ella me dí cuenta de que el problema planteado no es AS2 vs AS3, sino más bien instanciar los símbolos visualmente (arrastrarlos al escenerio, colocarlos y escribir un método controlador de eventos en el frame 0) o hacerlo todo con código. Y en esto como en todo, va en gustos. Yo prefiero separarar toda la parte de diseño, de la de programación.
De hecho, AS3 no ha cambiado apenas para aquellos que quieran seguir escribiendo código en el frame 0. Todas las funciones de control siguen siendo las mismas: un bucle for se escribe exactamente igual en AS2 que en AS3.
¿Qué ha cambiado realmente?, pues muchas cosas que a mí personalmente me parecen mejoras:
1. Eliminar el j*d*d* createEmptyMovieClip y su "peculiar" forma de tratar el orden de visualización de las instancias.
2. Que TODO sean clases y se traten como tales. Ahora, cuando quieres instanciar algo, ya sea un sonido, un simbolo de la biblioteca, un texto, un componente... todo se hace con new.
3. Para declarar oyentes de eventos se hace siempre igual, con un único addEventListener, y de la misma forma para sprites, movieclips, componentes, sonidos, etc. No tienes que estar pensando si ahora es con una función de eventos, si es con un addListener, si el nombre del método va delante o detrás...
4. Ha desaparecido el loadMovie, sí, pero podemos utilizar la clase Loader que te permite cargar cualquier cosa y acceder a cualquier propiedad, método, línea de tiempo, etc, de lo cargado.
5. Ahora los objetos se añaden con el simple, para mí ;-), addChild() que te permite mostrar una instancia en el momento que más te convenga, evitando así, por ejemplo que se vea cómo se "construye" un movieclip en pantalla (algo muy habitual en swf desarrollados con AS2).
Para finalizar, alguien ha comentado lo complicado que es hacer en programación que un movieclip se haga transparente. Pero esto es precisamente lo que, creo yo, hay que hacer utilizando la gran herramienta que es Flash: todo lo que lleve un marcado componente visual/gráfico hay que intentar hacerlo visualmente/gráficamente, si disponemos además de esta gran herramienta ;-).
Un saludo, y perdón por la chapa ;-)
Particularmente yo soó
dourado
txuma
...Otra discusión mucho más amplia, y que no creo que sea debate de este hilo, es sobre para qué se utiliza/debe utilizar flash.
Para hacer bannerS! y trace()! :D
(y porque no abrir un hilo..)
ozke
Yo creo que debería existir alguna librería para animadores que les haga las cosas fáciles. Algo así como el SimpleSetup en Fuse.
El nuevo flash para ahí camina! Tiene un par de cosas a nivel de animación que son una pasada para quien no sepa programar/animar...creo que en adobe labs aún se puede encontrar el video de demostración.
Salud++
txuma Plus
Estoy de acuerdo. Hay un sector de creadores en flash que no tiene el mínimo interés en 'programación'. Sólo la utiliza para conseguir efectos y otras movidas para sus diseños. Creo que sería bueno que tuviesen algo sencillo para conseguirlo.
Otra discusión mucho más amplia, y que no creo que sea debate de este hilo, es sobre para qué se utiliza/debe utilizar flash.
ozke
Yo creo que debería existir alguna librería para animadores que les haga las cosas fáciles. Algo así como el SimpleSetup en Fuse.
txuma Plus
Ay, ¿ dónde quedo aquel mítico y sencillo target(nombredelclip) { loquesea } ?
black_velvet
<fieldset>En medio de todo esto creo que debería haber salido por parte de adobe AS2,5 Very Happy... Pero está claro 2,5 si le haces un Math.round(2,5) te sale 3!! Así que a hay que dar el salto si uno quiere seguir sumando!</fieldset>
Dios mio, esos son los efectos de aprender AS3? mejor entonces me quedo con el AS2. :P
<fieldset>boton_mc.addEventListener( MouseEvent.CLICK, function(){ trace("hola") } );
</fieldset>
Todavía hasta ahí llego a adaptarme, es un poco complicado pero se puede, pero a lo que no me puedo adaptar es a crear MC con actionScript lo que conlleva a no poder usar las interpolaciones para hacer un alpha por ejemplo, sino tenerlo que hacer con el código, y ya no hay LoadMovie(), o unLoadMovie(), no se, cositas básicas, limpitas y sencillas.
Seguro que con AS3 se pueden hacer, pero válgame dios...
ozke
Dios mio!
Humor actionscriptiano!
jajaja
dourado
En medio de todo esto creo que debería haber salido por parte de adobe AS2,5 :D... Pero está claro 2,5 si le haces un Math.round(2,5) te sale 3!! Así que a hay que dar el salto si uno quiere seguir sumando!
Salud++
ozke
Err... vaya, era solo hacer:
<code>trace(tonteria);</code>
Gracias tio
''>_<
Usuario desconocido
ozke
En la "Document Class". Pq?
Pues entonces deberia ser algo tal que:
<code>
package
{
class Main extends Sprite
{
public var tonteria :MovieClip;
public function Main()
{
trace(tonteria);
}
}
}
</code>
ozke
Por cierto, en un rato nos vemos en el lfpug no?
Sip
ozke
En la "Document Class". Pq?
Por cierto, en un rato nos vemos en el lfpug no?
Usuario desconocido
ozke
Ahora mismo me estoy rompiendo la cabeza para acceder a un movieclip creado "a mano" en el Flash IDE. Podría crearlo dinámicamente pero me ha picado la curiosidad y no se como leche hacerlo.
<code>var tonteria:MovieClip=this.stage.root.getChildByName("tonteria");</code>
Grrr. Por lo demás todo parece q va chutando bien.
Donde tienes el codigo ese?
ozke
Isma
Ya se sabe lo que pasa hoy en día con los 'todo-terreno', así nos luce el pelo...
No, no se q pasa con los todo terreno.
En mi curro está repleto de todo-terrenos (y no sólo hablo de programación y diseño) y todo va de fábula.
Isma
Adelante con ese AS3 ;)
Gracias tío.
Ahora mismo me estoy rompiendo la cabeza para acceder a un movieclip creado "a mano" en el Flash IDE. Podría crearlo dinámicamente pero me ha picado la curiosidad y no se como leche hacerlo.
<code>var tonteria:MovieClip=this.stage.root.getChildByName("tonteria");</code>
Grrr. Por lo demás todo parece q va chutando bien.
Usuario desconocido
Black Velvet
boton_mc.onRelease=Function(){
gotoAndPlay()
}
boton_mc.addEventListener( MouseEvent.CLICK, function(){ trace("hola") } );
ea, en 1 linea :P
isma
Claro que si Ozke, no lo dudo, yo también me intereso por el diseño, pero no me dedicaría a ello profesionalmente. Ya se sabe lo que pasa hoy en día con los 'todo-terreno', así nos luce el pelo... Pero me refería más a que AS3 ya tiene pinta de un lenguaje de programación serio, y en consecuencia, orientado más a programadores.
Adelante con ese AS3 ;)
elsuricatorojo
Tambien existe el perfil de "programador creativo" que programa por un lado y pero al mismo tiempo sabe cuidar la capa de presentación y sacarle jugo al diseño que posiblemente haya hecho un director de arte mediante animación, efectos e interacción.
Hace falta ser un poco Géminis, eso es cierto :-)
EDIT: BlackVelvet toma a AS3 como un plato mas en el menú. Tu vas poder seguir haciendo lo mismo en AS2 si lo deseas, pero para poder hacer lo solo se puede hacer en AS3 es necesario que el lenguaje sea mas complejo o abstracto o simplemente orientado de otra forma.
black_velvet
<fieldset>Código:
var miBoton = new BotonFlash();
miBoton.x = 100; // la posición del botón en el stage
miBoton.y = 100;
addChild(miBoton); //lo añadimos al stage
miBoton.buttonMode = true; //hacemos que aparezca la mano cuando pasamos sobre el botón
miBoton.addEventListener(MouseEvent.CLICK, onMouseClick); //lo declaramos como oyente de eventos de ratón
function onMouseClick(evt:MouseEvent):void {
trace("Has pulsado el botón"); // mandamos un mensaje cuando pulsamos en botón
} </fieldset>
es a eso a lo que me refería, porqué hacer eso cuando es mas fácil hacer:
boton_mc.onRelease=Function(){
gotoAndPlay()
}
Y PUNTO, y el resultado es el mismo, no lo entiendo, es a este tipo de &$#* a las que me refiero. Como dije, tengo que darle tiempo y pasarme por la farmacia a por aspirinas.
<fieldset>Yo creo que AS3 esta ya un poco menos al alcance de diseñadores y está totalmente orientado a la POO pura y dura. Lo suyo es que te adaptases a tu nivel de programación pero en AS3, no es tan difícil, seguro que lo cojes enseguida.</fieldset>
Eso es lo que me estoy oliendo ya, pero no entiendo las razones, lo ideal es que cada vez fuese mas fácil utilizarlo, y no alrevés, a este paso sencillamente mucha gente pasará del flash y buscará otras alternativas.
ozke
Isma
Ya es hora de que los diseñadores, diseñen y los programadores, programen
Esto nadie lo duda. Pero si además de diseñar de puta madre uno se interesa en la programación igual que podría interesante en la mariposa floral africana pues repercutirá en su beneficio.
Al final eso no marcará que seas más bueno o más malo, sino que tu perfil sea diferente.
Lo mismo pasa con programadores. Cuando un programador se mete a diseñar todo el mundo se echa a temblar (en un 98% de veces con razón). Pero yo creo que es bueno mirar de entender "algo" de diseño ni q sea cositas básicas de composición ni que sea para ser un poco más autosuficiente para entender el diseño que te estan pasando y ser capaz de resolver alguna duda en caso de necesidad.
El programador programa y el diseñador diseña, pero hoy día estoy viend o perfiles mucho más "borrosos" y gente de ambos "bandos" que intentan conocer el otro (yo le llamo sentido común).
tpmmds
Black Velvet
Espero me podais ayudar, acabo de ver por primera vez el AS3 y me he quedado completamente de piedra, ¿porqué hay que dar tantan vueltas para hacer una cosa tan sencilla como un mc_btn, o un empty_mc?, por poner un ejemplo. En su momento me costó mucho cambiar al AS2, pero valió la pena, pero el AS3 es otra filosofía completamente diferente, por lo menos desde mi punto de vista, y para un diseñador como yo, lo encuentro demasiada programación para la que realmente necesito.
Perdonadme si peco demasidado, pero pensais que si sigo diseñando en AS1 y AS2, en un futuro tendré problemas para que los navegadores reconozcan estas versiones?
Thanks.
A mí me ha pasado al revés: AS3 era lo que necesitaba. Después de padecer los interminables getNextHighestDepth(), createEmptyMovieClip, attachMovie, etc... y ahora con un simple this.addChild() todo solucionado!!! :-)
Imagino que te refieres a la nueva clase SimpleButton, pero en el fondo si empiezas a utilizarla acabas creando botones más rápido que antes: Primero te creas los 3 estados (over, up y down) y se los asignas a las propiedades overState, upState y downState, y ya está, ya tienes tu botón totalmente operativo, una vez que lo añadas al stage con un simple addChild(miBoton).
Por otro lado, si lo que tienes es un antiguo botón que quieres reutilizar, tampoco hay mucho problema, siempre que lo tengas en la biblioteca (señalo esto porque no ha sido la primera vez que he querido añadir un símbolo sin que estuviera en ella ;-)). Si lo exportas para actionscript con el nombre "BotonFlash", solo tienes que escribir:
<code>
var miBoton = new BotonFlash();
miBoton.x = 100; // la posición del botón en el stage
miBoton.y = 100;
addChild(miBoton); //lo añadimos al stage
miBoton.buttonMode = true; //hacemos que aparezca la mano cuando pasamos sobre el botón
miBoton.addEventListener(MouseEvent.CLICK, onMouseClick); //lo declaramos como oyente de eventos de ratón
function onMouseClick(evt:MouseEvent):void {
trace("Has pulsado el botón"); // mandamos un mensaje cuando pulsamos en botón
}
</code>
He escrito el código directamente aquí, y puede que haya metido alguna "gamba", espero que funcione.
Y ya tienes tu antiguo botón para utilizar con AS3 ;-)
Un saludo.
isma
Yo solo digo una cosa: 'Ya es hora de que los diseñadores, diseñen y los programadores, programen'. Yo creo que AS3 esta ya un poco menos al alcance de diseñadores y está totalmente orientado a la POO pura y dura. Lo suyo es que te adaptases a tu nivel de programación pero en AS3, no es tan difícil, seguro que lo cojes enseguida.