<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-2973269176782951470</id><updated>2009-10-13T02:25:57.999-07:00</updated><title type='text'>Desarrollo de Juegos Flash usando herramientas Open Source</title><subtitle type='html'>Tutorial en forma de Blog sobre el Desarrollo de Juegos Flash con Flex 3 y FlashDevelop.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://as3gamesclasses.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2973269176782951470/posts/default'/><link rel='alternate' type='text/html' href='http://as3gamesclasses.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Walter O. Krause</name><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2973269176782951470.post-259915048259748888</id><published>2008-12-19T10:56:00.001-08:00</published><updated>2008-12-19T13:26:41.555-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='componente'/><category scheme='http://www.blogger.com/atom/ns#' term='semaphore'/><category scheme='http://www.blogger.com/atom/ns#' term='semaforo'/><category scheme='http://www.blogger.com/atom/ns#' term='light'/><category scheme='http://www.blogger.com/atom/ns#' term='luces'/><title type='text'></title><content type='html'>Capítulo 10) Volvimos....(el semáforo se puso en verde)&lt;br /&gt;&lt;br /&gt;Bueno, acá les dejo un componente llamado Semaforo. Lo necesitaba para un desarrollo que estoy haciendo y me pareció que les podría llegar a interesarles.&lt;br /&gt;&lt;br /&gt;Lo pueden ver &lt;a href="http://www.kg.com.ar/F3FDTut10.php"&gt;aquí&lt;/a&gt; como siempre con los fuentes.&lt;br /&gt;&lt;br /&gt;De paso, le quería mostrar un ejemplo de uso de enumerados que es algo que en lo que Flex no se muestra muy amigable, pero con este ejemplo se les puede simplificar la tarea de transplantarlo a sus necesidades. Todo esto lo van a encontrar en la clase &lt;span style="font-style: italic;"&gt;public final class LuzEncendida&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;¿Qué más?&lt;br /&gt;&lt;br /&gt;Una clase &lt;span style="font-weight: bold;"&gt;LuzDeSemaforo.as&lt;/span&gt;: les permitirá aprender a hacer un uso muy simple de la propiedad graphics en este caso de un Box. BeginFill, DrawCircle y EndFill son usados para que se dibujen los circulos de colores y con el Alpha, cambiaremos la intensidad de la luz. Todo eso en la función pintar().&lt;br /&gt;Las propiedades agregadas al Box del cual hereda son brillante (Boolean),  colorDeLuz (int) y radio(int). Muy simple, pero que reune varias de las funcionlides básicas a la hora de pintar "a mano".&lt;br /&gt;&lt;br /&gt;Un componente &lt;span style="font-weight: bold;"&gt;Semaforo.mxml&lt;/span&gt;: hereda de un Canvas (apropiado para aprender a usar la property autolayout en false. Embebe una imagen en tonos de grises con forma de semáforo (si no saben embeber imágenes, les puede ser util) y, como es obvio, las 3 luces (una LuzDeSemaforo por cada color). Si se preguntan como coloque las x e y de las mismas para que coincidan: prueba y error. Lo mismo con el radio. En el codigo declarado en la seccion Script (SemaforoCode.as), aparecerá la property luzActiva (que es un String pero que la vamos a usar restringida al enumerado) y la funcion apagarLuces() (tan simple como necesaria).&lt;br /&gt;&lt;br /&gt;Una aplicación &lt;span style="font-weight: bold;"&gt;Main.mxml:&lt;/span&gt; para ver todo lo anterior, de paso para los que no tienen los TabBar muy presentes, pueden ver como se usa. Fijensé que los labels del TabBar salen del Array colores definido con el mismo enumerado que tienen las luces. Al TabBar, de paso, lo usamos para manejar las luces de Semaforo que obviamente incluimos. Pueden ver que la escala en x y en y está duplicada ( scaleX="2" scaleY="2" ), esto lo puse porque me ayudó a elegir los x e y de las luces, pero ya que estaba lo dejé por si no jugaron con esto todavía.&lt;br /&gt;&lt;br /&gt;Cuando lo tenga incluido en el juego, les muestro el semaforo en funcionamiento real.&lt;br /&gt;&lt;br /&gt;Bueno, será hasta la próxima, espero sus comentarios.&lt;br /&gt;&lt;br /&gt;Hasta Siempre.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2973269176782951470-259915048259748888?l=as3gamesclasses.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as3gamesclasses.blogspot.com/feeds/259915048259748888/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=2973269176782951470&amp;postID=259915048259748888' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2973269176782951470/posts/default/259915048259748888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2973269176782951470/posts/default/259915048259748888'/><link rel='alternate' type='text/html' href='http://as3gamesclasses.blogspot.com/2008/12/captulo-10-volvimos.html' title=''/><author><name>Walter O. Krause</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05182328940196063426'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2973269176782951470.post-485697511994975625</id><published>2008-09-04T04:39:00.000-07:00</published><updated>2008-09-04T05:00:53.186-07:00</updated><title type='text'>Respuesta a Comentario sobre cómo ganar más dinero desarrollando juegos en Flash</title><content type='html'>&lt;a href="http://www.blogger.com/profile/13725131659052138253" target="_blank"&gt;Ruber Eaglenest&lt;/a&gt; ha escrito elogiosos comentarios que quería agradecer. Además de ello, un par de preguntas que respondo a continuación:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Yo quiero aprender Flash, pero a la vez que me sirva de forma profesional,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;Trabajar con herramientas OpenSource no significa que no sea profesional. Eso lo va a determinar tu forma de trabajar y no la herramienta que uses. Sin embargo, con herramientas "profesionales" puedes ahorrate algunos dolores de cabaza (no muchos).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(0, 153, 0);"&gt;¿Encuentras que realizar juegos flash en plan montaje de películas es más tedioso que de forma OO como en Flex? &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;En mi caso particular, no tengo ni idea de cómo se programa en plan de montaje de películas. Por ello, esta pregunta se la tiene que hacer cada uno. Igualmente, desde el punto de vista filosófico ( y creo que si Adobe apunta al cambio de paradigma de programación es por algo), el software OO, seguramente va a ser más utilizable y mantenible.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;¿Alguna recomendación sobre qué servirá más de cara a ganar dinero?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Con que sepas que aunque el software que desarrolles sea muuuuy utilizable y mantenible, no te va a asegurar que entre más dinero, sino que lo "podrías" llegar a ahorrar a largo plazo (en forma de tiempo).&lt;br /&gt;&lt;br /&gt;Si el software parte de una buena idea y el resultado final es el adecuado, y lográs alcanzar la difusión del mismo, lograrás ganar más dinero.&lt;br /&gt;&lt;br /&gt;(Gracias por hacerme reencontrar con el blog al que le he dedicado varias horas, pero que lamentablemente me está costando hacerlo ultimamente, sin embargo, les cuento que estoy haciendo algunos experimentos que trataré de publicar apenas pueda).&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2973269176782951470-485697511994975625?l=as3gamesclasses.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as3gamesclasses.blogspot.com/feeds/485697511994975625/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=2973269176782951470&amp;postID=485697511994975625' title='4 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2973269176782951470/posts/default/485697511994975625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2973269176782951470/posts/default/485697511994975625'/><link rel='alternate' type='text/html' href='http://as3gamesclasses.blogspot.com/2008/09/respuesta-comentario-sobre-cmo-ganar-ms.html' title='Respuesta a Comentario sobre cómo ganar más dinero desarrollando juegos en Flash'/><author><name>Walter O. Krause</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05182328940196063426'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2973269176782951470.post-670956995447684804</id><published>2008-04-09T04:18:00.001-07:00</published><updated>2008-04-09T04:49:52.652-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='clases'/><category scheme='http://www.blogger.com/atom/ns#' term='KeyManager'/><category scheme='http://www.blogger.com/atom/ns#' term='teclado'/><category scheme='http://www.blogger.com/atom/ns#' term='eventos'/><title type='text'>10) Entradas 2da Parte (Teclado - Clase KeyManager) ...</title><content type='html'>Ya hemos definido a nuestra clase, ahora llevaremos a cabo su implementación, en este caso, es muy simple seguir el código, así que ahí va directamente:&lt;br /&gt;&lt;pre&gt;&lt;span style="color: rgb(68, 68, 68);"&gt;&lt;i&gt;/**&lt;br /&gt;* ...&lt;br /&gt;* @author Wal&lt;br /&gt;* @version 0.9&lt;br /&gt;* @since 2008-04-02&lt;br /&gt;* @link http://www.tenemos.info&lt;br /&gt;*/&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;strong&gt;package MisClases {&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(68, 68, 68);"&gt;// importamos el soporte de eventos y de los componentes &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(68, 68, 68);"&gt;// principales de Flex &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;strong&gt;import flash.events.*;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;strong&gt;import mx.core.*;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(68, 68, 68);"&gt;// definimos la clase KeyManager&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;public&lt;/strong&gt; &lt;strong&gt;class&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;KeyManager&lt;/span&gt; &lt;strong&gt;extends&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;UIComponent&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(68, 68, 68);"&gt;// definimos y publicamos las propiedades que indican &lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(68, 68, 68);"&gt;// los estados de cada tecla&lt;/span&gt;&lt;br /&gt; &lt;strong&gt;public&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;var&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;up&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;:&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;Boolean&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;strong&gt;false&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;strong&gt;public&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;var&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;down&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;:&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;Boolean&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;strong&gt;false&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;strong&gt;public&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;var&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;left&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;:&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;Boolean&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;strong&gt;false&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;strong&gt;public&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;var&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;right&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;:&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;Boolean&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;strong&gt;false&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;strong&gt;public&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;var&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;space&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;:&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;Boolean&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;strong&gt;false&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;strong&gt;public&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;var&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;zKey&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;:&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;Boolean&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;strong&gt;false&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;strong&gt;public&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;var&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;xKey&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;:&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;Boolean&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;strong&gt;false&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;strong&gt;public&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;var&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;cKey&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;:&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;Boolean&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;strong&gt;false&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(68, 68, 68);"&gt;// en el constructor, nos "colgamos" de los eventos &lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(68, 68, 68);"&gt;// KEY_UP y KEY_DOWN del&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(68, 68, 68);"&gt;// contenedor recibido como parámetro (aParent) &lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(68, 68, 68);"&gt;// asociándolos a las funciones&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(68, 68, 68);"&gt;// de la clase keyDown y keyUp respectivamente&lt;/span&gt;&lt;br /&gt; &lt;strong&gt;public&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;function&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;KeyManager&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;aParent&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;UIComponent&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(32, 64, 160);"&gt;aParent&lt;/span&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;addEventListener&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;KeyboardEvent&lt;/span&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;KEY_DOWN&lt;/span&gt;, &lt;span style="color: rgb(32, 64, 160);"&gt;keyDown&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(32, 64, 160);"&gt;aParent&lt;/span&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;addEventListener&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;KeyboardEvent&lt;/span&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;KEY_UP&lt;/span&gt;, &lt;span style="color: rgb(32, 64, 160);"&gt;keyUp&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(68, 68, 68);"&gt;// definimos los casos del evento KEY_DOWN del contenedor&lt;/span&gt;&lt;br /&gt; &lt;strong&gt;private&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;function&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;keyDown&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;event&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;KeyboardEvent&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;:&lt;/span&gt;&lt;strong&gt;void&lt;/strong&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;  &lt;strong&gt;switch&lt;/strong&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;event&lt;/span&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;keyCode&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;   &lt;strong&gt;case&lt;/strong&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;37&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;:&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(32, 64, 160);"&gt;left&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;strong&gt;true&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;strong&gt;break&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;strong&gt;case&lt;/strong&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;38&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;:&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(32, 64, 160);"&gt;up&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;strong&gt;true&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;strong&gt;break&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;strong&gt;case&lt;/strong&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;39&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;:&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(32, 64, 160);"&gt;right&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;strong&gt;true&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;strong&gt;break&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;strong&gt;case&lt;/strong&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;40&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;:&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(32, 64, 160);"&gt;down&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;strong&gt;true&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;strong&gt;break&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;strong&gt;case&lt;/strong&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;32&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;:&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(32, 64, 160);"&gt;space&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;strong&gt;true&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;strong&gt;break&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;strong&gt;case&lt;/strong&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;90&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;:&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(32, 64, 160);"&gt;zKey&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;strong&gt;true&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;strong&gt;break&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;strong&gt;case&lt;/strong&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;88&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;:&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(32, 64, 160);"&gt;xKey&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;strong&gt;true&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;strong&gt;break&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;strong&gt;case&lt;/strong&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;67&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;:&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(32, 64, 160);"&gt;cKey&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;strong&gt;true&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(68, 68, 68);"&gt;// definimos los casos del evento KEY_UP del contenedor&lt;/span&gt;&lt;br /&gt; &lt;strong&gt;private&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;function&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;keyUp&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;event&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;KeyboardEvent&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;:&lt;/span&gt;&lt;strong&gt;void&lt;/strong&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;  &lt;strong&gt;switch&lt;/strong&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;event&lt;/span&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;keyCode&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;   &lt;strong&gt;case&lt;/strong&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;37&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;:&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(32, 64, 160);"&gt;left&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;strong&gt;false&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;strong&gt;break&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;strong&gt;case&lt;/strong&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;38&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;:&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(32, 64, 160);"&gt;up&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;strong&gt;false&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;strong&gt;break&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;strong&gt;case&lt;/strong&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;39&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;:&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(32, 64, 160);"&gt;right&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;strong&gt;false&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;strong&gt;break&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;strong&gt;case&lt;/strong&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;40&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;:&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(32, 64, 160);"&gt;down&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;strong&gt;false&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;strong&gt;break&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;strong&gt;case&lt;/strong&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;32&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;:&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(32, 64, 160);"&gt;space&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;strong&gt;false&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;strong&gt;break&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;strong&gt;case&lt;/strong&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;90&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;:&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(32, 64, 160);"&gt;zKey&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;strong&gt;false&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;strong&gt;break&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;strong&gt;case&lt;/strong&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;88&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;:&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(32, 64, 160);"&gt;xKey&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;strong&gt;false&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;strong&gt;break&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;strong&gt;case&lt;/strong&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;67&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;:&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(32, 64, 160);"&gt;cKey&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;strong&gt;false&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;  &lt;br /&gt;  &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(68, 68, 68);"&gt;&lt;i&gt;/** Fin de la clase &lt;span style="font-weight: bold;"&gt;KeyManager&lt;/span&gt; **/&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;Luego veremos cómo utilizar esta clase en un programa de prueba. Sin embargo, ya pueden ir observando las posibilidades y limitaciones que tiene esta clase. Supongamos que queremos utilizarla en un juego donde tenemos un actor que se va desplazando por la pantalla. En este caso, no tendremos ningún inconveniente en utilizarla, hasta podremos tomar distintas decisiones si hay más de una tecla pulsada (por ejemplo, girar en diagonal). Sin embargo, seguramente aplicar esta clase a un juego tipo Simon (seguir las 4 luces de colores en una secuencia), no sería lo más apropiado. En éste último caso, conviene hacer uso de los eventos (podría ser KEY_UP o KEY_DOWN indistintamente en forma directa.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2973269176782951470-670956995447684804?l=as3gamesclasses.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as3gamesclasses.blogspot.com/feeds/670956995447684804/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=2973269176782951470&amp;postID=670956995447684804' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2973269176782951470/posts/default/670956995447684804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2973269176782951470/posts/default/670956995447684804'/><link rel='alternate' type='text/html' href='http://as3gamesclasses.blogspot.com/2008/04/10-entradas-2da-parte-teclado-clase.html' title='10) Entradas 2da Parte (Teclado - Clase KeyManager) ...'/><author><name>Walter O. Krause</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05182328940196063426'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2973269176782951470.post-6026883513356164519</id><published>2008-03-29T03:26:00.000-07:00</published><updated>2008-04-09T04:17:51.644-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='clases'/><category scheme='http://www.blogger.com/atom/ns#' term='teclado'/><title type='text'>9) Entradas 2da Parte (Teclado - Definiciones) ...</title><content type='html'>Vamos a empezar creando una nueva clase en FlashDevelop. Para ello, luego de crear un nuevo proyecto del tipo &lt;span style="font-weight: bold;"&gt;Flex3 &lt;/span&gt;que llamaremos &lt;span style="font-weight: bold;"&gt;EventosDelTeclado&lt;/span&gt;. Si tenemos abiertos archivos de otros proyectos, conviene que hagamos &lt;span style="font-weight: bold;"&gt;File-Close All&lt;/span&gt; para limpiar el escritorio.&lt;br /&gt;Ahora vamos a agregarle una carpeta. Para ello, en la vista del proyeto (&lt;span style="font-weight: bold;"&gt;View-Project&lt;/span&gt;), hacemos botón derecho del mouse sobre la carpeta &lt;span style="font-weight: bold;"&gt;src&lt;/span&gt;, luego &lt;span style="font-weight: bold;"&gt;Add-New Folder ...&lt;/span&gt; y escribimos &lt;span style="font-weight: bold;"&gt;MisClases &lt;/span&gt;(este será el nombre de nuestro package de clases).&lt;br /&gt;Ahora agregamos una clase haciendo botón derecho sobre misClases &lt;span style="font-weight: bold;"&gt;Add-New Class ... &lt;/span&gt;y elegimos &lt;span style="font-weight: bold;"&gt;KeyManager.as.&lt;/span&gt; Verás que ya quedó armado el esqueleto de tu nueva clase. Para los que saben java, verán que todo se ve bastante similar.&lt;br /&gt;Listo, ya tenemos nuestra clase lista para incluirle todo el código.&lt;br /&gt;Pero... todavía no definimos qué queremos hacer con los objetos de nuestra clase, por eso definiremos los objetivos:&lt;br /&gt;Necesitamos un objeto al que pueda interrogar en cualquier momento y me diga en que estado están ciertas teclas que consideramos importantes de acuerdo al siguiente detalle:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Cada tecla será una propiedad del objeto que definiremos como verdadera si está presionada y falsa si no lo está (tipo Boolean con default false).&lt;/li&gt;&lt;li&gt;Los eventos del teclado serán para un contenedor determinado (que lo podemos llamar Parent), que podrá ser cualquier &lt;span style="font-weight: bold;"&gt;UIComponent&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Como lo que nos interesa por ahora es hacer juegos, lo que queremos es tener disponible el estado de las siguientes teclas: &lt;span style="font-weight: bold;"&gt;Arriba - Abajo - Derecha - Izquierda - Espacio - Z - X - C &lt;/span&gt;(estas tres últimas sin importar si son mayúsculas o minúsculas).&lt;/li&gt;&lt;/ul&gt;Bueno, ya tenemos definida nuestra clase. Luego seguiremos con la implementación.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2973269176782951470-6026883513356164519?l=as3gamesclasses.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as3gamesclasses.blogspot.com/feeds/6026883513356164519/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=2973269176782951470&amp;postID=6026883513356164519' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2973269176782951470/posts/default/6026883513356164519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2973269176782951470/posts/default/6026883513356164519'/><link rel='alternate' type='text/html' href='http://as3gamesclasses.blogspot.com/2008/03/9-entradas-2da-parte-teclado.html' title='9) Entradas 2da Parte (Teclado - Definiciones) ...'/><author><name>Walter O. Krause</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05182328940196063426'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2973269176782951470.post-9189393529901495862</id><published>2008-03-16T02:56:00.000-07:00</published><updated>2008-03-23T05:23:16.632-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mouse'/><category scheme='http://www.blogger.com/atom/ns#' term='AS3'/><category scheme='http://www.blogger.com/atom/ns#' term='ratón'/><category scheme='http://www.blogger.com/atom/ns#' term='eventos'/><title type='text'>8) Entradas 1ra Parte (Mouse) ...</title><content type='html'>Vamos a ver entonces, a modo de ejemplo los eventos del mouse que presentamos a continuación:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;mouseDown&lt;/li&gt;&lt;li&gt;mouseUp&lt;/li&gt;&lt;li&gt;mouseOver&lt;/li&gt;&lt;li&gt;mouseOut&lt;br /&gt;&lt;/li&gt;&lt;li&gt;mouseMove&lt;/li&gt;&lt;li&gt;click&lt;/li&gt;&lt;li&gt;doubleClick&lt;/li&gt;&lt;/ul&gt;Para ver el ejemplo, deberás hacer click &lt;a href="http://www.kg.com.ar/F3FDTut8.php"&gt;aquí&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Para ello, creamos dentro de una ventana que nos permite incluir el título (titleWindow) en la barra superior. Dentro de la ventana, construimos un VBox (vertical Box) que hace que todo lo que se incluya se ordene verticalmente.&lt;br /&gt;&lt;br /&gt;El Box &lt;span style="font-weight: bold;"&gt;rojo&lt;/span&gt; permite mostrar cómo se detectan en él los eventos &lt;span style="font-weight: bold;"&gt;mouseDown&lt;/span&gt; y &lt;span style="font-weight: bold;"&gt;mouseUp&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;El Box &lt;span style="font-weight: bold;"&gt;azul&lt;/span&gt; permite mostrar cómo se detectan en él los eventos &lt;span style="font-weight: bold;"&gt;mouseOver&lt;/span&gt; y &lt;span style="font-weight: bold;"&gt;mouseOut&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;El Box &lt;span style="font-weight: bold;"&gt;fucsia&lt;/span&gt; permite mostrar cómo se detecta en él el evento &lt;span style="font-weight: bold;"&gt;mouseMove&lt;/span&gt;, y de paso lo aprovechamos para usar las propiedades &lt;span style="font-weight: bold;"&gt;localX&lt;/span&gt; y &lt;span style="font-weight: bold;"&gt;localY&lt;/span&gt; que tiene el evento para indicar la posición del cursor dentro del Box.&lt;br /&gt;&lt;br /&gt;El Box &lt;span style="font-weight: bold;"&gt;amarillo&lt;/span&gt; permite mostrar cómo se detecta en él un simple &lt;span style="font-weight: bold;"&gt;click&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;El Box &lt;span style="font-weight: bold;"&gt;verde claro&lt;/span&gt; permite mostrar cómo se detecta en él un &lt;span style="font-weight: bold;"&gt;doubleClick&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;En estos últimos 2 casos, Incluimos el archivo con código &lt;span style="font-weight: bold;"&gt;as3&lt;/span&gt; que nos va a permitir importar el código para usar la función show del objeto Alert (objeto que se instancia una sola vez en forma automática, vendría a ser como global para todo el programa).&lt;br /&gt;&lt;br /&gt;Para que se compile el archivo &lt;span style="font-weight: bold;"&gt;MainCode.as&lt;/span&gt; y usarlo desde &lt;span style="font-weight: bold;"&gt;Main.mxml&lt;/span&gt;, se agregó la siguiente línea de código:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;&lt;strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;&amp;lt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;mx:Script&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;source=&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;"MainCode.as"&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;/&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;El contenido de MainCode.as en este caso, simplemente es:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#444444;"&gt;// importamos librerías necesarias&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;&lt;strong&gt;import mx.controls.Alert;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Esto es todo respecto del mouse, imprescindible para muchos tipos de juegos, aunque si lo tuyo son los arcades tradicionales, en la próxima entrega sabrás algo más sobre los eventos del teclado y las clases en &lt;span style="font-weight: bold;"&gt;as3&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2973269176782951470-9189393529901495862?l=as3gamesclasses.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as3gamesclasses.blogspot.com/feeds/9189393529901495862/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=2973269176782951470&amp;postID=9189393529901495862' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2973269176782951470/posts/default/9189393529901495862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2973269176782951470/posts/default/9189393529901495862'/><link rel='alternate' type='text/html' href='http://as3gamesclasses.blogspot.com/2008/03/8-entradas-1ra-parte-mouse.html' title='8) Entradas 1ra Parte (Mouse) ...'/><author><name>Walter O. Krause</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05182328940196063426'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2973269176782951470.post-1956622823951775661</id><published>2008-03-12T01:58:00.000-07:00</published><updated>2008-03-16T03:38:03.721-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Entrada'/><title type='text'>7) Hay que organizarse...</title><content type='html'>Bueno, llegó el momento de empezar a programar nuestros juegos.&lt;br /&gt;&lt;br /&gt;Pero... no nos apresuremos. Cuanto más organizados empecemos, mejor será el resultado (y más rápido).&lt;br /&gt;&lt;br /&gt;A mi me gusta ver al software como un sistema con sus &lt;span style="font-weight: bold;"&gt;Entradas&lt;/span&gt; que &lt;span style="font-weight: bold;"&gt;Procesamos&lt;/span&gt; y convertimos en &lt;span style="font-weight: bold;"&gt;Salidas&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;En las próximas entregas analizaremos las entradas, que podrán utilizarse en los distintos tipos de juegos, a saber:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;De selección por click del Mouse (por ejemplo, de memoria tipo memo-test)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;De arrastrar y soltar con el Mouse (por ejemplo, vistiendo al personaje)&lt;/li&gt;&lt;li&gt;De movimiento del personaje con Teclado (por ejemplo, cualquier arcade)&lt;/li&gt;&lt;li&gt;De movimiento de la paleta con Teclado (por ejemplo, el viejo pong)&lt;/li&gt;&lt;/ul&gt;Claro que nuestor juego contará con varios de ellos y nos prepararemos para utilizarlos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2973269176782951470-1956622823951775661?l=as3gamesclasses.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as3gamesclasses.blogspot.com/feeds/1956622823951775661/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=2973269176782951470&amp;postID=1956622823951775661' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2973269176782951470/posts/default/1956622823951775661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2973269176782951470/posts/default/1956622823951775661'/><link rel='alternate' type='text/html' href='http://as3gamesclasses.blogspot.com/2008/03/7-hay-que-organizarse.html' title='7) Hay que organizarse...'/><author><name>Walter O. Krause</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05182328940196063426'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2973269176782951470.post-2243300067880287057</id><published>2008-03-10T16:21:00.001-07:00</published><updated>2008-03-13T01:53:25.242-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='encoding'/><category scheme='http://www.blogger.com/atom/ns#' term='mxml'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><title type='text'>6) ¿Qué es Flex?</title><content type='html'>Vamos a poner un par de links que nos permitan saber algo más sobre &lt;span style="font-weight: bold;"&gt;Flex &lt;/span&gt;en &lt;span style="font-weight: bold;"&gt;español&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;Imprescindible:&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://www.holaflex.com/?p=34"&gt;¿Qué es Flex?&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Complementario:&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://venzaalcocodrilo.blogspot.com/2007/11/flex-bsico.html"&gt;Flex Básico&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Por otra parte, nos queda pendiente el tema de cómo solucionar los dolores de cabeza que nos provocan lo acentos la ñ y demás delicias de nuestro idioma.&lt;br /&gt;&lt;br /&gt;Muy simple:&lt;br /&gt;&lt;br /&gt;Desde FlashDevelop, editando el archivo mxml correspondiente, hacemos &lt;span style="font-weight: bold;"&gt;File - Encoding -&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;UTF-8&lt;/span&gt; y ello permitirá el soporte a caracteres extendidos.&lt;br /&gt;&lt;br /&gt;Si hacemos ello, podremos usar ahora &lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;¡&lt;/span&gt;Hola Mundo!&lt;/span&gt; en nuestro ejemplo en lugar de usar &lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 102, 102);"&gt;-&lt;/span&gt;Hola Mundo!. &lt;/span&gt;Pueden probar también con acentos y va a ver que si el encoding está en &lt;span style="font-weight: bold;"&gt;8 bits &lt;/span&gt;&lt;span&gt;el programa no va a compilar.&lt;br /&gt;&lt;br /&gt;En la próximo nos vamos a organizar para desarrollar el juego.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2973269176782951470-2243300067880287057?l=as3gamesclasses.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as3gamesclasses.blogspot.com/feeds/2243300067880287057/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=2973269176782951470&amp;postID=2243300067880287057' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2973269176782951470/posts/default/2243300067880287057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2973269176782951470/posts/default/2243300067880287057'/><link rel='alternate' type='text/html' href='http://as3gamesclasses.blogspot.com/2008/03/6-qu-es-flex.html' title='6) ¿Qué es Flex?'/><author><name>Walter O. Krause</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05182328940196063426'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2973269176782951470.post-4687710371335610919</id><published>2008-03-07T03:16:00.000-08:00</published><updated>2008-03-23T04:59:50.432-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hola'/><category scheme='http://www.blogger.com/atom/ns#' term='mxml'/><category scheme='http://www.blogger.com/atom/ns#' term='mundo'/><category scheme='http://www.blogger.com/atom/ns#' term='ejemplo'/><title type='text'>5) Hola Mundo ...</title><content type='html'>Llegó la hora. Vamos a crear nuestro primer programa en Flex3, que no podía llamarse de otra forma que Hola Mundo.&lt;br /&gt;Para eso vamos a hacer lo siguiente:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Iniciamos FlashDevelop&lt;/li&gt;&lt;li&gt;Hacemos &lt;span style="font-weight: bold;"&gt;Project&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;New Project&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Ahora marcamos dentro de la lista de &lt;span style="font-weight: bold;"&gt;Action Script 3&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;Flex 3 Project&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;En Name escribimos &lt;span style="font-weight: bold;"&gt;HolaMundo  &lt;/span&gt;&lt;/li&gt;&lt;li&gt;En location, con Browse elejimos una carpeta adecuada para nuestros proyectos. Por ejemplo, podemos hacer una carpeta nueva debajo de C:\Flex3 que se llame Proyectos con lo que nuestra entrada location quedará:&lt;span style="font-weight: bold;"&gt; C:\Flex3\Proyectos&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Marcamos ahora el tilde en &lt;span style="font-weight: bold;"&gt;Create directory for project&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Pulsamos &lt;span style="font-weight: bold;"&gt;OK&lt;/span&gt;&lt;/li&gt;&lt;li&gt;A la derecha veremos la ventana denominada &lt;span style="font-weight: bold;"&gt;Project Manager&lt;/span&gt; (si no se ve, podemos ir al menú y elegimos dicha opción).&lt;/li&gt;&lt;li&gt;Ahí nos aparecen 2 carpetas: &lt;span style="font-weight: bold;"&gt;bin&lt;/span&gt; y &lt;span style="font-weight: bold;"&gt;src&lt;/span&gt;. Debajo de &lt;span style="font-weight: bold;"&gt;src&lt;/span&gt; (a modo de rama dentro del árbol) tenemos &lt;span style="font-weight: bold;"&gt;Main.mxml&lt;/span&gt; (ya se hablará de mxml y xml brevemente más adelante) que es archivo en el cual vamos a escribir nuestro código, que de entrada se verá así:&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="color:#2040a0;"&gt;&lt;strong&gt;&lt;span style="color:#4444ff;"&gt;&lt;strong&gt;&amp;lt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="color:#2040a0;"&gt;?xml&lt;/span&gt; &lt;span style="color:#2040a0;"&gt;version=&lt;/span&gt;&lt;span style="color:#008000;"&gt;"1.0"&lt;/span&gt;&lt;span style="color:#2040a0;"&gt;?&lt;/span&gt;&lt;span style="color:#4444ff;"&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#2040a0;"&gt;&lt;strong&gt;&lt;span style="color:#4444ff;"&gt;&lt;strong&gt;&amp;lt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="color:#2040a0;"&gt;mx:Application&lt;/span&gt; &lt;span style="color:#2040a0;"&gt;xmlns:mx=&lt;/span&gt;&lt;span style="color:#008000;"&gt;"http://www.adobe.com/2006/mxml"&lt;/span&gt;&lt;span style="color:#4444ff;"&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#2040a0;"&gt;&lt;strong&gt;&lt;span style="color:#4444ff;"&gt;&lt;strong&gt;&amp;lt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="color:#2040a0;"&gt;/mx:Application&lt;/span&gt;&lt;span style="color:#4444ff;"&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Bueno, vamos a darle un poco de vida a nuestra primer aplicación en Flex agregando entre las marcas mx:Application nuestro código que será simplemente:&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;font color="#2040a0"&gt;&lt;strong&gt;&lt;font color="4444FF"&gt;&lt;strong&gt;&amp;lt;&lt;/strong&gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;mx:Label&lt;/font&gt; &lt;font color="#2040a0"&gt;text=&lt;/font&gt;&lt;font color="#008000"&gt;&amp;quot;Hola Mundo!&amp;quot;&lt;/font&gt; &lt;font color="#2040a0"&gt;/&lt;/font&gt;&lt;font color="4444FF"&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Antes de seguir adelante, vamos a asegurarnos de no estar en modo debug. Para ello, si en la lista de selección que aparece en la barra de herramientas superior (bien a la derecha), si leemos Debug, cambiemos la opción por Release.&lt;/li&gt;&lt;li&gt;Ahora compilamos el programa pulsando F8&lt;/li&gt;&lt;li&gt;Si todo funcionó adecuadamente, el archivo HolaMundo.swf se habrá creado en la carpeta bin que aparece en el Project Manager&lt;/li&gt;&lt;li&gt;Para probar nuestro primer programa abrimos un explorador de windows en C:\Flex3\Proyectos\HolaMundo\bin y con botón derecho sobre HolaMundo.swf hacemos abrir con y elegimos nuestro Browser preferido (Internet Explorer, Firefox, etc.). Si nos aparece algún cartel de seguridad, deberán permitir ver la página.&lt;/li&gt;&lt;/ul&gt;¡Felicitaciones!, ya logramos nuestro primer programa. Un escalón pequeño, pero ABSOLUTAMENTE NECESARIO.Puedes ver el programa compilado y descargar el código fuente haciendo click &lt;a href="http://www.kg.com.ar/F3FDTut5.php"&gt;aquí&lt;/a&gt;.&lt;br /&gt;En nuestra próxima etapa veremos un poco los problemas que trae aparejado nuestro querido idioma Español y cómo solucionarlos.&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 51, 255);font-size:85%;" &gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;mx:application mx="http://www.adobe.com/2006/mxml"&gt;&lt;br /&gt;&lt;/mx:application&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2973269176782951470-4687710371335610919?l=as3gamesclasses.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as3gamesclasses.blogspot.com/feeds/4687710371335610919/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=2973269176782951470&amp;postID=4687710371335610919' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2973269176782951470/posts/default/4687710371335610919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2973269176782951470/posts/default/4687710371335610919'/><link rel='alternate' type='text/html' href='http://as3gamesclasses.blogspot.com/2008/03/5-hola-mundo.html' title='5) Hola Mundo ...'/><author><name>Walter O. Krause</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05182328940196063426'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2973269176782951470.post-8560957609506791893</id><published>2008-03-06T09:34:00.001-08:00</published><updated>2008-03-08T01:05:10.702-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='entorno'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex3'/><category scheme='http://www.blogger.com/atom/ns#' term='FlashDevelop'/><category scheme='http://www.blogger.com/atom/ns#' term='instalar'/><title type='text'>4) Instalando el entorno (2da. Parte : FlashDevelop) ...</title><content type='html'>FlashDevelop se puede descargar desde &lt;a href="http://osflash.org/flashdevelop"&gt;aquí&lt;/a&gt;.&lt;br /&gt;Su instalación es simple, pero &lt;span style="font-weight: bold;"&gt;cuidado  &lt;/span&gt;existe un bug que hace que no pueda instalarse de cualquier modo. Cuando llegues a la siguiente ventana, marca la opción &lt;span style="font-weight: bold;"&gt;Standalone Mode&lt;/span&gt;. Si  la dejas sin marcar, nada va a funcionar. Salvando eso y que es Windows dependiente, el resto, son todas buenas noticias, resultando una muy interesante IDE para nuestros desarrollos.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_cdfx0RNSXJU/R9Ejgm5E0mI/AAAAAAAAAAc/ASXwnAT8WmI/s1600-h/instFlashDev.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_cdfx0RNSXJU/R9Ejgm5E0mI/AAAAAAAAAAc/ASXwnAT8WmI/s320/instFlashDev.gif" alt="" id="BLOGGER_PHOTO_ID_5174956489928135266" border="0" /&gt;&lt;/a&gt;Ahora solo resta configurar la carpeta dónde se instaló Flex3. Para eso, pulsamos la tecla &lt;span style="font-weight: bold;"&gt;F10&lt;/span&gt;, marcamos &lt;span style="font-weight: bold;"&gt;AS3Context&lt;/span&gt; en la lista de la izquierda (la segunda entrada) y en la lista de la derecha, donde dice &lt;span style="font-weight: bold;"&gt;Flex SDK Location&lt;/span&gt; escribimos la carpeta de instalación del compilador, en nuestro caso &lt;span style="font-weight: bold;"&gt;C:\Flex3&lt;/span&gt;.&lt;br /&gt;Acá terminamos la instalación de nuestro entorno. Seguiremos con nuestro original "Hola Mundo" en la próxima.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2973269176782951470-8560957609506791893?l=as3gamesclasses.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as3gamesclasses.blogspot.com/feeds/8560957609506791893/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=2973269176782951470&amp;postID=8560957609506791893' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2973269176782951470/posts/default/8560957609506791893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2973269176782951470/posts/default/8560957609506791893'/><link rel='alternate' type='text/html' href='http://as3gamesclasses.blogspot.com/2008/03/4-instalando-el-entorno-2da-parte.html' title='4) Instalando el entorno (2da. Parte : FlashDevelop) ...'/><author><name>Walter O. Krause</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05182328940196063426'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_cdfx0RNSXJU/R9Ejgm5E0mI/AAAAAAAAAAc/ASXwnAT8WmI/s72-c/instFlashDev.gif' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2973269176782951470.post-3809252201931167014</id><published>2008-03-06T09:08:00.000-08:00</published><updated>2008-03-08T01:06:27.914-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flex3'/><category scheme='http://www.blogger.com/atom/ns#' term='descarga'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><category scheme='http://www.blogger.com/atom/ns#' term='SDK'/><title type='text'>3) Instalando el entorno (1ra. Parte : Flex3) ...</title><content type='html'>Primero vamos a instalar &lt;span style="font-weight: bold;"&gt;Flex3&lt;/span&gt;. Para ello vamos a descargarlo de &lt;a href="http://opensource.adobe.com/wiki/display/flexsdk/download+flex+3"&gt;aquí.&lt;/a&gt;&lt;br /&gt;Vamos a elegir la opción &lt;span style="font-weight: bold;"&gt;Open Source Flex SDK&lt;/span&gt;, sin embargo, tu puedes elegir la versión completa (no nos pensamos meter con AIR por ahora).&lt;br /&gt;Luego lo instalaremos simplemente descomprimiendo el &lt;span style="font-weight: bold;"&gt;.zip&lt;/span&gt; en una carpeta C:\Flex3 (si lo instalas en otra carpeta, tendrás que recordarlo luego cuando hagamos referencias a la misma, así lo adaptas a tu instalación).&lt;br /&gt;Ahora vamos a ver si quedó bien instalado, compilando alguna de las aplicaciones de demostración.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Abrimos una consola (&lt;span style="font-weight: bold;"&gt;Inicio&lt;/span&gt; - &lt;span style="font-weight: bold;"&gt;Ejecutar&lt;/span&gt;, Escribimos &lt;span style="font-weight: bold; font-style: italic;"&gt;cmd&lt;/span&gt; y hacemos &lt;span style="font-weight: bold;"&gt;Aceptar&lt;/span&gt;).&lt;/li&gt;&lt;li&gt;Luego, en la consola nos movemos al disco de instalación de &lt;span style="font-weight: bold;"&gt;Flex3&lt;/span&gt; haciendo &lt;span style="font-weight: bold;"&gt;c:&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Nos movemos a la carpeta de flex3 haciendo &lt;span style="font-weight: bold;"&gt;cd c:\Flex3\samples\explorer&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Allí se encuentra el archivo &lt;span style="font-weight: bold;"&gt;build.bat &lt;/span&gt;que ejecutaremos para probar si el entorno de compilación funciona. Si es así, se irán generando una serie de archivos swf que luego podrán servirnos de ejemplo para programar en Flex. Este proceso es m u y, p e r o, m u y leeeeeennnntooooo. Paciencia (o a comprar procesador nuevo y un par de Gigas de Ram).&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;Bien, hasta aquí comprobamos que  nuestro compilador funciona, pero para verlo necesitamos Flash Player 9 debugger que puedes descargar de &lt;a href="http://www.adobe.com/support/flashplayer/downloads.html"&gt;aquí&lt;/a&gt;,  eligiendo el apropiado para tu navegador. Luego lo instalas.&lt;br /&gt;&lt;br /&gt;Ahora, podrás hacer abrir la página &lt;span style="font-weight: bold;"&gt;C:\Flex3\samples\explorer\explorer.html&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Si hasta acá todo anda, podemos quedarnos tranquilos que vamos por el buen camino. Ya falta menos para poder empezar a programar....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2973269176782951470-3809252201931167014?l=as3gamesclasses.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as3gamesclasses.blogspot.com/feeds/3809252201931167014/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=2973269176782951470&amp;postID=3809252201931167014' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2973269176782951470/posts/default/3809252201931167014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2973269176782951470/posts/default/3809252201931167014'/><link rel='alternate' type='text/html' href='http://as3gamesclasses.blogspot.com/2008/03/ahora-s-instalar-el-entorno-1ra-parte.html' title='3) Instalando el entorno (1ra. Parte : Flex3) ...'/><author><name>Walter O. Krause</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05182328940196063426'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2973269176782951470.post-9147889843320234880</id><published>2008-03-06T08:16:00.001-08:00</published><updated>2008-03-07T02:26:12.046-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flex3'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='MochiAdds'/><category scheme='http://www.blogger.com/atom/ns#' term='FlashDevelop'/><category scheme='http://www.blogger.com/atom/ns#' term='AS3'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>2) Prerequisitos ...</title><content type='html'>Antes de referirnos a los pre-requisitos, vale la aclaración que lo que se verá acá es para entorno &lt;span style="font-weight: bold;"&gt;Windows&lt;/span&gt;. Sin embargo, el compilador &lt;span style="font-weight: bold;"&gt;Flex3&lt;/span&gt;, también es posible descargarlo para otras plataformas. El editor, también podrá ser otro elegido. Con lo cual, si tu eres uno de dichos usuarios, puedes volver por acá cuando termines de instalar y compilar tus primeros programas.&lt;br /&gt;&lt;br /&gt;Bueno, ahora van los &lt;span style="font-style: italic;"&gt;pre-requisitos&lt;/span&gt;:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Descarga e instala &lt;a href="http://www.java.com/es/"&gt;Java&lt;/a&gt; (será necesario para compilar las aplicaciones con Flex3).&lt;/li&gt;&lt;li&gt;Descarga e instala &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=es&amp;amp;FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5"&gt;.NET 2.0 framework&lt;/a&gt;  (necesario para poder luego instalar FlashDevelop v.3)&lt;/li&gt;&lt;/ol&gt;Sugerencias:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Ni lo intentes con menos de 512 Mb de Ram. Sufrirás ataques de aburrimiento insospechados.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2973269176782951470-9147889843320234880?l=as3gamesclasses.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as3gamesclasses.blogspot.com/feeds/9147889843320234880/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=2973269176782951470&amp;postID=9147889843320234880' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2973269176782951470/posts/default/9147889843320234880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2973269176782951470/posts/default/9147889843320234880'/><link rel='alternate' type='text/html' href='http://as3gamesclasses.blogspot.com/2008/03/prerequisitos.html' title='2) Prerequisitos ...'/><author><name>Walter O. Krause</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05182328940196063426'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2973269176782951470.post-6026417784998611737</id><published>2008-03-05T10:12:00.001-08:00</published><updated>2008-03-07T02:25:07.587-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flex3'/><category scheme='http://www.blogger.com/atom/ns#' term='MochiAdds'/><category scheme='http://www.blogger.com/atom/ns#' term='FlashDevelop'/><category scheme='http://www.blogger.com/atom/ns#' term='AS3'/><title type='text'>1) Para empezar ...</title><content type='html'>He tratado de hacer un juego en &lt;span style="font-weight: bold;"&gt;AS3 &lt;/span&gt;con &lt;span style="font-weight: bold;"&gt;Flex3 &lt;/span&gt;y &lt;span style="font-weight: bold;"&gt;FlashDevelop &lt;/span&gt;y me ha costado mucho encontrar algún &lt;span style="font-weight: bold;"&gt;tutorial &lt;/span&gt;o &lt;span style="font-weight: bold;"&gt;libro &lt;/span&gt;que me ayude.&lt;br /&gt;Si es de &lt;span style="font-weight: bold;"&gt;Flex3&lt;/span&gt; (compilador &lt;span style="font-style: italic;"&gt;Open Source&lt;/span&gt; para programas  &lt;span style="font-weight: bold;"&gt;Flash&lt;/span&gt;), en general están orientados a las aplicaciones comerciales haciendo uso de &lt;span style="font-style: italic;"&gt;Web 2.0&lt;/span&gt;.&lt;br /&gt;Si es de Juegos, me encuentro con referencias a los conocidos .fla, el uso del TimeLine y del Stage, cosas que casi nunca aparecen como en ayudas de &lt;span style="font-weight: bold;"&gt;Flex3&lt;/span&gt;.&lt;br /&gt;Como supongo que no soy el único con ese inconveniente en la web es que se me ocurrió lanzar este Blog para que podamos ir armando un entorno de trabajo útil y si es posible, unas buenas librerías de classes.&lt;br /&gt;Trataremos de facilitar los caminos que llevan a poder publicar un juego en &lt;span style="font-weight: bold;"&gt;MochiAdds &lt;/span&gt;u otras páginas que vayan surgiendo y de esa forma poder ganar algún dinero extra.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2973269176782951470-6026417784998611737?l=as3gamesclasses.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as3gamesclasses.blogspot.com/feeds/6026417784998611737/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=2973269176782951470&amp;postID=6026417784998611737' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2973269176782951470/posts/default/6026417784998611737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2973269176782951470/posts/default/6026417784998611737'/><link rel='alternate' type='text/html' href='http://as3gamesclasses.blogspot.com/2008/03/para-empezar_05.html' title='1) Para empezar ...'/><author><name>Walter O. Krause</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05182328940196063426'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>