Este tip es muy sencillo, pero trae de cabeza a la gente que empieza con ActionScript 3, Flash CS3, Flex, etc. Intentaré aclarar un poco cómo añadir MovieClips a nuestra película que estén situados dentro de nuestra biblioteca y empezar a montar nuestra película.
Como ya se dijo en otro tip, el sistema de añadir elementos de la biblioteca a cambiado en AS3. Ahora attachMovie no funciona, añadimos los clips con addChild y para realizar este proceso hemos de crear una clase para cada clip que queramos añadir.
Este es el proceso a seguir:
Primero crearemos el MovieClip y lo tendremos en la biblioteca.
Abriremos las propiedades del MovieClip y en las opciones de linkage seleccionaremos "exportar para actionscrip" y le daremos un nombre para la clase.
Como podemos ver, ahora en AS3 hemos de vincular el MovieClip a una clase, NO darle un nombre de identificador como hacíamos en AS2.
NOTA: Si intentásemos añadir un nombre de identificador al MovieClip no aparecería una advertencia indicándonos que ese proceso solo es para AS2 y nos preguntara si queremos cambiar las opciones de publicación.
Ahora para añadir este MovieClip a nuestra película hemos de crear una instancia de esa clase
Código :
var clip1:clipA = new clipA();
Y la situaremos en el stage con addChild
Código :
var clip1:clipA = new clipA(); clip1.x = 100; clip1.y = 100; addChild(clip1);
Y listo!
Ahora si quisiésemos añadirle algún tipo de interactividad a este MovieClip, como por ejemplo añadirle un evento de click, no colocaríamos el código en el .fla cómo haríamos en AS1 o AS2 sino que crearemos un archivo .as con el nombre de la clase que le indicamos al MovieClip y ahí escribiremos todo el código necesario para manejar este MovieClip.
Código :
package { import flash.display.MovieClip; import flash.events.MouseEvent; // public class clipA extends MovieClip { public function clipA() { addEventListener(MouseEvent.MOUSE_DOWN, mouse_down); } private function mouse_down(event:MouseEvent):void { trace("CLICK!"); } } }
En AS3 es recomendable trabajar con clases y colocar el menos código posible sobre la línea de tiempo con lo que este código lo podíamos meter dentro de una clase Main.as
Código :
package { import flash.display.MovieClip; // public class Main extends MovieClip { private var _root:MovieClip; private var clip1:clipA = new clipA(); // public function Main(ruta:MovieClip) { _root = ruta; // clip1.x = 100; clip1.y = 100; _root.addChild(clip1); } } }
Al constructor de la clase le pasaremos como parámetro la ruta de la línea de tiempo principal (el _root).
Este sería el único código de nuestro .fla
Código :
var _root:Main = new Main(this);
Esta clase Main también la podíamos haber instanciado desde el panel de propiedades de la película
De esta manera no es necesario introducir ningún código dentro de nuestro .fla, y tampoco es necesario pararle ningún parámetro ya que en este caso el this ya hace referencia a la línea de tiempo principal, con lo que la clase Main quedaría así:
Código :
package { import flash.display.MovieClip; // public class Main extends MovieClip { private var _root:MovieClip; private var clip1:clipA = new clipA(); // public function Main() { _root = this; // clip1.x = 100; clip1.y = 100; _root.addChild(clip1); } } }
A partir de aquí iremos ampliando la clase Main y iremos añadiendo más clases y subclases para construir nuestra película.
Esto es un espanto!!! Yo como desarrollador que tiene 7 anos como flasher q justo aprendi el 2.0 en 2004 apenas q fue una hueva, y ahora q quieran q aprendamos otro un cacho completamente diferente , comprendo q la evolucion del lenguaje y ser mas rapido el plugin y la chingada, pero no mamen y aparte de todo que el atachmovie y un chigo de as2 ya no sirve, cuando el estupido telltarget si sigue sirviendo desde sus origines q por los celulares y no se q, y se q deprecian el atachmovie diske pa mantener el plugin ligero pero no mamen, el plugin ha crecido un chingo y trae tantas otras mamadas q no les costaba nada seguir dando soporte simplemente a la mayoria del codigo q ellos mismos nos hicieron aprender y un momento nos diejeron q era wow como el atachmovie. Es dificil ser una adulto tener una vida, esposa he hijos pa volver a los tiempos juveniles a aplastarmea aprender new sintax!! es como si hubiera, PS3 tipo 1, PS3 tipo 2 y PS3 tipo 3, estan partiendo a la comunidad de flashers en muchos pedazos, y a muchos se les esta dejando fuera, ya q a los q se an aferrado a los gotoandplays esto les sera complicadisimo, aparte soy docente, desde ese punto de vista ahora tengo ejemplos desarrollados simples como el atachmoive q el estudiante promedio puede comprender, pero, multi archivos, classes, para algo tan simple como llamar un movie clip de la biblioteca no la chingen! Por:Carlos Amador_blog
wow Carlos Amador, entiendo tu indignación, pero debemos crecer a la par de la tecnología, todo cambio siempre es bueno... ademas siempre podras seguir usando as2 desde flash cs3 ademas de eso, aunq es lo recomendado el uso de clases tu puedes usar tu código también dentro del FLA. Por:eldervaz
Chale que frustrado te lees Carlos mejor aprende a enseñar no crees? Por:quien yo?_blog
En parte Carlos Amador tiene razon, pues aunque eldervaz tambien esta en lo cierto, al decir que todo cambio es bueno, hay que reconocer que es complicado saber que apenas estas acoplandote a algo cuando te dicen que lo olvides, que simplemente, ya hay otro metodo distinto, quisiera, disculpen mi ignorancia, que me explicaran si el beneficio solo es que el plugin o la lectura del codigo sera mas rapido, en lo personal, yo veo que actionScript y sus archivos flash en verdad trabajan a buena rapidez, no entiendo por que los cambios, en todo caso, seria bueno implementar cosas complemente nuevas, pero que no hicieran las cosas que ya hacen otras anteriores simplemente porque quieren que las cosas cambien, no lo se, si estoy mal diganmelo, soy de amplio criterio, solo que sin intentar ofender, como ese que dice que mejor aprenda a enseñar, supongo que si es docente, por algo sera, de todos modos comprendo que para el si es mas trabajo de lo acostumbrado, toma tiempo aprender a usar algo y despues tirarlo para aprender a usar otro algo.
Saludos, y hagamos la paz en este foro. Por:Señor Oz
Si cada vez que saliera una actualización de PHP se cambiaran las funciones... si cada vez que sale un nuevo SQL se cambiaran las sentencias... sin cada vez que un programa se actualice cambian las sentencias básicas... apaga y vámonos, porque esto no se llama evolución, esto se llama te voy a tener enganchado aprendiendo y tendrás que hacerme caso porque soy DIOS en ésta materia. Ólvidate todo lo que te enseñé, aquello no vale nada, aprende lo nuevo que en el próximo CS4 te lo cambiaré de nuevo porque me ha parecido más correcto.
No se si se habrán dado cuenta... que en flash tambien hay diseñadores que necesitan lo básico pero tambien quieren introducir lo nuevo en sus películas... Por:dan_blog
Y que se yo? supongo que seguire usando AS 2.0 como creo que muchos lo haran, hasta que por un motivo u otro no sirva mas y tengamos que aprender el 3.0. Pero en si es mas complicado a simple vista, creo que no hay dudas respecto a eso. Pero esta complicacion a su vez lo hace mas organizado, y eso esta bueno, pero esta bueno para los grandes proyectos de programacion y no para el simple programador de load movie, load vars, goto and play, etc. Todos esos por el momento seguiremos usando as 2.0, por que creo nos ahorra tiempo por el momento. SAludos. Por:rodrigo.art_blog
Hola, pues yo soy flashero desde el flash 5, y realmente me desconcerto muchisimo la nueva forma de manejar el actionscript el flash CS3, de hecho cambio radicalmente, pero es bueno y te voy a decir por que.
A mi me daba mucho coraje que yo desde que era padawan aprendiendo al vuelo con flash 5 y que por cierto era bastante complicado hacerlo, fui evolucionando con las versiones de flash que fueron saliendo y mi indignacion era que cada vez el flash era mas flexible para hacer cualquier cosa, ya no se necesitaba de demasiado conocimiento para crear una simple presentacion o una utileria, ahora la gente que no se meta de verdad se las vera negras je je je.
Por cierto, si no me equivoco el AS 3.0 ya le da mas funcionalidad de codigo al flash (ya que tenia muchas deficiencias) y el hecho de que se module en clases lo hace mas facil de modificar y mas rapido de correr por que el codigo no se replica ni es redundante, (ejemplo los botones)
asi que yo estoy en pro de el cambio. Vamos todos adelante!! Por:Fabian_ITB_blog
rodrigo.art_blog :
y no para el simple programador de load movie, load vars, goto and play, etc. Todos esos por el momento seguiremos usando as 2.0,
Esas funciones de las que hablas son de AS1 no de AS2... El problema es ese, mucha gente de la que cree que sabe AS2 no se ha metido a trabajar con clases ni con nada de programación orientada a objetos, con lo que en realidad sigue programando al estilo AS1 y ahora con AS3, como es más estricto en ese sentido, ve un cambio demasiado grande. Alguien que sepa programar bien en AS2 no tendrá ningún problema en adaptarse a los cambios de AS3. Querer pasar de AS1 a AS3 ya es otra historia... Por:Zguillez
Zguillez :
Alguien que sepa programar bien en AS2 no tendrá ningún problema en adaptarse a los cambios de AS3. Querer pasar de AS1 a AS3 ya es otra historia...
No lo has podido decir mejor Zguillez, aquel q usa el as 2.0 (como se debería usar) pues no tendra problemas, ustedes deben saber q al final la logica y los conceptos de POO, siempre será lo mismo, al final podras emigrar a cualquier lenguaje. Ahora, a los diseñadores q quieran trabajar con POO eso es otro cantar, ustedes no se hagan problemas, sigan haciendo las cosas que saben hacer muy bien con AS1.0 o AS2.0... pero que van a esperar para aprender... q se llegue a AS 5.0???? cuando ya ni tengan idea como funciona Por:eldervaz
cuantas puñaladas al corazon! Por:ayayay_blog
LoadVars es de AS2!!! Por:noquierodecirlo_blog
noquierodecirlo_blog :
LoadVars es de AS2!!!
public dynamic class LoadVars extends Object Disponibilidad: ActionScript 1.0; Flash Player 6
Además, no me refiero al uso de funciones de AS1 o AS2, si no al estilo de programar... puedes utilizar funciones de AS2 y seguir programando como en AS1 colocando el código en la linea de tiempo dentro de fotogramas y sin utilizar clases ni nada de programación orientada a objetos... en AS3 no. Por eso la gente que quiera pasarse a AS3 primero tendría que aprender programar AS2 con POO Por:Zguillez
A vamos, no es para tanto, es verdad que hay cosas nuevas y eso, pero el cambio no es TAN radical como parece.. Por:Sandy_blog
Asi es la tecnologia, y hay que adaptarse, o creen que los desarrolladores de cobol, delphy, no tuvieron que aprender C, Java!!!!
Asi son los cambios y asi debe ser, ademas cada cambio tiene sus razones!
pienselo Por:jpcw_blog
menudolio, pues nada a comprarse la biblia de As 3 y a darle caña. Por:menudolio_blog
Es cierto es complicado, pero por lo que tengo entendido es mucho más estable, y mas simple para aquellos que vienen de otros lenguajes de programación (no eh instalado Flash9 porque no me da la maquina. tengo un Duron de 700 MHz)yo solo espero que tenga un buen asistente de AS y que me permita meter varios videos en un solo *.fla (esto siempre me daba error en flash 8. siempre quedaba un archivo corrupto y no se veia nada) Por:X-Dim_blog
Desde mi punto de vista, el migrar de AS 2.0 a AS 3 es bastante duro. Claro me refiero a diseñadores/desarrolladores que hemos pasado la mayor parte del tiempo aprendiendo Action(desde que Flash vió la luz). Por otra parte creo que Adobe ganará terreno en aquellos conocedores de java, pues la sintaxis se asemeja bastante.
Hay que ver el lado positivo, ahora que Action Script se convierte en un lenguaje totalmente orientado a objetos (que siempre fue la meta a seguir) no sufrirá cambios tan radicales, además, seguirá soportando AS 2, la compatibilidad con los photoshop, una mejora en interfaz,el convertir animaciones a código, entre otras cosas...
Migremos paso a paso, y siempre hay que recordar que es un reto más, no debemos quedarnos siempre en lo mismo, hay que continuar aprendiendo!
Saludos Por:liam_blog
Creo que la migración no es negativa. Si os digo la verdad empezaba a ver AS2 muy corto en cuanto a sus posibilidades reales. Quiero decir con esto q para hacer una pequeña aplicación web estaba francamente bien, pero cuando quiere combinar dicha aplicación con una de escritorio para subir ficheros o actualizar contenidos ... no creo que utilizar Flash más MDM Zinc sea menos complejo que SÓLO utilizar AS3. Porque si les digo la verdad entre aprender AS2, Zinc y etc. etc. pierdo más tiempo que comprándome una biblia de AS3 y hacer las cosas como Dios manda. Por otro lado doy la razón alos programadores, cuando vienes de entornos como C, PHP, Java... a AS2 te "aperreas". Pones código inútil por cualquier rincón, y después, cuando debes modificar la aplicación para ampliarla o modificarla... quebradero de cabeza al canto. No veo un drama, sí efectivamente, todos trabajamos, tenemos novias, proyectos artísticos y nos encanta pasar un rato de placer en el servicio viendo revistas de caracter ludico cultural, pero todo supone un esfuerzo. Creo recordar que desde que tengo un teclado en mi mano, casi 23 años, he estado reciclándome constantemente. La ingeniería informática, el diseño, la creación en general se basa en un constante cambio. SI no estás muerto. Si sigues las ideas viejas o desechadas... no acabas haciendo nada. No creo que Picasso hubiera llegado a buen puerto si siempre hubiera empleado la misma paleta de color o el mismo pincel cochambroso. Ánimo muchachos/as...y libertad para volar. Por:Willfrom_blog
Por cierto, alguien sabe pq me da este error: 1151: A conflict exists with definition _root in namespace internal. private var _root:MovieClip; Por:Willfrom_blog
yo apenas estoy aprendiendo AS 2 pero por lo visto ya no va a servir de mucho, alguien sabe donde puedo aprender AS 3 en mexico? o en linea o en donde sea pero me urge aprender!!! Gracias Por:desdeaki_blog
Anonymous :
yo apenas estoy aprendiendo AS 2 pero por lo visto ya no va a servir de mucho, alguien sabe donde puedo aprender AS 3 en mexico? o en linea o en donde sea pero me urge aprender!!! Gracias
\el del comentario anterior soy yo, pero no habia iniciado sesión, por si alguien me responde puede ser a mi cuenta Por:desdeaki
Tal y como yo lo veo, usar AS3 en proyectos pequeños es como querer pintar una pared a pincel. Es normal que los diseñadores se tiren de los pelos, especialmente cunado te has acostumbrado a colocar un gotoAndPlay y un attachMovie en la línea de tiempo.
La ventaja de AS3 viene cuando el proyecto se hace grande. Es entonces, cuando se manejan multitud de clases, de paneles, pantallas, estados, etc, cuando se le ve la lógica y la razón de ser al lenguaje, y pasa de sen engorroso a ser elegante y conciso.
Obviamente, los que más partido le podrán sacar a esto son los programadores no ocasionales, y especialmente los que vengan del mundillo de Java, que se adaptarán con menos esfuerzo al AS3 que los que levan toda la vida programando en AS1 o "pseudo" AS2.
Saludos Por:destroyo_blog
hola pues a mi me desespera estos comentarios, por que no abren un tema con relacion al nuevo lenguaje?, o mejor mandan sus quejas a adobe y ahi descargan su molestia?, entro para aprender mas del nuevo lenguaje y no hay ninguna pregunta sobre el tema zguillea solo ensucian los temas con puras quejas, total sino les gusta quedense con photoshop eso es diseno, ahora ser disenador web significa programar, no hacer solo bolitas con flash, mejor hagan preguntas sobre el tema sino los que crean los temas ya no les gustara mucho ponerlos si solo van a quejarse de lo dificil que es aprender, seamos profesionales no wannabes. Por:DiegoAzul
muchachos, hace unos dias lynda liberó su nuevo video tutorial acerca de actionscrip 3 llamado ActionScript 3.0 in Flash CS3 Professional Essential Training
chequenlo en la siguiente url [url]http://movielibrary.lynda.com/html/modPage.asp?ID=423 Por:Francisco arenas_blog
Claro que las verciones importan, y si las sentencias son dificiles y complicadas, pero como dijo uno de mis mentores "La pereza mental es muy cabrona Por:quien yo?_blog
Hola, estoy empezando con AS2 y tan solo llevo 3 meses. Aun no tengo muchos conceptos claros pero creeis que deberia de pasar de AS2 y ponerme enserio con AS3??? Necesito consejo Por:Joey_blog
Ni te lo pienses AS3 ya! Por:agh_soft_blog
Bien todo correcto , creo que cada uno e n su exposicion lleva razon. Pero tambien queda la duda ¿Ke vendra despues de CS3? Como programador valoro mis conocimientos y me molesta que sean paja mojada para ciertos desarrolladores que, en definitiva, todo lo que "INVENTAN" huele a dinero.
Esta bien el paso, pero que quede ahi. Como cualquier lenguaje de desarrollo debera aumentar , actualizarze o como lo querais llamar.. Pero esto huele un poco a cachondeo.. cachondeo con los que nos dedicamos a esto claro ¿Porque? porque si desde AS1 se hubiera orientado de esta manera se estaria valorando al que al final suelta 800 euros para Mrs Adobe y no oleria tan mal. Bienvenido el cambio, pero que perdure y que piensen que al final FLASH no es ADOBE, sino los que colgamos nuestros trabajos en la red. Por:agh_soft_blog
Joey, Yo digo que lo hagas, yo no comence con actionScript 1 y no ando tan perdido, es decir, no soy un experto, pero no ando tan mal, de cualquier manera, tendras que aprender muchos conceptos nuevos, y los antiguos, supongo que tambien quedaran claros en los manuales que acompañen la nueva version de adobe flash, es decir, ya nos quejamos y esas cosas, pero al final de cuentas, apreciemos el esfuerzo que los desarrolladores tanto de flash como del mismo lenguaje actionScript hacen, pues el trabajo no es solo para nosotros los usuarios sino para ellos tambien (ya saben, manuales y esas cosas, ejemplos, etc etc) y no quiero creer que lo hagan en contra sino en pro de nosotros mismos los usuarios, muchos tienen razon, terminaron convenciendome, y no me imagino actionScript con las pobres posibilidades de la primera version, los cambios son buenos y a adaptarse, no hay de otra, en cuanto al comentario de DiegoAzul, cierto, camarada, tienes razon, se aprende poco con los comentarios, pero los comentarios son solo eso, comentarios, tranquilo que ya llegaran otros tutoriales en donde ahi si podras aprender, no te desesperes, AS3 tiene relativamente poco. De cualquier manera, considero mas prudente que tu mismo hagas las preguntas referentes a las dudas que tengas en lugar de ser otro mas que se queja por un tema que en realidad ese sí no tiene nada que ver con este post. Por:el_de_oz
No se deberían de quejar tanto, se deberían de quejar los pobres que de ASP 3.0 los migraron a ASP.NET, esos si se las vieron negras de verdad, pero migrar de AS2 a AS3 no fue tan dificil, yo trabajo mucho con datos (guardarlos y recuperarlos en BBDD desde interfaces en Flash) y francamente las clases URLRequest y URLLoader me vinieron a simplificar mucho la vida, es cierto que hay que andar declarando listeners y todo eso, pero ya se venía usando desde el AS2 y creo que es una forma muy buena de mantener el codigo arreglado. Además quien entiende el paradigma de los objetos sabe que desde AS2 ya se veía venir esta situacion del AS3, donde sin duda ahora ya todo esta Orientado a objetos.
Saludos y mucha suerte!! Por:Daniel Cisneros_blog
mmmm..tantos cursos que pague... tanto estudio.. que me meti en AS2 para practicamente nada.... PARA QUEDAR AL NiVEL DEL QUE NO SABE CASI NADA... Por:Pemb_blog
¿Por qué no seguís usando proyectos de ActionScript 2? Flash CS3 los soporta sin ningún problema, y sigue siendo igual que antes. Por:Fer_blog
Necesito una ayuda... estoy aprendiendo a adaptarme al nuevo CS3, pero no he podido darle el comando correcto a un botón en el menñu qe creé...alguien me puede orientar, gracias... Por:Jota_blog
Es cierto, todos en este foro tienen razon yo soy diseñador grafico y me costo trabajo comprender el AS1 y luego mudar a As2 y la vdd no me siento la eminencia y sigo sin comprender la logica de algunas cosas de como se programan, es verdad podras entender o identificar entre una variable y una funcion y es cierto hay ke acoplarse al cambio pero siempre es mejor buscar SOLUCIONES... yo eh visto varios ejemplos de AS3 y si no miento se me hacen algo dificiles de comprender y siempre esta el porque de la estructura... pero pues bueno no estaria mal un manualito y ver las diferencias y de como usar lo que usamos como pan de cada dia en As3 y empezar por ahi a comprender ahora eso de las clases suena interesante a mi si me gustaria aprender eso por que la vdd suena mas funcional... es mi humilde opinion GRACIAS!! =D Por:Mike Morales_blog
acabo d probar el ejemplo y no funca me sale este error:
Ubicacion Main.as, Linea5
Descripción 1151:Existe un conflicto con la definición _root del espacio de nombres internal. origen private var _root:MovieClip;
alguien me puede ayudar x favor soy nuevo en AS3 Por:metanarchy99_blog
Solo una cosita mas, yo ando programando en flash entre un grupo de progarmadores .net, desde luego yo no quiero aprender .net y ellos flash cada uno tenemos nuestro trabajo, por lo poco que he visto de AS3, es mucho mas completo, acceso a datos y demas de tal forma que podria obviar .NET, en determinadas ocasiones, ok, que hacemos aprendemos todos as3, y pasamos del .net, o que le den a as3, ese es el mayor problema que encuentro, como compatibilizar as3 con los demas Por:Repepe_blog
Es una porqueria el Flash 8 me quedo mil veces con el modo de ventanas y facilidad del Flah 5 a pesar de que tiene nuevas tecnologias es malisimo e incomodo el tema de los toolbars, que hagan el mismo programa pero con modalidad Flash 5...
Saludos Por:Cristian de Argentina_blo
le complica la vida a los principiantess el AS3. da bronca pero bueno, quizas es para mejor el cambio Por:nano_blog
Muy bueno el tip ya me ago la idea de manejar las clases. Pero si quiero interactuar en tre ellas como lo aria? Me esplico cargo el clip de la bibliotecapero despues quiero que un boton de ese clip me mueba los fotogramas de la pelicula Principal(Main). la berdad esque no se como aserlo e intentado de todo echenme una mano plissss Por:Neftati_blog
Flash a muerto.... Adobe se ha distinguido por su falta de talento para crear interfaces inteligentes, y cuando supe que adquiría macromedia sabía que le hiba a dar por enmedio a flash. Ahora quiere meter a un producto exitoso una programación lineal, enfocada a mejorar si el desarrollo de alta escala empresarial, pero para ello debería crear un producto específico (como Flex) y no dar al traste con los millones de seguidores y desarrolladores en flash. Ahora te quieren vender un producto que pesa por el 80% de cosas que no te servirán para nada en la vida real y tus conocimientos de flash, Adobe los tira por la borda. Como la ves? de que sirvió quemarte las pestañas para dominar flash? Actualizar un producto es facilitar y hacer más eficaz el trabajo de quien lo utiliza. Flash a muerto y el asesino se llama ADOBE. Por:d_dixital@hotmail.com_blo
tengo una animación que contiene 5 movieclips y en cada uno de ellos tiene botones para que se vinculen entre ellos mismos pero no puedo vincular. por ejemplo en mi movieclip 1 tengo un botón que al darle click quiero que me lleve a el movieclip 2 pero no puedo, me podrían ayudar, gracias. Por:Edgar Ramirez Luna_blog