<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-22804369</atom:id><lastBuildDate>Mon, 19 Oct 2009 22:32:31 +0000</lastBuildDate><title>Absulit</title><description>Creado para mostrar...
Dibujo, diseño, animación y programación
y sinceramente lo que se me antoje...</description><link>http://blog.absulit.net/</link><managingEditor>noreply@blogger.com (Absulit)</managingEditor><generator>Blogger</generator><openSearch:totalResults>40</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/Absulit" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22804369.post-6544250094704890490</guid><pubDate>Wed, 01 Apr 2009 22:18:00 +0000</pubDate><atom:updated>2009-04-01T17:50:02.439-06:00</atom:updated><title>Manejando XML en AS3 de Forma Facil</title><description>&lt;p&gt;A petición de un lector en Colombia, llamado Nestor, voy a enseñarles como hacer un lector de RSS, lo voy a dividir en 2 partes, empezando con esta, que es leer XML con AS3.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;En esta parte veremos de forma rápida que es XML, como cargarlo y la forma de navegar en él con el standard E4X.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Un XML para los que no saben, es un archivo de texto plano, como uno generado por notepad, con una estructura similar a los nodos de HTML, la diferencia se basa, en que XML se utilizará para enviar datos, y que su estructura puede ser la que nosotros necesitemos, por ejemplo:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Si tenemos una tabla con nombres y apellidos se vería así:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Tabla Personas&lt;br /&gt;&lt;br /&gt;  Nombre Apellido&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Juan       Perez&lt;br /&gt;&lt;br /&gt;  Daniel    Rodriguez&lt;/p&gt;&lt;br /&gt;&lt;p&gt;La idea de XML es llevar estos datos a través de una estructura predefinida de texto, y que muchos lenguajes de programación puedan leerlo sin crear un nuevo protocolo, así, nosotros sabemos que los campos que debemos crear, son, nombre y apellido, y su contenido, juan perez, y daniel rodrigez en la tabla llamada personas.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;para definir un campo en XML se abre etiquetas como en HTML, y se pone el nombre que uno necesite, así, si mi tabla se llama personas, hago lo siguiente&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;tabla nombre=&amp;quot;personas&amp;quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;  ..&lt;br /&gt;&lt;br /&gt;  &amp;lt;/tabla&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;definimos una estructura simétrica un nodo tabla se cierra con /tabla, y su contenido iría donde estan los dos puntos seguidos.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Ahora, seria mas sencillo si pudiéramos manejar a cada nombre y apellido como uno solo (persona) así que creamos un nodo para manejar a ambos:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;tabla nombre=&amp;quot;personas&amp;quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;persona nombre=&amp;quot;&amp;quot; apellido=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;/tabla&amp;gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Observen que el nodo persona tiene al final &amp;quot;/&amp;gt;&amp;quot; ya que no tiene más nodos dentro de si, asi que es innecesario tener el complemento si no hay contenido, simplemente lo cerramos (/) en el mismo nodo.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Ahora, nosotros tenemos 2 personas, que hacemos? bueno, hacemos una copia del mismo nodo &amp;quot;persona&amp;quot; vacío, y llenamos los datos:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;tabla nombre=&amp;quot;personas&amp;quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;persona nombre=&amp;quot;Juan&amp;quot; apellido=&amp;quot;Perez&amp;quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;persona nombre=&amp;quot;Daniel&amp;quot; apellido=&amp;quot;Rodriguez&amp;quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;/tabla&amp;gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Ahora tenemos una tabla de nombre personas, con dos personas dentro, cada uno con sus atributos de nombre y apellido, si quisiéramos otra tabla, dentro de nuestro archivo xml, puede llevar la misma estructura, pero para diferenciarla, podemos poner de nombre en la tabla &amp;quot;recursos humanos&amp;quot; por ejemplo, para diferenciarlos.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Muy bien, ya que sabemos que es un XML, podemos leerlo desde el flash, copiemos entonces nuestro XML recién creado en un archivo .txt, pueden abrir el notepad, o cualquier editor de texto disponible (yo uso &amp;lt;a href=&amp;quot;www.flashdevelop.org&amp;quot;&amp;gt;flash develop&amp;lt;/a&amp;gt;) y lo guardamos con el nombre &amp;quot;personas.txt&amp;quot; o &amp;quot;personas.xml&amp;quot;, tomen en cuenta que la extensión no influye en el contenido del archivo al ser leído por flash, solo es una identificación para el sistema operativo sobre como y con que programa debería interpretarlo, si le ponen .xml, pueden abrirlo nuevamente con notepad o cualquier editor de texto.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Listo el archivo, lo guardamos en un directorio conocido, y creamos un .fla en el mismo directorio donde guardamos el .xml; luego, creamos una layer de actions, y pegamos el siguiente código:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;var url:String = &amp;quot;personas.xml&amp;quot;;&lt;br /&gt;&lt;br /&gt;  var urlRequest:URLRequest = new URLRequest(url);&lt;br /&gt;&lt;br /&gt;  var urlLoader = new URLLoader(urlRequest);&lt;/p&gt;&lt;br /&gt;&lt;p&gt;var xml:XML;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;urlLoader.addEventListener(&amp;lt;div id=&amp;quot;:8e&amp;quot; class=&amp;quot;ii gt&amp;quot;&amp;gt;&amp;lt;wbr&amp;gt;Event.COMPLETE, onCompleteEvent )&lt;/p&gt;&lt;br /&gt;&lt;p&gt;function onCompleteEvent(e:Event){&lt;br /&gt;&lt;br /&gt;  xml = new XML(e.target.data)&lt;br /&gt;&lt;br /&gt;  trace(xml)&lt;br /&gt;&lt;br /&gt;  }&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Para los que vienen de AS2, esto es complicado, por que cuando uno inicia, piensa que se tiene que reaprender un monton de funciones para hacer lo que antes hacias en un par de lineas, bueno esto no es cierto, generalmente, aunque el codigo parezca largo, se repite en otras operaciones, y despues con el uso, se encuentra la utilidad del manejo separado de eventos.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;span style=&amp;quot;font-weight: bold;&amp;quot;&amp;gt;Explicando el codigo&amp;lt;/span&amp;gt;: Bueno en la primera linea nada dificil, definimos la ruta de donde se encuentra nuestro XML, como está junto al fla, es solo &amp;quot;personas.xml&amp;quot;, si estuviera en la unidad C, seria asi: &amp;quot;c:/personas.xml&amp;quot;, o dentro de otras carpetas si asi se necesita; luego tenemos este URLRequest, que es el objeto que armamos para solicitar datos por medio de la siguiente objeto, URLLoader, tambien hay otro objeto por el que podemos solicitar datos con URLRequest, y es el Loader, como por ejemplo, para cargar imagenes dinamicamente, en lugar de XML. Luego el URLLoader nos hará la llamada a &amp;quot;personas.xml&amp;quot;, y nos dará informacion que necesitamos, como un objeto de tipo XML de flash con la extructura del archivo XML, tamaño, y algo muy importante, avisarnos cuando se cargó el archivo, ya que no podemos empezar a usarlo hasta que esté completamente cargado, entonces, cuando llamamos al metodo addEventListener de URLLoader, le pedimos que nos avise del evento COMPLETE, y que llame a una funcion que tendrá el codigo para trabajar el XML como si ya se hubiera cargado, la funcion, onCompleteEvent, se programa de esta forma, se debe pensar que para el momento en que se llame, debe estar cargado ya. Como paramentro de nuestra function onCompleteEvent, tenemos de nuevo un EVENT, para los que no comprenden los eventos, se preguntarán, de donde sale este e:Event, realmente la estructura de la function del evento no la definimos nosotros, está definida por flash, como paramentro de addEventListener se necesita que se envíe una function con ese parametro, para que? para que usted pueda usarlo, es un parametro generico; por ejemplo, usted no solamente puede tener un XML para cargar, sino varios, al mismo tiempo, o uno despues del otro, pero resulta que necesita que en COMPLETE se les haga el mismo procedimiento, asi que en lugar de definir 2 onCompleteEvent, ud solo define uno, pero ud no puede saber cuando le llega, ni cual le llega, asi que se le envia este parametro &amp;quot;e&amp;quot; con toda la informacion, dentro viene, el XML que se llamó por medio del URLLoader, pero hay que sacarlo, asi llamamos a e.target que representaria al URLLoader que disparó o produjo el evento COMPLETE, y si nos fijamos en la ayuda de Adobe, para URLLoader, el atributo &amp;quot;data&amp;quot;, contiene informacion cargada sin formato, por lo que tenemos que darle forma con un objeto que nos ayude a manipularlo, como nosotros sabemos que es XML, usamos el objeto XML de flash, y lo guardamos, hacemos un trace(xml) y vemos la salida en la consola, si es el contenido de nuestro personas.xml que habiamos creado antes.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Usando XML: Bueno ya que tenemos el objeto, podemos sacar nuestra informacion, para el standard de E4X, resulta que podemos llamar a los nodos con notacion de &amp;quot;puntos&amp;quot;, de la misma forma en que llamamos a una propiedad de un objeto en flash, por ejemplo, si un MovieClip llamado my_mc tiene una propiedad x, la llamamos asi: my_mc.x, y sabemos su coordenada x en el plano cartesiano de flash; igual podemos con el objeto XML de flash.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Si vemos nuestro XML tiene dos formas de obtener datos, una podemos sacar a la persona, y la otra sacar el nombre o apellido directamente, para esto el standard nos dice, que un nodo se saca simplemente llamandolo por el nombre:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;trace(xml.persona)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Si hacemos esto, nos imprime en el panel de salida, los nodos XML de todas las personas, en teoria, eso es lo que buscamos, pero como &amp;quot;persona&amp;quot; no es un nodo UNICO, nos dará todos. Pero esto tampoco nos sirve, aunque no se note uno esperaria que xml.persona fuera un array y lo pudieramos por indices, por ejemp xml.persona[0] para obtener a la primera persona, pero no funciona, pueden intentarlo.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;En cambio, existe una notacion especial para obtener un XMLList, que si podemos manejar como lista:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;trace(xml..persona)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Si bien imprime lo mismo, este si podemos usarlo como un Array de flash, y asi podemos imprimir cada atributo (nombre, apellido) de cada nodo.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Ahora, para sacar los atributos de cada nodo, existe otra notacion especial, muy simple, sin llamadas a funciones incomodas como en as2, para llamar a un atributo usamos esto:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;xml..persona[0].@apellido&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Pero que sucede si tenemos un XML en que cada día cambia el tamaño del numero de personas? Podemos hacer esto:&lt;br /&gt;&lt;br /&gt;  &amp;lt;code&amp;gt;&lt;br /&gt;&lt;br /&gt;  function onCompleteEvent(e:Event){&lt;br /&gt;&lt;br /&gt;  xml = new XML(e.target.data)&lt;br /&gt;&lt;br /&gt;  var numPersonas = xml..persona.length();&lt;br /&gt;&lt;br /&gt;  for(var k=0;k&amp;lt;;numPersonas;k++){&lt;br /&gt;&lt;br /&gt;  trace(xml..persona[k].@apellido)&lt;br /&gt;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  &amp;lt;/code&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;y asi automatizar cada nodo, y sacar la info que realmente necesitamos.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;tabla&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;persona&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;nombre&amp;gt;juan&amp;lt;/nombre&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;apellido&amp;gt;perez&amp;lt;/apellido&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;/persona&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;/tabla&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Este XML podemos llamarlo con una notación diferente, ya que no tiene atributos, sino solo nodos:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;xml..persona[0].nombre&lt;/p&gt;&lt;br /&gt;&lt;p&gt;igual con el apellido.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Para un feed necesitaríamos cargar el XML de la misma forma, pero la diferencia esta en el parseo ( lectura desde el código y manipulación ).&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Por lo que eso lo trataremos en la siguiente oportuniad.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Espero haya sido de utilidad&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22804369-6544250094704890490?l=blog.absulit.net'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Absulit/~4/1YlhWzg1ICU" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Absulit/~3/1YlhWzg1ICU/manejando-xml-en-as3-de-forma-facil.html</link><author>noreply@blogger.com (Absulit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://blog.absulit.net/2009/04/manejando-xml-en-as3-de-forma-facil.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22804369.post-4290082751594375314</guid><pubDate>Wed, 17 Dec 2008 15:18:00 +0000</pubDate><atom:updated>2008-12-17T10:17:25.782-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">diseño</category><category domain="http://www.blogger.com/atom/ns#">miercoles de imagenes</category><category domain="http://www.blogger.com/atom/ns#">fotografia</category><title>Imagenes: Fotografias Costarricenses</title><description>En busca de las mejores imágenes costarricenses en la actualidad, aquí hay una pequeña recopilación de lo que se puede encontrar con un poco de paciencia.&lt;br /&gt;&lt;br /&gt;No voy a poner mucho comentario, creo que las fotos se explican por si solas.&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/luis_f_mata/2768834395/" title="Terror Psicológico por Luis Mata"&gt;&lt;img src="http://farm4.static.flickr.com/3116/2768834395_0e53c867d5.jpg" alt="Terror Psicológico" width="450" height="302" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Terror Psicológico por Luis Mata&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;br /&gt;Soy fanático de los atardeceres&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/67703220@N00/2257414199/" title="Atardecer dominical por Jose Campos"&gt;&lt;img src="http://farm3.static.flickr.com/2185/2257414199_fdb91f9ec7.jpg" alt="Atardecer dominical" width="450" height="302" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Atardecer dominical por Jose Campos&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;br /&gt;Imagen de mi buen Amigo Audy Sanabria con quien colaboro en otros proyectos.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/audysanabria/2893398277/" title="canoa por AudyoVisual"&gt;&lt;img src="http://farm4.static.flickr.com/3142/2893398277_091b3531f6.jpg" alt="canoa" width="450" height="302"  /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Canoa por AudyoVisual&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/priscillamora/566810562/" title="Hospital San Juan de Dios por priscilla.mora"&gt;&lt;img src="http://farm2.static.flickr.com/1110/566810562_95b8cefbb5.jpg" alt="Hospital San Juan de Dios" width="328" height="500" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Hospital San Juan de Dios por priscilla.mora&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;La otra semana buscaré más imágenes impresionantes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22804369-4290082751594375314?l=blog.absulit.net'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Absulit/~4/gQoCzsREEZ8" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Absulit/~3/gQoCzsREEZ8/imagenes-fotografias-costarricenses.html</link><author>noreply@blogger.com (Absulit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://blog.absulit.net/2008/12/imagenes-fotografias-costarricenses.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22804369.post-3890027064065939893</guid><pubDate>Wed, 17 Dec 2008 01:55:00 +0000</pubDate><atom:updated>2008-12-16T20:53:51.682-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">flash review</category><category domain="http://www.blogger.com/atom/ns#">diseño</category><category domain="http://www.blogger.com/atom/ns#">paginas web</category><category domain="http://www.blogger.com/atom/ns#">martes de review</category><category domain="http://www.blogger.com/atom/ns#">flash</category><title>Web Review: Falso o No? Vaarennos vai ei</title><description>&lt;div style="text-align: center;"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-bRASWg-ek8/SUhib1dWIZI/AAAAAAAAAPc/6iJzQ9Tp_90/s1600-h/borrar1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 277px;" src="http://4.bp.blogspot.com/_-bRASWg-ek8/SUhib1dWIZI/AAAAAAAAAPc/6iJzQ9Tp_90/s400/borrar1.jpg" alt="" id="BLOGGER_PHOTO_ID_5280578793438060946" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;Conviértete en una estrella de cine y haga su propia película. Seleccione uno de estos clásicos&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Buscando una pagina web interesante para pasar el rato, me encontré con esta pagina Finlandesa; para el que sepa finlandés excelente, para el que no, pues no es tan difícil de navegar, y es bastante intuitiva a pesar que no conozcas el idioma&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.vaarennosvaiei.fi/"&gt;Väärennos vai ei&lt;/a&gt; significa &lt;span style="font-style: italic;"&gt;Falso o No&lt;/span&gt;, y va de la mano con el hecho que podés cargar  tu foto o la de alguien que conozcas en una película antigua, para verla en la trama.&lt;br /&gt;&lt;br /&gt;Me parece que es algo  entretenido y para vacilar un rato, ademas de tomar ideas para usar en diferentes paginas web donde se podría cargar elemento dinámico para tener una experiencia interactiva.&lt;br /&gt;&lt;br /&gt;Al cargarse la imagen para el rostro del personaje principal, te mostrarán un video de la película escogida, y el personaje con tu rostro. Luego si te parece el resultado, podés enviárselo a alguien o copiar el link y tenerlo para ti y los demás, o un código embed para colocarlo en tu sitio web&lt;br /&gt;&lt;br /&gt;Lo útil de esto es que en poco tiempo podés hacer que muchas personas te visiten con la excusa de, verte a ti en el video, o ponerse a ellos mismos.&lt;br /&gt;&lt;br /&gt;Visitar &lt;a href="http://www.vaarennosvaiei.fi/"&gt;Väärennos vai ei&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22804369-3890027064065939893?l=blog.absulit.net'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Absulit/~4/NQrGqgD65KQ" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Absulit/~3/NQrGqgD65KQ/web-review-falso-o-no-vaarennos-vai-ei.html</link><author>noreply@blogger.com (Absulit)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_-bRASWg-ek8/SUhib1dWIZI/AAAAAAAAAPc/6iJzQ9Tp_90/s72-c/borrar1.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.absulit.net/2008/12/web-review-falso-o-no-vaarennos-vai-ei.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22804369.post-8392459660426357334</guid><pubDate>Tue, 16 Dec 2008 02:17:00 +0000</pubDate><atom:updated>2008-12-15T21:11:33.346-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">lunes de animaciones</category><category domain="http://www.blogger.com/atom/ns#">animacion</category><title>Animaciones: Адажио Adagio, Jojo In The Stars y Fungi Film</title><description>Dediqué estos días a ver unos cortos que me parecen sorprendentes, no solo por su significado, sino por su estilo particular.&lt;br /&gt;&lt;br /&gt;Ahora que comparo las tres... creo que ninguna tiene final feliz...&lt;br /&gt;&lt;br /&gt;Adagio (Rusia)&lt;br /&gt;Director &lt;a href="http://www.bardin.ru/enggbardin.htm"&gt;Gari Bardin&lt;/a&gt;&lt;br /&gt;Un excelente trabajo hecho con unas hojas de papel y un extraño sentimiento religioso.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/gG-TL0S3sN8&amp;hl=es&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/gG-TL0S3sN8&amp;hl=es&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Jojo in the Stars (United Kingdom)&lt;br /&gt;Director &lt;a href="http://www.imdb.com/name/nm1519260/"&gt;Marc Craste&lt;/a&gt;&lt;br /&gt;Muy triste la historia, un buen trabajo de animación que merece ver los detalles más de una vez.&lt;br /&gt;&lt;br /&gt;&lt;object width='425' height='344'&gt;&lt;param name='movie' value='http://www.youtube.com/v/irm6E_UbaZA&amp;hl=es&amp;fs=1'&gt;&lt;/param&gt;&lt;param name='allowFullScreen' value='true'&gt;&lt;/param&gt;&lt;param name='allowscriptaccess' value='always'&gt;&lt;/param&gt;&lt;embed src='http://www.youtube.com/v/irm6E_UbaZA&amp;hl=es&amp;fs=1' type='application/x-shockwave-flash' allowscriptaccess='always' allowfullscreen='true' width='425' height='344'&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Fungi Film (Costa Rica)&lt;br /&gt;Director &lt;a href="http://www.youtube.com/user/Zavorio"&gt;Zavorio&lt;/a&gt;&lt;br /&gt;Aqui veo el avance de la animación independiente costarricense.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/FVFcSDWaExI&amp;hl=es&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/FVFcSDWaExI&amp;hl=es&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22804369-8392459660426357334?l=blog.absulit.net'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Absulit/~4/_jraiO8TGmI" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Absulit/~3/_jraiO8TGmI/animaciones-adagio-jojo-in-stars-y.html</link><author>noreply@blogger.com (Absulit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total><feedburner:origLink>http://blog.absulit.net/2008/12/animaciones-adagio-jojo-in-stars-y.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22804369.post-4681359734331116467</guid><pubDate>Thu, 27 Nov 2008 03:50:00 +0000</pubDate><atom:updated>2008-11-26T21:55:55.714-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">as3</category><category domain="http://www.blogger.com/atom/ns#">descargar</category><category domain="http://www.blogger.com/atom/ns#">tutorial flash</category><category domain="http://www.blogger.com/atom/ns#">as2</category><category domain="http://www.blogger.com/atom/ns#">tutorial</category><category domain="http://www.blogger.com/atom/ns#">programacion</category><category domain="http://www.blogger.com/atom/ns#">flash</category><title>Flash as3 - Tutorial II - Propiedades y Programacion Basica</title><description>Avanzando más en el código, nos dispondremos a ver las características principales de los objetos de Flash, los cuales debemos tener en mente al momento de programar, e incluso de hacer una animación por código.&lt;br /&gt;&lt;br /&gt;Básicamente, cuando estamos en Flash, tenemos la capacidad de modificar las propiedades de cada objeto, por medio del código; esto será visible en tiempo de ejecución, y no durante el tiempo de diseño; estas propiedades pueden ser tan simples como la coordenada X y Y, o el color del objeto, o en algo más complicado, utilizando el MatrixTransformer para obtener otros resultados.&lt;br /&gt;&lt;br /&gt;Considero que la forma más rápida de aprender el código, es utilizando los objetos Flash que han existido por un largo tiempo, y luego se puede ir a las classes superiores, o luego heredar de estas. Los objetos son Button en as2 y SimpleButton en as3, y MovieClip.&lt;br /&gt;&lt;br /&gt;Antes de empezar con un ejemplo, tengo que hacer referencia sobre donde se coloca el código de action script, y esto se hace en un solo layer, que se deja en blanco solo para que esté el código, no debe existir ningún objeto de ningún tipo en esta layer.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-bRASWg-ek8/SS3wC1hw57I/AAAAAAAAAOI/BQcaho3NEd8/s1600-h/layer_actions_panel_actions.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 232px;" src="http://3.bp.blogspot.com/_-bRASWg-ek8/SS3wC1hw57I/AAAAAAAAAOI/BQcaho3NEd8/s400/layer_actions_panel_actions.jpg" alt="" id="BLOGGER_PHOTO_ID_5273134670239819698" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Layer Actions y Panel de Código Fig 1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;Para ingresar el código en esta layer, seleccione con el mouse el primer fotograma o &lt;span style="font-style: italic;"&gt;keyframe&lt;/span&gt;, indicado en la Fig 1 en color negro y bajo el numero 1 de la linea de tiempo o timeline, y luego presione la tecla F9. El panel aparece como una ventana de tab adherible al escenario, y con una leyenda que dice Actions-Fotograma dependiendo del idioma.&lt;br /&gt;&lt;br /&gt;Si necesita ingresar una nueva layer, presione el primer botón indicado en la Fig 2, y aparecerá una nueva capa sobre la capa existente, por costumbre, la layer actions, va sobre todas las layers, para fácil ubicación, asi que la layer se puede seleccionar y arrastrar con el mouse sobre la nueva layer.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-bRASWg-ek8/SS3z31rin6I/AAAAAAAAAOY/sWWY80SS1wA/s1600-h/crear_nueva_layer.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 297px; height: 291px;" src="http://1.bp.blogspot.com/_-bRASWg-ek8/SS3z31rin6I/AAAAAAAAAOY/sWWY80SS1wA/s400/crear_nueva_layer.jpg" alt="" id="BLOGGER_PHOTO_ID_5273138879348776866" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Insertar Nueva Layer Fig 2&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: left;"&gt;Para nuestro ejemplo haremos dos objetos, un Button o SimpleButton, y un MovieClip, agregaremos funcionalidad al Button, para que modifique al MovieClip. El Button será a base de un shape cuadrado azul y convertido con F8, y el MovieClip será a base de un shape cuadrado rojo y convertido con la tecla F8; el Button se llamará my_btn, y el MovieClip my_mc; estos sufijos son necesarios para cada instancia (_mc, _btn) para forzar al Flash a desplegar las propiedades inherentes a cada Class, si bien se pueden intercambiar, la idea es tener el que corresponde para obtener las propiedades correctas.&lt;br /&gt;&lt;br /&gt;El nombre de cada objeto se coloca en el panel de propiedades (Fig 3), primero se selecciona el objeto y luego se presiona Ctrl-F3 si el panel no está visible, y el nombre que usaremos en el código se coloca en la caja de texto que dice &lt;span style="font-style: italic;"&gt;&lt;nombre&gt;&lt;/nombre&gt;&lt;/span&gt; en color gris claro.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-bRASWg-ek8/SS3-_ocnGzI/AAAAAAAAAOg/FX66KhKykFU/s1600-h/insertar_nombre_instancia.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 297px; height: 154px;" src="http://1.bp.blogspot.com/_-bRASWg-ek8/SS3-_ocnGzI/AAAAAAAAAOg/FX66KhKykFU/s400/insertar_nombre_instancia.jpg" alt="" id="BLOGGER_PHOTO_ID_5273151107863354162" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Insertando nombre de instancia Fig 3&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;Colocados los nombres desplegamos el panel de código de actionscript, seleccionado el primer frame del layer actions y presionando F9, luego digitamos el siguiente código, de acuerdo a la versión que manejemos, as2, o as3:&lt;br /&gt;&lt;br /&gt;Ambos códigos hacen lo mismo, pero desde puntos de vista a futuro, el código as3 es mas útil para un programador, pero el código as2, es más útil para un diseñador, ya que es más cercano a nuestro lenguaje.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Aquí, al boton le decimos que cuando el Event de Mouse Click se realice sobre él, se ejecute la function onClick.&lt;br /&gt;&lt;br /&gt;Luego la function onClick tiene un parametro e de tipo MouseEvent, éste carga con un monton de propiedades necesarias que hacen referencia al objeto que realizó y sobre el que se realiza la accion, por ejemplo, currentTarget, es el boton al que hicimos click.&lt;br /&gt;&lt;br /&gt;En la definición del Function llamamos directamente a my_mc, y variamos una de sus propiedades (rotation), la incrementamos cada vez en 25;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;as3&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;my_btn.addEventListener(MouseEvent.CLICK,onClik)&lt;br /&gt;&lt;br /&gt;function onClik(e:MouseEvent){&lt;br /&gt;var boton:SimpleButton = e.currentTarget as SimpleButton&lt;br /&gt;trace(boton.name)&lt;br /&gt;my_mc.rotation += 25;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Aqui es casi lo mismo, antes, en as2, para definirse al objeto que llama a la Function, usamos &lt;span style="font-style: italic;"&gt;this&lt;/span&gt;, y el evento está dentro del mismo botón, así que asignamos una Function sin nombre y dentro ponemos lo que necesitamos que deba suceder.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;as2&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;my_btn.onPress = function(){&lt;br /&gt;trace(this)&lt;br /&gt;my_mc._rotation += 25;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Presione Control Enter y vea el resultado al presionar el botón.&lt;br /&gt;&lt;br /&gt;Descargar Archivos del tutorial&lt;br /&gt;&lt;br /&gt;&lt;iframe marginheight="0" marginwidth="0" style="border: 1px solid rgb(221, 229, 233); margin: 3px; padding: 0pt; width: 240px; height: 66px; background-color: rgb(255, 255, 255);" src="http://cid-2682bb06da64d056.skydrive.live.com/embedrowdetail.aspx/Material%20Tutorial%20Flash/tutorial2.zip" scrolling="no" frameborder="0"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-bRASWg-ek8/SS3xb6g43hI/AAAAAAAAAOQ/4wewv03v5fg/s1600-h/crear_nueva_layer.jpg"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22804369-4681359734331116467?l=blog.absulit.net'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Absulit/~4/vBT5xj1Tvw8" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Absulit/~3/vBT5xj1Tvw8/flash-as3-tutorial-ii-propiedades-y.html</link><author>noreply@blogger.com (Absulit)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_-bRASWg-ek8/SS3wC1hw57I/AAAAAAAAAOI/BQcaho3NEd8/s72-c/layer_actions_panel_actions.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://blog.absulit.net/2008/11/flash-as3-tutorial-ii-propiedades-y.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22804369.post-8735343431312029051</guid><pubDate>Mon, 24 Nov 2008 22:03:00 +0000</pubDate><atom:updated>2008-11-24T17:35:08.549-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">as3</category><category domain="http://www.blogger.com/atom/ns#">tutorial flash</category><category domain="http://www.blogger.com/atom/ns#">tutorial</category><title>Flash as3 - Tutorial I - Bases</title><description>Si estás leyendo esto seguro ya has visto alguna animación en flash y quieres  hacer algo por que te ha emocionado desde hace tiempo, así que no perdamos tiempo, empecemos.&lt;br /&gt;&lt;br /&gt;En flash se trabaja en dos conceptos separados que se pueden unir dependiendo de tanto tiempo tengas para hacer una o la otra, estas son:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;animación: Esto es lo que nos atrae por primera vez a flash, una buena animación con increíbles efectos. Diseñadores y cualquier persona en general toman la decisión de aprender flash por estas razones.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;programación: esta es la menor de las razones, pero es la razón por las cuales los que se decidieron por la primera claudican rápidamente, ya que la van a necesitar, pero es la razón por las cuales muchas personas pueden ver el potencial más allá de una simple animación.&lt;/li&gt;&lt;/ul&gt;Así que si para este punto ud no sabe programación, mejor le interesará hacer cosas con Photoshop o Corel Draw.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Cosas Basicas de flash&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;En flash el escenario es su universo, cada layer representa un plano en donde usted puede colocar objetos como dibujos en una hoja de papel,  cada layer ocupa una posición desde abajo hacia arriba, y cada layer puede ser cambiada de posición, la logica de esto va desde, una animación en la que un árbol va frente a una montaña, y en programación con el hecho ejemplo base de que no puedes hacerle click a un botón si el cursor está abajo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cada objeto que dibujemos o pongamos en el escenario puede tener su propio universo manipulable de la misma forma o parecida que el escenario raíz, dependiendo de que tipo de objeto le digamos que sea, asi tenemos&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Shapes: dibujos hechos a mano alzada con el flash, figuras, formas, rectángulos, que se ven afectados unos a otros si cada shape se toca entre si.&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-bRASWg-ek8/SSshZPccsxI/AAAAAAAAAMo/eJw_E7xX_fE/s1600-h/flash_graphics.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 304px;" src="http://2.bp.blogspot.com/_-bRASWg-ek8/SSshZPccsxI/AAAAAAAAAMo/eJw_E7xX_fE/s400/flash_graphics.jpg" alt="Flash shapes fig 1" id="BLOGGER_PHOTO_ID_5272344506293596946" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-style: italic;"&gt;Flash shapes fig 1&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Groups: presionando CTL-G tomamos uno o mas objetos y podemos agruparlos para manipularlos en modo de diseño como uno solo{atención que solo dije modo de diseño}. Al seleccionar un grupo se crea un marco de color alrededor que simboliza la unión de estos; su contenido puede ser accesado haciendo doble click.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-bRASWg-ek8/SSsiKSyzG0I/AAAAAAAAAMw/ZagHIxN59Cs/s1600-h/flash_graphics_group.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 304px;" src="http://2.bp.blogspot.com/_-bRASWg-ek8/SSsiKSyzG0I/AAAAAAAAAMw/ZagHIxN59Cs/s400/flash_graphics_group.jpg" alt="Flash graphics group Fig 2" id="BLOGGER_PHOTO_ID_5272345349006236482" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-style: italic;"&gt;Flash graphics group Fig 2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Graphics: es un objeto especial con la propiedad de contener una animación sin interactuar este objeto con el código, seleccionamos un objeto y presionamos F8, y seleccionamos Graphic y damos aceptar, ahora puedes elegir cambiarle el color a este objeto en tiempo de diseño, si la animación se puede reproducir una vez, indefinidamente, o si solo es un fotograma estático.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-bRASWg-ek8/SSsmOJt4gHI/AAAAAAAAAM4/Vk4b2P5A6VU/s1600-h/flash_graphic.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 228px;" src="http://2.bp.blogspot.com/_-bRASWg-ek8/SSsmOJt4gHI/AAAAAAAAAM4/Vk4b2P5A6VU/s400/flash_graphic.jpg" alt="Cambiando color a un Graphic Fig 3" id="BLOGGER_PHOTO_ID_5272349813335687282" border="0" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-style: italic;"&gt;Cambiando color a un Graphic Fig 3&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Button: un tipo con mas propiedades, se puede llamar a cada uno específicamente desde el código, se pueden establecer estados de comportamiento, como que pasará cuando se pone el mouse encima, o que pasará cuando se quita el mouse, o se presiona este, esto en animación, otros comportamientos se pueden establecer por medio de código. Selecciona un shape, presiona F8 selecciona Button y ya tienes un botón.&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-bRASWg-ek8/SSsm4O728DI/AAAAAAAAANA/DRDmeCkN8es/s1600-h/flash_button_internal.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 389px; height: 400px;" src="http://4.bp.blogspot.com/_-bRASWg-ek8/SSsm4O728DI/AAAAAAAAANA/DRDmeCkN8es/s400/flash_button_internal.jpg" alt="" id="BLOGGER_PHOTO_ID_5272350536290988082" border="0" /&gt;&lt;/a&gt; &lt;span style="font-style: italic;"&gt;Dentro de un Button Fig 4&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;MovieClip: El objeto mas usado en flash, puede tener todas la propiedades que has leído en los objetos anteriores, incluso su propio universo como el escenario( stage) donde puedes poner otros objetos como los anteriores. Se puede accesar por codigo al igual que un button. Selecciona un shape, presiona F8 selecciona MovieClip y ya tienes uno.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-bRASWg-ek8/SSsssAhf7gI/AAAAAAAAANY/p-nxiPz-vVg/s1600-h/flash_movieclip.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 292px;" src="http://1.bp.blogspot.com/_-bRASWg-ek8/SSsssAhf7gI/AAAAAAAAANY/p-nxiPz-vVg/s400/flash_movieclip.jpg" alt="" id="BLOGGER_PHOTO_ID_5272356923333668354" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;Creando un MovieClip a partir de un Shape Fig 5&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Buttons y MovieClips se pueden llamar desde el código, y manipular todas sus propiedades según la ocasión.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-bRASWg-ek8/SSsnhE1lBTI/AAAAAAAAANI/_ZTz_Ded4W8/s1600-h/flash_button_properties.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 232px;" src="http://3.bp.blogspot.com/_-bRASWg-ek8/SSsnhE1lBTI/AAAAAAAAANI/_ZTz_Ded4W8/s400/flash_button_properties.jpg" alt="Propiedades de un Button Fig 5" id="BLOGGER_PHOTO_ID_5272351237954929970" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;Propiedades de un Button Fig 6&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Cada que creas un Symbol de estos se agrega a la Biblioteca (F11), puedes hacer copias de estos en el escenario arrastrandolos a este, pero cada que haces esto puede ser una ventaja o desventaja segun la ocasion, cada symbol por debajo es el mismo, asi que si lo modificas por debajo se reflejará en todos, asi que se debe pensar con anterioridad.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-bRASWg-ek8/SSsoXyJVPKI/AAAAAAAAANQ/2RVu1LyyBQ4/s1600-h/flash_button_modificacion_de_symbol.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 244px;" src="http://2.bp.blogspot.com/_-bRASWg-ek8/SSsoXyJVPKI/AAAAAAAAANQ/2RVu1LyyBQ4/s400/flash_button_modificacion_de_symbol.jpg" alt="Cambiando al Button internamente" id="BLOGGER_PHOTO_ID_5272352177830313122" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Cambiando al Button internamente&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;todos los demás se modifican.  Fig 7&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Esta ha sido la primera parte del tutorial, cualquier duda será bien recibida, y podrá también servir para crear la siguiente parte del tutorial.&lt;br /&gt;Cada vez iremos progresando en animación, código básico y avanzado.&lt;br /&gt;&lt;br /&gt;Espero haya sido de utilidad.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22804369-8735343431312029051?l=blog.absulit.net'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Absulit/~4/auPAArBai3k" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Absulit/~3/auPAArBai3k/flash-as3-tutorial-i-bases.html</link><author>noreply@blogger.com (Absulit)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_-bRASWg-ek8/SSshZPccsxI/AAAAAAAAAMo/eJw_E7xX_fE/s72-c/flash_graphics.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.absulit.net/2008/10/flash-as3-tutorial-i-bases.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22804369.post-1737771813979917552</guid><pubDate>Wed, 08 Oct 2008 01:25:00 +0000</pubDate><atom:updated>2008-10-07T19:33:16.472-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">diseño</category><category domain="http://www.blogger.com/atom/ns#">animacion</category><category domain="http://www.blogger.com/atom/ns#">grickle</category><category domain="http://www.blogger.com/atom/ns#">2D</category><title>Cantamos el Bosque Electrico</title><description>Me encantan las animaciones de Grickle, simplemente hermosas y terroríficas, y esta tiene algo más, ese extraño componente musical... la risa! y el terror predecible... pero a quién le importa? jaja disfruten!&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/mkUZFV8g0YE&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/mkUZFV8g0YE&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22804369-1737771813979917552?l=blog.absulit.net'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Absulit/~4/hEjscQTEOn4" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Absulit/~3/hEjscQTEOn4/cantamos-el-bosque-electrico.html</link><author>noreply@blogger.com (Absulit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.absulit.net/2008/10/cantamos-el-bosque-electrico.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22804369.post-3419158728430696164</guid><pubDate>Wed, 24 Sep 2008 03:15:00 +0000</pubDate><atom:updated>2008-09-23T22:08:33.454-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">illustrator</category><category domain="http://www.blogger.com/atom/ns#">3D</category><category domain="http://www.blogger.com/atom/ns#">CS4</category><category domain="http://www.blogger.com/atom/ns#">flash review</category><category domain="http://www.blogger.com/atom/ns#">diseño</category><category domain="http://www.blogger.com/atom/ns#">photoshop</category><category domain="http://www.blogger.com/atom/ns#">adobe</category><category domain="http://www.blogger.com/atom/ns#">flash</category><category domain="http://www.blogger.com/atom/ns#">2D</category><title>Adobe CS4 Liberado!</title><description>&lt;embed src="http://tv.adobe.com/Embed.swf" quality="high" bgcolor="#000000" width="400" height="250" name="AdobeTVPlayer" play="true" loop="false" quality="high" allowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" flashVars="v=~b64~aHR0cDovL2Fkb2JlLmVkZ2Vib3NzLm5ldC9kb3dubG9hZC9hZG9iZS9hZG9iZXR2Mi9jczRfZmVhdHVyZV90b3Vycy85Nl9jc25fMDE2LmZsdj9yc3NfZmVlZGlkPTE1NTYmeG1sdmVycz0y&amp;w=400&amp;h=250"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Hoy a las 10 am hora de Costa Rica, me asombré al ver la transmisión en vivo por Internet provista por Adobe mostrando las nuevas capacidades que tienen sus productos.&lt;br /&gt;Muchos ya conocidos por todos, pero ahora por fin para poder usarlos, estas nuevas cualidades harán que las tareas repetitivas sean mas simples para los que trabajamos en medios.&lt;br /&gt;&lt;br /&gt;Si bien no hablaban mucho de Flash en sí, hablaban de las demás herramientas con las capacidades enfocadas a lo que se necesita para Flash, e intercalado mostraron esas nuevas características.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Photoshop&lt;/span&gt; ahora tiene la capacidad de cargar imágenes de 2GB sin atascarse en memoria! al hacer zoom se hace un preview y carga la zona requerida actual, osea que no se verá más que lo necesario.&lt;br /&gt;&lt;br /&gt;Además al cargar imágenes panorámicas el mismo programa crea una vista en 3D para recorrer la imagen.&lt;br /&gt;&lt;br /&gt;También se pueden cargar modelos en &lt;span style="font-weight: bold;"&gt;3D &lt;/span&gt;y pintarlos y rotar los mismos objetos dentro de la herramienta, ademas de poder pintarlo con imágenes comunes(texturas).&lt;br /&gt;&lt;br /&gt;Incluso ahora se puede escalar una imagen previendo si se quiere que una zona se deba escalar, para que no se vea "estirada" o "apretada" al momento de ajustar.&lt;br /&gt;&lt;br /&gt;En &lt;span style="font-weight: bold;"&gt;Illustrator &lt;/span&gt;ahora se puede crear una especie de archivo de proyecto, donde puedes tener abiertos al mismo tiempo varios .ai y verlos al mismo tiempo, con la capacidad de copiar objetos de un diseño a otro sin pasar entre ventanas.&lt;br /&gt;&lt;br /&gt;También la brocha &lt;span style="font-weight: bold;"&gt;Blob&lt;/span&gt;, que genera un area de pintura que al terminar crea un stroke alrededor.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Indesign &lt;/span&gt;ahora tiene la capacidad de exportar directamente al flash.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Flash &lt;/span&gt;tiene la capacidad de poder visualizar el path de los motion tweens, y poder modificarlos, ademas de ahora tener bones para hacer &lt;span style="font-weight: bold;"&gt;inverse kinematics&lt;/span&gt;, haciendo joints entre objetos y completamente articulados y con gravedad, asi si creás una cadena, cada parte reaccionará por el efecto de la que tiene a la par.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Flash &lt;/span&gt;tambien tiene ahora un manejo especifico de propiedades para la animación como lo hace After Effects, y como muchos ya conocen, ahora junto con Astro(flash player 10) la capacidad de modifcar los ejes tridimencionales.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;After Effects&lt;/span&gt; ahora tiene la capacidad de idenficar las palabras que se mencionan en una edición de video, como por ejemplo para contarlas; ademas de poder reemplazar una pantalla verde casi automáticamente, lo que antes tomaba mucho más tiempo&lt;br /&gt;&lt;br /&gt;No son todos los efectos que existes de estas aplicaciones, pero si los que me parecieron muy relevantes&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22804369-3419158728430696164?l=blog.absulit.net'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Absulit/~4/DTTXWnbd3Kk" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Absulit/~3/DTTXWnbd3Kk/abode-cs4-liberado.html</link><author>noreply@blogger.com (Absulit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">5</thr:total><feedburner:origLink>http://blog.absulit.net/2008/09/abode-cs4-liberado.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22804369.post-798498687152438678</guid><pubDate>Sun, 07 Sep 2008 02:53:00 +0000</pubDate><atom:updated>2008-09-06T21:00:49.980-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">windows</category><category domain="http://www.blogger.com/atom/ns#">seinfield</category><category domain="http://www.blogger.com/atom/ns#">bill gates</category><title>Jerry Seinfield y Bill Gates en un comercial para Vista</title><description>Sinceramente es algo confuso como usuario programador nacido en Windows ver este comercial, por que parece no tener sentido... si esta gracioso, vacilón como solo Seinfield sabe hacerlo, pero parece que dura mucho para llegar el punto.&lt;br /&gt;&lt;br /&gt;La cosa es que todavía falta un rato para que salga &lt;a href="http://en.wikipedia.org/wiki/Windows_7"&gt;Windows 7&lt;/a&gt;, entonces tiene sentido que Microsoft apunte a ganarse al publico como lo hizo Apple para ganárselo de igual forma con sus comerciales Mac vs PC; y por lo menos tendremos un rato de diversion viendo estos intentos de ganarnos.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/AS3zclL0ACc&amp;hl=es&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/AS3zclL0ACc&amp;hl=es&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22804369-798498687152438678?l=blog.absulit.net'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Absulit/~4/RhQMvjzvmQE" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Absulit/~3/RhQMvjzvmQE/jerry-seinfield-y-bill-gates-en-un.html</link><author>noreply@blogger.com (Absulit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.absulit.net/2008/09/jerry-seinfield-y-bill-gates-en-un.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22804369.post-3691429970321084584</guid><pubDate>Sun, 24 Aug 2008 19:11:00 +0000</pubDate><atom:updated>2008-08-24T13:29:39.458-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">internet explorer</category><category domain="http://www.blogger.com/atom/ns#">programacion</category><category domain="http://www.blogger.com/atom/ns#">Firefox</category><title>Firefox y Adobe Flash consumiendo a Internet Explorer</title><description>Recientemente leí que hartos de esperar a que IE (Internet Explorer) agregara complementos de verdad a su browser, &lt;a href="http://www.mozilla-europe.org/es/firefox/"&gt;Mozilla&lt;/a&gt; y &lt;a href="http://adobe.com"&gt;Adobe&lt;/a&gt; han unido fuerzas para que, en el proximo release de Flash Player, se instalen nuevas capacidad a IE que deberian a esta altura ser ya estandar.&lt;br /&gt;&lt;br /&gt;En el articulo &lt;a href="http://www.urgente24.com/index.php?&amp;amp;id=ver&amp;amp;tx_ttnews%5Btt_news%5D=106391&amp;amp;cHash=8c88669044"&gt;Firefox Caníbal&lt;/a&gt; se da la impresion que este browser consumirá poco a poco a IE desde adentro, para convertirlo en un browser con funcionalidades FireFox(FF), pero que lograrian metiendose en la programacion de Microsoft? a mi gusto nada, como desarrolladores claro que nos simplificaria la vida, pero igual, si no actualizas tu IE igual tendrás que desarrollar de forma de &lt;a href="http://es.wikipedia.org/wiki/Compatibilidad_hacia_atr%C3%A1s"&gt;compatibilidad hacia atrás&lt;/a&gt;, entonces quedamos en las mismas.&lt;br /&gt;&lt;br /&gt;Entonces de que sirve este ataque por los costados?&lt;br /&gt;Bueno, a mi parecer, si un usuario arraigado a IE ve las imcreibles capacidades de FF en su propio navegador, decidirá tarde o temprano por usarlo, entonces ya no necesitarias IE, haciendo que Microsoft decida porfin  actualizar su browser, pero la verdad para qué? si ya me sirve perfectamente mi FF... entonces no tiene sentido tal ataque, a menos que quieras desaparecer de la tierra a IE, lo que no me parece tan mal.&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;h2 style="font-weight: normal;"&gt;&lt;a href="http://www.urgente24.com/index.php?&amp;amp;id=ver&amp;amp;tx_ttnews%5Btt_news%5D=106391&amp;amp;cHash=8c88669044"&gt;&lt;span style="font-size:100%;"&gt;Firefox caníbal: Mozilla desarrolla pugins para IE, cansado de esperar a Microsoft&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22804369-3691429970321084584?l=blog.absulit.net'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Absulit/~4/8GiwkQaaGz8" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Absulit/~3/8GiwkQaaGz8/firefox-y-adobe-flash-consumiendo.html</link><author>noreply@blogger.com (Absulit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total><feedburner:origLink>http://blog.absulit.net/2008/08/firefox-y-adobe-flash-consumiendo.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22804369.post-5474941685945988817</guid><pubDate>Tue, 19 Aug 2008 01:06:00 +0000</pubDate><atom:updated>2008-08-18T20:00:43.688-06:00</atom:updated><title>RSS ATOM Reader en Adobe Flash AS3</title><description>Este fin de semana tuve un cierto éxito al crear un lector de &lt;a href="http://es.wikipedia.org/wiki/Feed"&gt;feeds&lt;/a&gt; basados en &lt;a href="http://es.wikipedia.org/wiki/XML"&gt;XML&lt;/a&gt; y mejor aun en AS3. Lo interesante es que comencé creando solo una forma para leer mis propios blogs desde mi pagina principal (&lt;a href="http://absulit.net"&gt;absulit.net&lt;/a&gt;), para que aquel que quisiera asomarse de forma rápida en el ultimo post, tambien viera la galeria.&lt;br /&gt;&lt;br /&gt;Rápidamente me di cuenta que por los tipos de formato diferente que representan Atom y RSS se me iba a dificultar leer un post, asi que opté por una lectura recursiva de todos los nodos:&lt;br /&gt;&lt;br /&gt;Si hay nodo:&lt;br /&gt;      si es el tag que necesito:&lt;br /&gt;            si es de tipo 3(el texto final): escribirlo&lt;br /&gt;            si no: tomar nodo hijo y volver al inicio&lt;br /&gt;&lt;br /&gt;Ahora, ha sucedido un inconveniente que desconozco razon, y es que al usar IE no logra conexion, y no carga el XML, por lo que lo considero aun en fase de desarrolo, pero que aplicado este conocimiento en ASPX puede dar buenos resultados para crear &lt;a href="http://en.wikipedia.org/wiki/News_ticker"&gt;tickers de noticias&lt;/a&gt;, o solo cargar los encabezados o partes especificas de un feed.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://absulit.net"&gt;Sin embargo pueden ver su funcionamiento beta dentro de mi pagina principal&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22804369-5474941685945988817?l=blog.absulit.net'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Absulit/~4/nE5XHRJVQlg" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Absulit/~3/nE5XHRJVQlg/rss-atom-reader-en-adobe-flash-as3.html</link><author>noreply@blogger.com (Absulit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://blog.absulit.net/2008/08/rss-atom-reader-en-adobe-flash-as3.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22804369.post-7755626604130634299</guid><pubDate>Tue, 01 Jul 2008 02:46:00 +0000</pubDate><atom:updated>2008-06-30T21:41:00.527-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">marketing viral</category><category domain="http://www.blogger.com/atom/ns#">diseño</category><category domain="http://www.blogger.com/atom/ns#">paginas web</category><category domain="http://www.blogger.com/atom/ns#">programacion</category><title>El Marketing Viral en las Paginas Web</title><description>El estar involucrado en el negocio de las paginas web me ha abierto la mente a un mundo de posibilidades sobre la forma en que &lt;span style="font-weight: bold;"&gt;se nos puede, o podemos vender un producto&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;En la actualidad, y de ahí hacia atrás, las personas hemos sido invadidas por el ataque de los medios, en que se nos presenta un producto sobre los demás, haciéndonos ver que, este producto, es superior a otros de su misma clase; esto seria fantástico si no interrumpiera nuestro programa favorito en la televisión, o nuestra música en la radio.&lt;br /&gt;&lt;br /&gt;De esta forma, el usuario ha aprendido a &lt;span style="font-style: italic;"&gt;bloquear &lt;/span&gt;estas influencias como por ejemplo &lt;span style="font-weight: bold;"&gt;cambiando de canal&lt;/span&gt;, o simplemente huyendo a Internet, donde la fabrica de comerciales queda bloqueada... a menos que nosotros decidamos verlos...&lt;br /&gt;&lt;br /&gt;Entonces se produce el siguiente fenómeno, un usuario verá publicidad solo si quiere. ¿Cómo es esto posible? Sencillo, un usuario solo lo hará en el momento que necesite información con respecto a un producto, pero no se quedará ahí, esperará que a cambio le den lo que quiere, una razon para quedarse viendo publicidad, osea entretenimiento.&lt;br /&gt;&lt;br /&gt;Páginas que realizan esto muy bien son como la muy cambiante y conocida página de &lt;a href="http://nike.com/"&gt;Nike&lt;/a&gt;, donde el increíble manejo de medios utilizando &lt;span style="font-weight: bold;"&gt;Adobe Flash&lt;/span&gt; y herramientas afines, le brindan al usuario una experiencia de entretenimiento inigualable... y es un éxito si al pasar los días... recuerdas la marca...&lt;br /&gt;&lt;br /&gt;Es una estrategia simple,&lt;span style="font-weight: bold;"&gt; rodeas tu marca de cosas impresionantes&lt;/span&gt;, y el usuario relacionará la marca con ella, y la marca por lógica, se vuelve &lt;span style="font-weight: bold;"&gt;asombrosa&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;Marketing Viral&lt;/li&gt;&lt;/ul&gt;El marketing viral, mas que un paso genial, es un plan que puede durar hasta un año, el mejor ejemplo de esto, son las paginas relacionadas a la película &lt;a href="http://wwws.warnerbros.es/thedarkknight/"&gt;&lt;span style="font-weight: bold;"&gt;The Dark Knight&lt;/span&gt;&lt;/a&gt;, que mantienen vivo el gusto de los fan con la película sin que se den cuenta, rodeándolos de juegos del &lt;span style="font-weight: bold;"&gt;Joker&lt;/span&gt;, pistas a otros sitios web para descubrir el siguiente juego, claro que todo para que vayas a ver la película, aunque personas como yo, igual la veremos y de paso disfrutamos de este marketing... acaso habrán logrado su cometido conmigo?&lt;br /&gt;&lt;br /&gt;&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;Impresionando&lt;/li&gt;&lt;/ul&gt;Esto solo se puede lograr con una visión a futuro, y relacionándose con el usuario, intercambiando, innovando, siendo el mejor. Una pagina impresionante te hará decir &lt;span style="font-style: italic;"&gt;wow &lt;/span&gt;la primera vez que entres, pero será olvidada si no esta cambiando constantemente, o teniendo información útil que respalde esa falta de innovación.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;La única solución &lt;/span&gt;es ser tan creativo como sea imaginable, rodeándose de personas crean que todo es posible, diseñando interfaces impresionantes, y utilizando las herramientas desde un punto de vista fuera de la programación, y más amarrado al diseño, sin preocuparse si se puede o no hacer, sino mas bien, por lo increíble como lucirá.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22804369-7755626604130634299?l=blog.absulit.net'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Absulit/~4/shxWyDkh4F4" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Absulit/~3/shxWyDkh4F4/el-marketing-viral-en-las-paginas-web.html</link><author>noreply@blogger.com (Absulit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total><feedburner:origLink>http://blog.absulit.net/2008/06/el-marketing-viral-en-las-paginas-web.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22804369.post-7070277380609661990</guid><pubDate>Mon, 19 May 2008 14:00:00 +0000</pubDate><atom:updated>2008-05-19T08:00:02.602-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">java</category><category domain="http://www.blogger.com/atom/ns#">Codigo util para Java</category><category domain="http://www.blogger.com/atom/ns#">programacion</category><title>Codigo Util para Java I I -  Archivos de Texto</title><description>Tareas básicas al trabajar en java para la Universidad serian una como, leer un archivo, recorrerlo linea por línea, contar el numero de lineas, hacer que cada linea tenga una serie de registros,  guardar datos, recuperar... cosas asi...&lt;br /&gt;&lt;br /&gt;No voy a extenderme en explicar el codigo que está dentro de los metodos, sino mas bien, la utilizacion de la clase, ya que tiene una forma especial de usarse, que si no se hace correctamente no funcionará:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Nombre del fichero:&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;Archivos.java&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;import java.io.*;&lt;br /&gt;import java.util.*;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public class Archivos {&lt;br /&gt;      private File archivo; &lt;br /&gt;      private FileReader in;    &lt;br /&gt;      private FileWriter out;     &lt;br /&gt;      private FileOutputStream fos;    &lt;br /&gt;      private ObjectOutputStream oos;     &lt;br /&gt;      private FileInputStream fis;     &lt;br /&gt;      private ObjectInputStream ois;    &lt;br /&gt;      private static Archivos archivos;&lt;br /&gt;    &lt;br /&gt; &lt;br /&gt;      public Archivos() {&lt;br /&gt;              super();&lt;br /&gt;            &lt;br /&gt;      }&lt;br /&gt; &lt;br /&gt;      public static Archivos getInstance() {&lt;br /&gt;              if(archivos == null){&lt;br /&gt;                      archivos = new Archivos();    &lt;br /&gt;              }&lt;br /&gt;              return archivos;&lt;br /&gt;      }&lt;br /&gt;    &lt;br /&gt;      public synchronized void escribirArchivo(String ruta, String contenido) throws IOException {&lt;br /&gt;        getInstance();&lt;br /&gt;              File file = new File(ruta);&lt;br /&gt;              out = new FileWriter(file.getAbsolutePath(), true);&lt;br /&gt;              out.write(contenido);&lt;br /&gt;              out.close();           &lt;br /&gt;      }&lt;br /&gt;    &lt;br /&gt;      public synchronized String leerArchivo(String ruta) throws IOException, FileNotFoundException {&lt;br /&gt;              StringBuffer cadena = new StringBuffer();&lt;br /&gt;              in = new FileReader(ruta);&lt;br /&gt;&lt;br /&gt;              int c = 0;&lt;br /&gt;              while((c = in.read()) != -1) {&lt;br /&gt;                 cadena.append((char) c);&lt;br /&gt;              }&lt;br /&gt;&lt;br /&gt;              return cadena.toString();&lt;br /&gt;      }&lt;br /&gt;    &lt;br /&gt;      public synchronized void copiarArchivo(String origen, String destino, boolean annadir) throws IOException, FileNotFoundException {&lt;br /&gt;             File archivoOrigen = new File(origen);&lt;br /&gt;             File archivoDestino = new File(destino);&lt;br /&gt; &lt;br /&gt;          in = new FileReader(archivoOrigen.getAbsolutePath());&lt;br /&gt;          out = new FileWriter(archivoDestino.getAbsolutePath(), annadir);&lt;br /&gt;  &lt;br /&gt;          int caracter = 0;&lt;br /&gt;          while ((caracter = in.read()) != -1) {&lt;br /&gt;                  out.write(caracter);&lt;br /&gt;              }&lt;br /&gt;  &lt;br /&gt;          in.close();&lt;br /&gt;          out.close();&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      public synchronized void guardarObjeto(String ruta, Object objeto) throws IOException {&lt;br /&gt;              fos = new FileOutputStream(ruta);&lt;br /&gt;              oos = new ObjectOutputStream(fos);&lt;br /&gt;              oos.writeObject(objeto);&lt;br /&gt;              fos.flush();&lt;br /&gt;      }&lt;br /&gt;    &lt;br /&gt;      public synchronized Object recuperarObjeto(String ruta) throws IOException, FileNotFoundException, ClassNotFoundException {&lt;br /&gt;              fis = new FileInputStream(ruta);&lt;br /&gt;              ois = new ObjectInputStream(fis);&lt;br /&gt;              return ois.readObject();&lt;br /&gt;      }   &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sencillamente hacen una instancia de la clase (es obligatorio), se llama a el metodo que lo instancia (cada vez que se va a abrir un nuevo archivo) y luego se procede a utilizar los metodos propios de la clase&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;  Archivos miArchivo = new Archivos();&lt;br /&gt;  miArchivo = Archivos.getInstance();&lt;br /&gt;               try{&lt;br /&gt;&lt;br /&gt;   String ruta = "c:\salida.txt";&lt;br /&gt;   String contenido = ES.leer("Digite el texto a Continuacion: \n");&lt;br /&gt;   miArchivo.escribirArchivo(ruta,contenido);&lt;br /&gt;   &lt;br /&gt;   ES.imprimir("\nContenido del Archivo: \n\n" + miArchivo.leerArchivo(ruta));&lt;br /&gt;               }catch(Exception e){&lt;br /&gt;                      ES.imprimir(e)&lt;br /&gt;               }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Utilizando la clase de la publicación anterior, podemos de una forma mas sencilla escribir y leer hacia un archivo desde nuestro codigo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Saludos, y espero que sea de utilidad&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22804369-7070277380609661990?l=blog.absulit.net'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Absulit/~4/YWZXV7C2rYI" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Absulit/~3/YWZXV7C2rYI/codigo-util-para-java-i-i-archivos-de.html</link><author>noreply@blogger.com (Absulit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">5</thr:total><feedburner:origLink>http://blog.absulit.net/2008/05/codigo-util-para-java-i-i-archivos-de.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22804369.post-7358190768843626432</guid><pubDate>Sun, 18 May 2008 18:00:00 +0000</pubDate><atom:updated>2008-05-18T12:00:00.550-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">java</category><category domain="http://www.blogger.com/atom/ns#">Codigo util para Java</category><category domain="http://www.blogger.com/atom/ns#">programacion</category><title>Codigo Util para Java I -  Impresion en Pantalla y Lectura del Teclado</title><description>Cuando empezamos en java no tenemos ni la menor idea de por donde empezar; en otros programas como Pascal o C y C++, imprimir algo en pantalla es muy fácil, al igual que leer algo del teclado para guardarlo en una variable para utilizarlo después, pero java tiene tantas cosas y tan lejanas una de la otra, que las tareas mas sencillas se vuelven tediosas; así que, aquí traigo una serie de posts con código útil y básico, para iniciar en java.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Imprimir en Pantalla&lt;/span&gt; realmente es muy sencillo, pero si es algo largo de escribir:&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;pre&gt;System.out.println("Hola Mundo");&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Pero aunque sea algo redundante, podemos hacer la nuestra propia, encapsulando el método:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;public void imprimir(Object o){&lt;br /&gt; System.out.println(o); &lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Le mandamos un objeto para que tenga la funcionalidad misma del método original de imprimir cualquier cosa que se le envié.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;imprimir("Hola a todos!");&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Lectura del Teclado Ahora, leer del teclado si es más complicado, pero podemos encapsular la serie de lineas en un solo método para simplificarlo&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;import java.io.*;&lt;br /&gt;public String leer(String msg){&lt;br /&gt; System.out.print(msg);&lt;br /&gt;try{&lt;br /&gt;       InputStreamReader isr = new InputStreamReader(System.in);&lt;br /&gt;       BufferedReader FlujoE = new BufferedReader(isr);&lt;br /&gt;       str = FlujoE.readLine();&lt;br /&gt;    }&lt;br /&gt;    catch(IOException e){&lt;br /&gt;       System.err.println("Errors:" + e.getMessage());&lt;br /&gt;    }&lt;br /&gt; return str;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Este método al ser llamado, se detiene a esperar los caracteres del teclado, y termina al ser presionado ENTER o INTRO también en windows (hay linux que no lo interpretan igual) y luego le da formato y lo convierte en String&lt;br /&gt;&lt;br /&gt;Para cada proyecto entonces tendríamos que copiar los métodos, igual seria molesto, entonces mejor tenerla en una clase aparte, y llamarla naturalmente desde cada uno de nuestros proyectos, con la diferencia que la clase seria &lt;span style="font-style: italic;"&gt;Static&lt;/span&gt;, lo que quiere decir que no tenemos que hacerle un new() (crearle memoria o crear una instancia de la clase) para poder ejecutarla, por lo que es mucho mas útil. así tendríamos lo siguiente:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Nombre del Archivo:&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;ES.java&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;import java.io.*;&lt;br /&gt;&lt;br /&gt;public class ES{&lt;br /&gt;static String str = "";&lt;br /&gt;public ES(){&lt;br /&gt;}&lt;br /&gt;public static String leer(String msg){&lt;br /&gt; System.out.print(msg);&lt;br /&gt;try{&lt;br /&gt;       InputStreamReader isr = new InputStreamReader(System.in);&lt;br /&gt;       BufferedReader FlujoE = new BufferedReader(isr);&lt;br /&gt;       str = FlujoE.readLine();&lt;br /&gt;    }&lt;br /&gt;    catch(IOException e){&lt;br /&gt;       System.err.println("Errors:" + e.getMessage());&lt;br /&gt;    }&lt;br /&gt; return str;&lt;br /&gt;}&lt;br /&gt;public static void imprimir(Object o){&lt;br /&gt; System.out.println(o); &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Para llamarlo haríamos como sigue desde cualquier método main() de java para probarlo:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;String loQueEscribi = ES.leer("Digite su mensaje despues de aqui: ");&lt;br /&gt;ES.imprimir("Ud escribio esto: " + loQueEscribi );&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Saludos y espero que sea de utilidad&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22804369-7358190768843626432?l=blog.absulit.net'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Absulit/~4/mQRKD0DdMfo" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Absulit/~3/mQRKD0DdMfo/cod.html</link><author>noreply@blogger.com (Absulit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://blog.absulit.net/2008/05/cod.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22804369.post-4687427353157871814</guid><pubDate>Sun, 18 May 2008 03:42:00 +0000</pubDate><atom:updated>2008-05-18T10:41:17.527-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">funciones</category><category domain="http://www.blogger.com/atom/ns#">propiedades</category><category domain="http://www.blogger.com/atom/ns#">programacion</category><category domain="http://www.blogger.com/atom/ns#">flash</category><category domain="http://www.blogger.com/atom/ns#">variables</category><title>Codigo Util para Flash</title><description>Cuando se trabaja en flash (especialmente as2) puede ser muy confuso saber que se puede llegar a la misma solución por varios caminos, hay cosas que parece que no tienen ninguna utilidad, por eso voy a hacer referencia a algunas cosas de esas que parece que no la tienen, con ejemplos que si lo son:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;MovieClips como Arrays&lt;/span&gt; Cada que creamos un movieClip y dentro de este creamos otro, en flash se maneja como si fuera un array de movieClips, asi que ud sin saber cuantos hay dentro de este, o sus nombres, puede hacer referencia a ellos de la siguiente manera:&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;pre&gt;  &lt;span style="color: rgb(51, 51, 255);"&gt;for &lt;/span&gt;(item_mc &lt;span style="color: rgb(51, 51, 255);"&gt;in &lt;/span&gt;gran_mc) {&lt;br /&gt;gran_mc.item_mc&lt;span style="color: rgb(51, 51, 255);"&gt;.gotoAndStop&lt;span style="color: rgb(0, 0, 0);"&gt;("&lt;/span&gt;&lt;/span&gt;mi_label");&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Crear e Insertar Propiedades y Funciones Personalizadas&lt;/span&gt; Si bien podemos hacer clases en as2 y ponerle nuestras propiedades y metodos, no podemos modificar la clase movieClip, pero para cada instancia de movieClip podemos insertarle "al aire" funciones y propiedades que nos pueden servir si a una variedad de objetos duplicados tienen la misma propiedad o accion:&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;my_mc.id = 0&lt;br /&gt;my_mc.my_function = &lt;span style="color: rgb(51, 51, 255);"&gt;function&lt;/span&gt;(){&lt;br /&gt;  &lt;span style="color: rgb(51, 51, 255);"&gt;trace&lt;/span&gt;(&lt;span style="color: rgb(0, 153, 0);"&gt;"accion de la funcion"&lt;/span&gt;)&lt;br /&gt;}&lt;br /&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;//asi se llama a la funcion &lt;/span&gt;&lt;br /&gt;my_mc.my_function();&lt;br /&gt;&lt;/pre&gt;&lt;ul&gt;&lt;li&gt;R&lt;span style="font-weight: bold;"&gt;eferenciando a un Botón dentro de sí mismo&lt;/span&gt; Muchas veces para manejar un gran numero de botones al mismo tiempo, con iguales acciones y comportamiento, lo que hago es insertarlos en un array, y lo recorro y le asigno las acciones por un &lt;span style="color: rgb(51, 51, 255);"&gt;for&lt;/span&gt;, pero tenia el problema que no podía referenciar directamente al botón porque al terminar el ciclo, la variable muere, y el valor que queda para el contador es el ultimo, entonces al referenciar el array con la variable, solo me señalaba el ultimo botón, así que para no perder la referencia de sí mismo en el botón, solo llamo a &lt;span style="color: rgb(51, 51, 255);"&gt;this&lt;/span&gt;, y el botón se llama a si mismo sin pasar por el array y todo solucionado:&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;var botones:Array = new Array();&lt;br /&gt;for(var k=0; k &lt; botones.length; k++){&lt;br /&gt;    botones[k].id = k;&lt;br /&gt;    botones[k].onPress = function(){&lt;br /&gt;       trace(this);       //nombre real&lt;br /&gt;       trace(botones[k]); //nombre perdido por valor de k&lt;br /&gt;       trace(this.id);    //id real&lt;br /&gt;       trace(k);          //id perdido&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;espero sea de utilidad&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22804369-4687427353157871814?l=blog.absulit.net'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Absulit/~4/rk4Oi3br4rU" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Absulit/~3/rk4Oi3br4rU/codigo-util-para-flash.html</link><author>noreply@blogger.com (Absulit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.absulit.net/2008/05/codigo-util-para-flash.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22804369.post-6785600859013226286</guid><pubDate>Tue, 06 May 2008 01:52:00 +0000</pubDate><atom:updated>2008-05-18T10:40:42.571-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">flash review</category><category domain="http://www.blogger.com/atom/ns#">diseño</category><title>Creaktif -- Flash Review</title><description>Bueno primero para decirles que voy a estar aqui, haciendo reviews de paginas webs en especial paginas diseñadas en flash, y tambien algunas aplicaciones..&lt;br /&gt;asi que aqui va el primer review de Nitos..&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Porque escogi esta pagina?&lt;/span&gt; Bueno ya que me gusta lo diferente, lo arriesgado, osea NO lo tradicional escogi esta pagina web para hacerle un review..&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Pagina:&lt;/span&gt; &lt;a href="http://creaktif.com/" target="_blank"&gt;Creaktif &lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Screenshot:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="width: 429px; height: 289px;" src="http://pruebatravelabout.googlepages.com/creaktif.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Lo Bueno:&lt;/span&gt; El diseño es totalmente revolucionario, nunca en la vida habia visto una pagina tan diferente de las demas!, gracias a este diseño siempre te vas a querer quedar por mas tiempo.&lt;br /&gt;Las pequeñas animaciones, como cuando abre una de esas ventanas, estan muy bien elaboradas.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Lo malo:&lt;/span&gt; Esta muy bonita la pagina, pero si el usuario no tiene mucho tiempo, ni vera la pagina ya que dura algo en cargar.. :S&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Concuerdo con ustedes??&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22804369-6785600859013226286?l=blog.absulit.net'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Absulit/~4/1OPRY3TyOvo" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Absulit/~3/1OPRY3TyOvo/nitos-publica-creaktif-flash-review.html</link><author>josernitos91@gmail.com (Nitos)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.absulit.net/2008/05/nitos-publica-creaktif-flash-review.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22804369.post-897547311720148871</guid><pubDate>Sun, 04 May 2008 16:15:00 +0000</pubDate><atom:updated>2008-05-04T20:27:55.478-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">PHP</category><category domain="http://www.blogger.com/atom/ns#">XML</category><category domain="http://www.blogger.com/atom/ns#">programacion</category><category domain="http://www.blogger.com/atom/ns#">ASPX</category><category domain="http://www.blogger.com/atom/ns#">flash</category><title>Bordeando la Seguridad en Flash - Leyendo XML</title><description>Por motivos de seguridad el flash solo permite leer archivos alojados en su propio dominio, así que si ud pretende leer desde un flash alojado en www.midominio.com, un feed en www.miotrodominio.com, ud no podrá contactarse con el servidor porque el flash no lo permite.&lt;br /&gt;&lt;br /&gt;Ahora, una forma sencilla de pegarse de un servicio de feed, como uno que nos dé las noticias, es creando un archivo de servidor que lea el contenido de ese feed, y devuelva exactamente lo mismo, pero con la diferencia que estará en nuestro dominio.&lt;br /&gt;&lt;br /&gt;Entonces que tienes que hacer?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Crear un PHP o un ASPX que por dentro lea el XML, y lo imprima sin mas,&lt;br /&gt;y nosotros llamamos a nuestro .php/.aspx y cargamos el contenido&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Aqui por ejemplo este PHP que tiene muy pocas lineas y es demasiado útil:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;leerArchivo.php&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;if(isset($HTTP_GET_VARS['ruta'])){&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;       $filename = $ruta;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;       //header("Content-type: text/xml");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;       readfile ($filename);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;?&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Dejo comentado la linea del header, porque lo que hace es ponerle al XML&lt;br /&gt;una nueva tag de header que arruinaría el plan de leer el XML como ya lo planeamos,&lt;br /&gt;sin embargo la dejo por si necesitan poner otro tipo de header a su XML o feed.&lt;br /&gt;&lt;br /&gt;Al momento de llamarlo en nuestro dominio seria algo de este estilo:&lt;br /&gt;&lt;br /&gt;    http://www.midominio.com/leerArchivo.php?ruta=www.miotrodominio.com/feed.xml&lt;br /&gt;&lt;br /&gt;esto devolvería el mismo contenido del XML que está en otro dominio, pero bajo el nuestro,&lt;br /&gt;haciendo válida la seguridad del flash.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22804369-897547311720148871?l=blog.absulit.net'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Absulit/~4/DrgU_hecpi8" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Absulit/~3/DrgU_hecpi8/bordeando-la-seguridad-en-flash-leyendo.html</link><author>noreply@blogger.com (Absulit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://blog.absulit.net/2008/05/bordeando-la-seguridad-en-flash-leyendo.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22804369.post-2802458371298093268</guid><pubDate>Mon, 21 Apr 2008 04:08:00 +0000</pubDate><atom:updated>2008-04-20T22:25:20.096-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">3D</category><category domain="http://www.blogger.com/atom/ns#">papervision3d</category><category domain="http://www.blogger.com/atom/ns#">flash</category><title>Papervision 3D - Flash 3D</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.gotoandlearn.com/thumbs/papervision.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 160px; height: 115px;" src="http://www.gotoandlearn.com/thumbs/papervision.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Para los que estamos interesados en el 3d de alguna forma, y en las aplicaciones web en flash, el ver sin fin de paginas que ya aplican el 3d dentro del flash no es una novedad; pero para aquellos que quieren hacer algo así en pocos pasos resultará ser algo increible, algo que traerá fascinación a quienes quieran  intentar tocar la  3era dimensión.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ahora entonces ya no tendrán que diseñar sitios web pensando en las acciones de los botones que pueden ver, sino tendrán que hacerlo pensando en un punto en el espacio, un botón te llevará a una coordenada, haciendo a un lado el resto del contenido y menús, y llevándote a una nueva perspectiva, cambiando de ángulos para que lo puedas experimentar de una forma, que no puedes en el X y Y.&lt;br /&gt;&lt;br /&gt;Ahora este pequeño tutorial sobre las capacidades de papervision 3d, la colección de librerías que explotan flash en la tercera dimensión; pertenece a la versión 1 de papervision, la cual puede ser mas sencilla para los principiantes, la versión 2 tiene grandes cambios e inclusión de gran cantidad de librerías así como el cambio de nombres de objetos; si pueden realizar este, pueden continuar con el segundo.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.gotoandlearn.com/player.php?id=40"&gt;Tutorial en video en gotoAndLearn.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;aquí mismo pueden descargar el material del tutorial si tienen prisa por ver el código terminado.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22804369-2802458371298093268?l=blog.absulit.net'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Absulit/~4/H0xkadgH6qI" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Absulit/~3/H0xkadgH6qI/papervision-3d-flash-3d.html</link><author>noreply@blogger.com (Absulit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://blog.absulit.net/2008/04/papervision-3d-flash-3d.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22804369.post-608064460437965244</guid><pubDate>Sun, 09 Mar 2008 01:55:00 +0000</pubDate><atom:updated>2008-03-08T21:15:34.268-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">flashvars</category><category domain="http://www.blogger.com/atom/ns#">XML</category><category domain="http://www.blogger.com/atom/ns#">programacion</category><category domain="http://www.blogger.com/atom/ns#">flash</category><category domain="http://www.blogger.com/atom/ns#">variables</category><title>Menu Flash con XML y FlashVars</title><description>Recientemente para mi trabajo he tenido que hacer parametrizables muchos de los flash que realizo día con día por motivos de ineficiencia.&lt;br /&gt;&lt;br /&gt;Así por ejemplo, realizaba un menú según me lo piden, digamos con 4 links de texto, cada botón por dentro tiene la función de as2 getURL() con un string dentro que seria la url a la pagina ASPX que tiene que desarrollarse&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;mi_btn.onPress = function(){&lt;br /&gt;getURL("mi_pagina.aspx")&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;entonces yo programaba todos los botones de esta manera esperando a que en el momento de desarrollarse la pagina, realmente se llamara "mi_pagina.aspx". En ciertas ocasiones, era cierto, pero en otras, se mandaba a realizar una modificación muy grande en la pagina, por lo que requeria otro nombre por que la anterior se guardaba como respaldo, entonces me enviaban de nuevo el flash, para hacer una modificación tan pequeña, que realmente no requería mi mano; pero asi era.&lt;br /&gt;&lt;br /&gt;Ser programador significa automatizar procesos, yo también digo que nos motiva la vagancia de no estar haciendo lo mismo, pero en todo caso esto funciona.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Asi que idee lo siguiente, tomando en cuenta que se puede pasar parámetros desde el html hacia el flash, pensé que se pueden mandar los links de los botones del flash por parámetro, y así no tener que recompilar si hay un cambio en el link.&lt;br /&gt;&lt;br /&gt;Pero en lugar de mandar n parámetros a un flash, solo mandamos uno, y por dentro dividimos los links y los asignamos a cada boton del flash:&lt;br /&gt;&lt;br /&gt;"http://google.com|http://yahoo.es"&lt;br /&gt;&lt;br /&gt;aqui tenemos este string con dos urls separadas por el caracter or "|", por dentro del flash lo separaremos con el método de string split() que nos dará un array con cada url por separado&lt;br /&gt;&lt;br /&gt;param value="id=http://google.com|http://yahoo.es" name="FlashVars"&lt;br /&gt;&lt;br /&gt;id sera una variable que podremos usar dentro del AS del flash como si fuera una variable que hubiéramos declarado dentro.&lt;br /&gt;&lt;br /&gt;y como AS2 permite hacer cosas que no permite otro lenguaje podemos hacer esto:&lt;br /&gt;&lt;br /&gt;id = id.split("|")&lt;br /&gt;&lt;br /&gt;asi id se le asignará un array resultado de dividir a si mismo en fracciones, y podremos usar a id desde id[0] hasta id[id.length-1], recorriendo un FOR  esto es sencillo, y así sabiendo dentro de nuestro flash cuantos botones tenemos asignamos a cada uno de acuerdo al indice de estos el valor del string que se paso por FlashVars.&lt;br /&gt;&lt;br /&gt;Cuando los datos son masivos, o provenientes de una base de datos, entonces usar FlashVars resulta poco practico, aunque no imposible, pero lo usaremos de otra manera. En lugar de pasar por flash vars los links, pasamos la ruta de un XML al que conozcamos su estructura, lo recorremos de forma adecuada y, aprovechando que es un XML, podemos no solo mandar los links, sino los labels de cada botón, así nuestro menu seria &lt;span style="font-weight: bold;"&gt;completamente&lt;/span&gt; dinámico. Como ejemplo les muestro este menú que desarrolle en mi trabajo que lee un XML y que por flashvars recibe la url de donde se encuentra este XML&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;object height="347" width="219"&gt;&lt;br /&gt;&lt;param value="http://mx.geocities.com/absulitnow/menu_xml.swf" name="movie"&gt;&lt;br /&gt;&lt;param value="id=http://mx.geocities.com/absulitnow/menu_dinamico.xml" name="FlashVars"&gt;&lt;br /&gt;&lt;embed src="http://mx.geocities.com/absulitnow/menu_xml.swf" flashvars="id=http://mx.geocities.com/absulitnow/menu_dinamico.xml" height="347" width="219"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;br /&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;el flash pueden descargarlo &lt;a href="http://http//mx.geocities.com/absulitnow/menu_xml.swf"&gt;aqui&lt;/a&gt;, y el xml de ejemplo &lt;a href="http://mx.geocities.com/absulitnow/menu_dinamico.xml"&gt;aqui&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;En el jscript que provee adobe con el nombre de AC_RunActiveContent.js, para pasar flashvar simplemente se agrega un parámetro mas al final de todos los que ya se encuentra recibiendo este método&lt;br /&gt;&lt;br /&gt;'flashvars', 'id=menu_dinamico.xml'&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;El swf solo lee hasta un segundo nivel de nodos de xml&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://mx.geocities.com/absulitnow/menu_xml.swf"&gt;Menu SWF con XML&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mx.geocities.com/absulitnow/menu_dinamico.xml"&gt;XML con la estructura que necesita el flash&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22804369-608064460437965244?l=blog.absulit.net'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Absulit/~4/CRE9JukVcYo" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Absulit/~3/CRE9JukVcYo/menu-flash-con-xml-y-flashvars.html</link><author>noreply@blogger.com (Absulit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">5</thr:total><feedburner:origLink>http://blog.absulit.net/2008/03/menu-flash-con-xml-y-flashvars.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22804369.post-3914834841510707299</guid><pubDate>Sun, 24 Feb 2008 01:54:00 +0000</pubDate><atom:updated>2008-03-08T21:12:03.099-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">animacion</category><category domain="http://www.blogger.com/atom/ns#">2D</category><title>BENDITO MACHINE 1 y 2</title><description>Para las personas que les gusta la animación un tanto freaky, les traigo un par que vi ya hace un buen rato, que provocan un sentimiento extraño en quien lo ve, ya que no es algo con lo que trates todos los días; ademas la animación vectorial es admirable y merece atención.&lt;br /&gt;&lt;br /&gt;BENDITO MACHINE&lt;br /&gt;&lt;br /&gt;&lt;object height="355" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/-yM9bU5FzT8&amp;amp;rel=1"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/-yM9bU5FzT8&amp;amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" height="355" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;BENDITO MACHINE 2&lt;br /&gt;&lt;br /&gt;&lt;object height="355" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/YXcH6Owy4tk&amp;amp;rel=1"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/YXcH6Owy4tk&amp;amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" height="355" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22804369-3914834841510707299?l=blog.absulit.net'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Absulit/~4/G6na6oGjo6w" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Absulit/~3/G6na6oGjo6w/bendito-machine-1-y-2.html</link><author>noreply@blogger.com (Absulit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://blog.absulit.net/2008/02/bendito-machine-1-y-2.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22804369.post-6996938686543413323</guid><pubDate>Sun, 06 Jan 2008 01:13:00 +0000</pubDate><atom:updated>2008-01-05T19:29:39.872-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">animacion</category><category domain="http://www.blogger.com/atom/ns#">tutorial</category><category domain="http://www.blogger.com/atom/ns#">flash</category><category domain="http://www.blogger.com/atom/ns#">2D</category><title>Tutorial Flash para Hacer Botones</title><description>Una de las cosas más básicas que puedes realizar en flash es crear un boton para obtener navegabilidad en tus animaciones, pero antes de programar uno se tiene que realizar!&lt;br /&gt;&lt;br /&gt;Si bien ya hay flash que traen unos botones predeterminados, en ocasiones necesitaremos realizar nuestros propios botones con formas irregulares o no convencionales, para esto, un video muy sencillo de tutoriales.es&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;object height="355" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/pTRrprKp2Wo&amp;amp;rel=1"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/pTRrprKp2Wo&amp;amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" height="355" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://tutoriales.es/"&gt;tutoriales.es&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/videotutoriales"&gt;videoturoriales en youtube&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22804369-6996938686543413323?l=blog.absulit.net'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Absulit/~4/vUEh7_F6rWM" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Absulit/~3/vUEh7_F6rWM/tutorial-flash-para-hacer-botones.html</link><author>noreply@blogger.com (Absulit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://blog.absulit.net/2008/01/tutorial-flash-para-hacer-botones.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22804369.post-6163031186699378317</guid><pubDate>Tue, 20 Nov 2007 00:26:00 +0000</pubDate><atom:updated>2007-11-19T19:51:01.681-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">funciones</category><category domain="http://www.blogger.com/atom/ns#">constructor</category><category domain="http://www.blogger.com/atom/ns#">Tutorial de Programacion</category><category domain="http://www.blogger.com/atom/ns#">java</category><category domain="http://www.blogger.com/atom/ns#">propiedades</category><category domain="http://www.blogger.com/atom/ns#">programacion</category><title>Tutorial de Programacion IV - Clases</title><description>Las clases son tipos de datos creados por usted, asi como existen tipos para contener numeros y cadenas de caracteres o "strings", ud puede crear tipos de datos que contengan tipos de datos basicos, por ejemplo, ud desea tener una lista de personas ( obvio que no las personas de verdad) con sus datos mas representativos como en una agenda, asi que ud tendria que almacenar campos como estos&lt;br /&gt;&lt;br /&gt;&lt;ul style="color: rgb(51, 102, 255);"&gt;&lt;li&gt;nombre&lt;/li&gt;&lt;li&gt;apellidos&lt;/li&gt;&lt;li&gt;telefono&lt;/li&gt;&lt;li&gt;correo&lt;/li&gt;&lt;li&gt;pagina web&lt;/li&gt;&lt;li&gt;dia de cumple&lt;/li&gt;&lt;li&gt;mes de cumple&lt;/li&gt;&lt;li&gt;año cumple&lt;/li&gt;&lt;/ul&gt;solo los ultimos tres corresponden a un tipo de dato numerico, todos los demas son texto o Strings, ahora, la cosa es q podriamos crear las variables por separado y no hay problema, pero que tal tener una sola entidad que pueda manejar todas estas, y asi si creamos otra no confundirnos cual es de que persona?&lt;br /&gt;&lt;br /&gt;Pues si se puede hacer, una clase puede mantener estas variables dentro de si, asi que solo tendriamos que llamar las variables dentro de las varaibles, esto se haria de la siguiente forma&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 204);"&gt;miVariablePersona.nombre = "Juanito";&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 204);"&gt;miOtraVariablePersona.nombre = "Pepe";&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;ahora ud dice, por que no crear de una vez mi variable con el nombre Pepe o juanito???&lt;br /&gt;&lt;br /&gt;bueno, cuando ud diseña un programa no puede saber el contenido del dato que le va a llegar, mas si el tipo de darto, asi que crea un nombre global, y por eso tiene dentro una variable con el campo nombre que la maneja...&lt;br /&gt;&lt;br /&gt;Para crear nuestras clases en java tenemos que crear un archivo TXT con extension .java, y el nombre que le pongamos sera el tipo de Clase que sera la nuestra, para este ejemplo sera Persona.java&lt;br /&gt;&lt;br /&gt;El nombre del archivo tiene que ser igual al nombre de la clase, no solo para evitar confusiones, sino por que como cada clase esta separada de las demas, estas se pueden llamar desde otras clases, y al incluir el archivo, java se guia por el nombre para encontrarla.&lt;br /&gt;&lt;br /&gt;Ademas que no solo una clase puede estar en un archivo, pueden haber más, pero solo una es visible para las demas clases exteriores, por eso se llama publica&lt;br /&gt;&lt;br /&gt;y al ser publica hay que indicarlo dentro del archivo java&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 204);"&gt;public class Persona{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 204);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;asi se declararia nada mas la clase...&lt;br /&gt;El nombre esta en mayuscula por normas del lenguaje, realmente no importa, pero para ud si, por que puede identificar un tipo de dato CLASE al empezar en mayuscuscula, las variables y variables de clase tienen que empezar con una minuscula, y las consecuentes en mayuscula&lt;br /&gt;&lt;br /&gt;int miVariebleConValorEntero;&lt;br /&gt;String miVariableDeClaseString;//String es un tipo de dato que es una clase&lt;br /&gt;&lt;br /&gt;Una clase como ya dije tiene variables propias, asi que hay que declararlas&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 204);"&gt;public class Persona{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 204);"&gt;    //private indica que la variable solo puede usarse dentro de la clase&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 204);"&gt;        private string nombre; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 204);"&gt;        private string apellido; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 204);"&gt;        private string telefono; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 204);"&gt;        private string correo; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 204);"&gt;        private string web; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 204);"&gt;        private int dia; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 204);"&gt;        private int mes; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 204);"&gt;        private int anio; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 204);"&gt; }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;ahora bien&lt;br /&gt;&lt;br /&gt;antes puse&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;miVariablePersona.nombre = "Juanito";&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;pero esto no es permitido tecnicamente, se puede hacer, pero por temas de seguridad, en donde se pueden conocer las variables y su contenido, la forma de asignar valores a un propiedad, que es como se llaman las variables dentro de las clases, es solo creando funciones que hagan la tarea, llamados getters y setters&lt;br /&gt;&lt;br /&gt;Utilizando solo la propiedad nombre para facilitar la escritura y la vision del codigo tenemos lo siguiente:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 204);"&gt;public class Persona{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 204);"&gt;        private string nombre; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 204);"&gt;        public void setNombre( String nombre){&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 204);"&gt;                this.nombre = nombre;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 204);"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 204);"&gt;        public String getNombre(){&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 204);"&gt;           return nombre&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 204);"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 204);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;asi entonces en lugar de&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; miVariablePersona.nombre = "Juanito";&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;tendriamos esto&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; miVariablePersona.setNombre("Juanito");&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;asi la unica forma de comunicarnos con nuestras variables de Clase seria por medio de los metodos, que son los nombres que llevan las funciones propias de una clase.&lt;br /&gt;&lt;br /&gt;Ahora para crear nuestras variables de clase habriamos de hacer algo parecido al crear por ejemplo un int&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;int miVarInt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;pero resulta que las clases tienen separadas la declaracion del nombre de variable, y la declaracion de cuando se empieza a asignar memoria,&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;por eso tiene un metodo propio para esto de la memoria&lt;br /&gt;asi que tendriamos algo asi:&lt;br /&gt;&lt;br /&gt;Persona miPersona;//seria la declaracion de la variable de tipo Persona&lt;br /&gt;&lt;br /&gt;y para la memoria seria asi:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;miPersona = new Persona();&lt;/span&gt;&lt;br /&gt;La palabra reservada new se usa para crear la nueva memoria limpia de Persona&lt;br /&gt;&lt;br /&gt;pero hay que crear este metodo especial Persona(), para que inicialice a nuestra variable de clase, este metodo con el mismo nombre de la clase se llama constructor, y crea la memoria e inicializa las variables a gusto del programador; tambien puede haber mas de un constructor, pero debe tener parametros que conviertan a ese metodo en diferente de otros del mismo nombre:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 204);"&gt;public class Persona{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 204);"&gt;         private string nombre; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 204);"&gt;         public void setNombre( String nombre){&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 204);"&gt;                 this.nombre = nombre;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 204);"&gt;         }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 204);"&gt;         public String getNombre(){&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 204);"&gt;            return nombre&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 204);"&gt;         }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 204);"&gt;        public Persona(){&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 204);"&gt;            nombre = "";//se le asigna nada al nombre&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 204);"&gt;       }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;        public Persona(String miNombre){&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;                nombre = miNombre;//se le asigna antes de usarlo el nombre&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 204, 204);"&gt; }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;y la creacion seria asi:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;miPersona = new Persona();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;o con el otro constructor asi:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;miPersona = new Persona("Juancito");&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;mas tarde se puede usar &lt;span style="color: rgb(51, 51, 255);"&gt;miPersona.getNombre();&lt;/span&gt; y este retornaria &lt;span style="color: rgb(255, 0, 0);"&gt;"Juancito"&lt;/span&gt;, como es esperado.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22804369-6163031186699378317?l=blog.absulit.net'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Absulit/~4/0sI7850cnVU" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Absulit/~3/0sI7850cnVU/tutorial-de-programacion-iv-clases.html</link><author>noreply@blogger.com (Absulit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://blog.absulit.net/2007/11/tutorial-de-programacion-iv-clases.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22804369.post-4286672221396295308</guid><pubDate>Sat, 10 Nov 2007 13:43:00 +0000</pubDate><atom:updated>2007-11-10T08:42:00.791-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">rock</category><category domain="http://www.blogger.com/atom/ns#">Led Zeppelin</category><category domain="http://www.blogger.com/atom/ns#">animacion</category><category domain="http://www.blogger.com/atom/ns#">the rain song</category><category domain="http://www.blogger.com/atom/ns#">flash</category><category domain="http://www.blogger.com/atom/ns#">2D</category><title>Interludio Musical</title><description>Estoy pensando que pornerles para los tutos de progra, asi que mientras, disfruten de esta animación que hice ya hace un buen, y podran ver lo que se puede hacer con flash, cuando se trata de animar...&lt;br /&gt;&lt;br /&gt;Y pónganle atencion al piezon de Led Zeppelin, muchos no la han oído, pero es un hit, se la dedico a las rosas...&lt;br /&gt;&lt;br /&gt;&lt;div align ="center"&gt;&lt;br /&gt;&lt;object height="355" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/QExxnFgp31s&amp;amp;rel=1"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/QExxnFgp31s&amp;amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" height="355" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22804369-4286672221396295308?l=blog.absulit.net'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Absulit/~4/yuq-MBFqG4k" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Absulit/~3/yuq-MBFqG4k/interludio-musical.html</link><author>noreply@blogger.com (Absulit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://blog.absulit.net/2007/11/interludio-musical.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22804369.post-2196119694967646829</guid><pubDate>Wed, 31 Oct 2007 00:25:00 +0000</pubDate><atom:updated>2007-10-30T21:41:28.294-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Tutorial de Programacion</category><category domain="http://www.blogger.com/atom/ns#">java</category><category domain="http://www.blogger.com/atom/ns#">programacion</category><title>Tutorial de Programacion III - Tipos de Datos</title><description>De seguro ud recuerda que en los tutoriales anteriores trabajamos con &lt;span style="font-style: italic;"&gt;variables &lt;/span&gt;que contenían un número, y también que pasamos un parámetro entrecomillado  para el metodo &lt;span style="font-style: italic;"&gt;println &lt;/span&gt;de java para imprimir en consola.&lt;br /&gt;&lt;br /&gt;Bueno resulta que cada variable representa un lugar en la memoria &lt;a href="http://es.wikipedia.org/wiki/Memoria_RAM"&gt;RAM &lt;/a&gt;(random access memory), y como ud ya sabe nada es infinito, ni siquiera la memoria RAM, entonces&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Las variables tienen un tamaño predefinido de memoria para contener un valor&lt;/li&gt;&lt;li&gt;las variables preferiblemente solo aceptan un tipo dato&lt;/li&gt;&lt;/ol&gt;Estos tipos de dato son aquellos con los que se puede realizar tareas entre sí, como números con números, o texto con texto...&lt;br /&gt;&lt;br /&gt;Por ejemplo para realizar tareas con números en java, tenemos que declarar variables de los tipos que dispone para números, como lo son&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;int&lt;/span&gt;: acepta dentro números enteros&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;double&lt;/span&gt;: acepta números, pero con &lt;span style="font-style: italic;"&gt;coma flotante&lt;/span&gt;, osea q tienen decimales&lt;/li&gt;&lt;/ul&gt;Las variables se declaran asi dentro de java&lt;br /&gt;&lt;br /&gt;public class ImprimirNumero{&lt;br /&gt;    //puede declarar desde aqui arriba&lt;br /&gt;    private static int miNumeroEntero = 25;&lt;br /&gt;    private static double miNumeroDecimal;&lt;br /&gt;&lt;br /&gt;    public static void main(String [] args){&lt;br /&gt;        //puede declarar desde aqui arriba&lt;br /&gt;        int otroEntero;&lt;br /&gt;        double otroDecimal = 3.66;&lt;br /&gt;        System.out.println("Entero: " +  miNumeroEntero );&lt;br /&gt;        System.out.println("Decimal: " +  otroDecimal );&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Para que se vayan preparando, el metodo main() hace que cualquier archivo con un &lt;span style="font-style: italic;"&gt;class &lt;/span&gt;sea el que &lt;span style="font-style: italic;"&gt;corra &lt;/span&gt;el programa, si no tiene ese metodo el class solo sirve para crear estructuras que guardan información y metodos para reusar como el &lt;span style="font-style: italic;"&gt;println&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;El texto del programa que comienza con "//" significa queel compilador  ignorará esa linea, es generalmente usado para poner comentarios, o bloquear codigo mientras se hacen pruebas.&lt;br /&gt;&lt;br /&gt;Continuando con el código,  las variables dentro del main() son variables denominadas locales, lo que significa que si hay variables fuera del método main(), la que está dentro del método será la que importará al momento de la evaluación del código, ya que cuando ud llama a un método como por ejemplo el println, no espera que una variable declarada fuera, sea utilizada dentro de éste, asi que esto se hace por seguridad, al igual que las variables que estan declaradas por fuera como esta:&lt;br /&gt;&lt;br /&gt;         private static int miNumeroEntero = 25;&lt;br /&gt;&lt;br /&gt;tienen otros encabezados delante del &lt;span style="color: rgb(51, 102, 255);"&gt;int &lt;/span&gt;para hacer referencia a otros aspectos de seguridad que mostraré después, solo fijense que tiene un &lt;span style="color: rgb(51, 102, 255);"&gt;int&lt;/span&gt; delante, pero necestaran poner el private; y el static si quieren usar la variable dentro del main().&lt;br /&gt;&lt;br /&gt;A estas variables int puedes &lt;span style="font-style: italic;"&gt;asignarle &lt;/span&gt;(meterle un valor a la variable) usando el simbolo igual (=)  un valor de número entero, o un decimal, solo que el decimal lanzara un error en la consola al ser &lt;a href="http://absulit.ticoblogger.com/2007/10/tutorial-de-programacion-ii-compilar-en.html"&gt;compilado,&lt;/a&gt; diciendote que se perderá presición, ya que se perderian los decimales.&lt;br /&gt;&lt;br /&gt;Ud puede crear otras variables para sumar los números, pero si quiere el resultado con decimales, entonces tiene que almacenar el resultado en un &lt;span style="color: rgb(51, 102, 255);"&gt;double.&lt;/span&gt; El método &lt;span style="font-style: italic;"&gt;println &lt;/span&gt;tambien puede imprimir valores de numeros.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;String&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;Un &lt;span style="color: rgb(51, 102, 255);"&gt;String &lt;/span&gt;es el tipo de dato que puede contener texto comun y corriente, para diferenciar su contenido del texto convencional, la asignacion se realiza por medio de texto entrecomillado.&lt;br /&gt;Un &lt;span style="color: rgb(51, 102, 255);"&gt;String &lt;/span&gt;no se declara de la misma manera que un &lt;span style="color: rgb(51, 102, 255);"&gt;int&lt;/span&gt;, ya que un &lt;span style="color: rgb(51, 102, 255);"&gt;String &lt;/span&gt;es una &lt;span style="font-style: italic;"&gt;clase &lt;/span&gt;que permite crear &lt;span style="font-style: italic;"&gt;objetos&lt;/span&gt;; una diferencia basica entre un objeto, y una variable, es que una variable como dijimos, tiene una memoria definida, cuando ud la declara, ya el compilador le pone automaticamente la memoria que se usará, pero cuando ud usa un objeto, puede declararla sin usar su memoria, y asignarle la memoria, una linea antes de usarla; esto crea un beneficio de recurso de memoria, ya que no se usa la memoria exactamente hasta el momento que se necesita, y que tambien esa memoria se puede desalojar despues de usada.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Declaracion de un String&lt;/li&gt;&lt;/ul&gt;String miTextoAlternativo;&lt;br /&gt;&lt;br /&gt;De esta manera ud declara a &lt;span style="font-style: italic;"&gt;miTextoAlternativo &lt;/span&gt;como una variable SIN MEMORIA.&lt;br /&gt;&lt;br /&gt;Luego en el momento que quiera usarla hace lo siguiente:&lt;br /&gt;&lt;br /&gt;            miTextoAlternativo = new String();&lt;br /&gt;&lt;br /&gt;al hacer esto, ud llama a un metodo propio del objeto String, que le asigna memoria a cualquiera de sus variables, pero tambien puede asignarle la memoria al momento de crearla:&lt;br /&gt;&lt;br /&gt;            String miTextoAlternativo = new String();&lt;br /&gt;&lt;br /&gt;pero tambien puede hacer esto:&lt;br /&gt;&lt;br /&gt;            String miTextoAlternativo = "";&lt;br /&gt;&lt;br /&gt;o esto:&lt;br /&gt;&lt;br /&gt;            String miTextoAlternativo = "Tutorial de progra";&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Me dijeron una vez que asignar de una vez "" o con texto entre las comillas es mejor que llamar al metodo String() y luego ponerle el texto que quiero usar, ya que se llama dos veces &lt;span style="font-style: italic;"&gt;internamente &lt;/span&gt;al proceso que da memoria, y por supuesto, innecesario.&lt;br /&gt;&lt;br /&gt;Ud puede sumar dos Strings como dos números, pero con resultados diferentes, ya que aunque internamente son números, ya que cada caracter equivale a un numero del codigo &lt;a href="http://es.wikipedia.org/wiki/ASCII_extendido"&gt;ascii&lt;/a&gt;, lo que pasa es que las &lt;span style="font-style: italic;"&gt;cadenas de caracteres&lt;/span&gt; se concatenan.&lt;br /&gt;&lt;br /&gt;Estos Strings tambien se pueden pasar de parametro a &lt;span style="font-style: italic;"&gt;println&lt;/span&gt;, por lo que pueden probar si pueden imprimir su nombre en una variable...&lt;br /&gt;&lt;br /&gt;Intenten a ver que les sale y me cuentan...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22804369-2196119694967646829?l=blog.absulit.net'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Absulit/~4/NK3_gKZEupA" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Absulit/~3/NK3_gKZEupA/tutorial-de-programacion-iii-tipos-de.html</link><author>noreply@blogger.com (Absulit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.absulit.net/2007/10/tutorial-de-programacion-iii-tipos-de.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22804369.post-6168449417392782637</guid><pubDate>Fri, 26 Oct 2007 22:54:00 +0000</pubDate><atom:updated>2007-10-28T21:28:02.630-06:00</atom:updated><title>Tutorial de Programacion II - Compilar en JAVA</title><description>Si no tienes java puedes conseguirlo en &lt;a href="http://java.com/"&gt;java.com&lt;/a&gt; pero solo para ejecutarlo, para crear y compilar debes ir a &lt;a href="http://www.sun.com/"&gt;SUN&lt;/a&gt; y descargar el &lt;a href="http://java.sun.com/javase/downloads/index.jsp"&gt;JDK&lt;/a&gt;  que son 65.64 MB&lt;br /&gt;&lt;br /&gt;Si ud tiene ganas de empezar a programar en java, pues entonces empecemos, y vayamos dando teoría mientras damos práctica.&lt;br /&gt;&lt;br /&gt;Bueno, aquí vamos a compilar java como los hombres, desde consola!&lt;br /&gt;&lt;br /&gt;Primero espero que estén en Windows no me importa que versión.&lt;br /&gt;&lt;br /&gt;Para hacer una prueba de un archivo java hagan lo siguiente:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;abran un bloc de notas&lt;/li&gt;&lt;li&gt;insertar dentro lo siguiente&lt;/li&gt;&lt;/ul&gt;public class ImprimirTexto{&lt;br /&gt;      public static void main(String [] args){&lt;br /&gt;            System.out.println("Salida de Texto");&lt;br /&gt;      }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Guarde el archivo con el nombre de ImprimirTexto.java en el escritorio&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Abra una consola o Símbolo de Sistema de Windows&lt;/li&gt;&lt;/ul&gt;&lt;ol&gt;&lt;ol&gt;&lt;li&gt;Puede abrirlo en esta ruta: "inicio/accesorios/simbolo de sistema"&lt;/li&gt;&lt;li&gt;O puede ir a "inicio/ejecutar", y digitar "cmd"&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;ul&gt;&lt;li&gt;Dirijase a la ruta donde ud creó el archivo .java pero dentro de la consola&lt;/li&gt;&lt;/ul&gt;Si está por ejemplo en el directorio "C:\Documents and Settings\miNombredeUsuario&gt;"&lt;br /&gt;&lt;br /&gt;para pasar al directorio "Escritorio" digite en la consola "CD escritorio". El comando CD significa Change Directory, y no tiene nada que ver con abrir el CD ROM como creyeron por ahí.&lt;br /&gt;&lt;br /&gt;Como el archivo ImprimirTexto.java esta en el escritorio, y ahora ud esta en el escritorio dentro de la consola, entonces, solo ha de compilar el archivo y para lograrlo, digite lo siguiente:&lt;br /&gt;&lt;br /&gt;javac ImprimirTexto.java&lt;br /&gt;&lt;br /&gt;Hay que respetar las mayusculas, ya que el lenguaje tambien lo hace, esto por que es una regla.&lt;br /&gt;&lt;br /&gt;Ahora si todo esta bien escrito dentro del *.java, no generará errores, entonces el compilador creará un archivo del mismo nombre que el .java, solo que con extensión .class indicando que es el compilado.&lt;br /&gt;&lt;br /&gt;Este archivo es de una forma "ejecutable", no como un EXE propio de windows, por que utiliza la maquina virtual como intermediaria, pero gracias a este realizará un resultado semejante a una aplicacion windows, con la ventaja de ser &lt;a href="http://es.wikipedia.org/wiki/Multiplataforma"&gt;multiplataforma&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Para correr este programa, igual desde la consola, digitamos igual dentro de la ruta del escritorio donde igual se encuentra nuestro .class lo siguiente&lt;br /&gt;&lt;br /&gt;java ImprimirTexto&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Si todo sale correctamente la salida en la consola debera ser: &lt;span style="font-style: italic;"&gt;Salida de Texto&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Así será el primer programa es java, a estos programas en pantallas negras se les denomina programas de consola, utilizados principalmente en servidores cono UNIX, que no necesitan interfaz gráfica, por que esto consume recursos que evidentemente pueden ser usados en atender peticiones a los clientes del servicio. Pero no se preocupen, Java también puede crear ventanitas con botones para la comodidad del usuario, pero primero tienen que aprender a hacer esto antes de graficar, el cual, aunque ayuda en el aprendizaje, se omiten muchos detalles, ya que una vez que estás en esta, no quieres salir.&lt;br /&gt;&lt;br /&gt;Aprovecho para mostrar un poco más sobre como funcionan los métodos usando este ejemplo, como pueden ver, el metodo &lt;span style="font-style: italic;"&gt;println &lt;/span&gt;tiene un argumento o parametro entrecomillado ( luego me referiré a esto), esto quiere decir que lo que este dentro sera un texto comun y corriente, que no es variable ni nungún identificador especial, quiere decir que se imprime exactamente lo que esta entre esas comillas. Este método &lt;span style="font-style: italic;"&gt;println &lt;/span&gt;acepta cualquier texto entrecomillado, demostrando la funcionalidad de un procedimiento como se explicó en el tutorial anterior, ya que por dentro, aunque no lo veamos, este método puede tener 100 lineas que no necesitamos repetir para imprimir texto en la consola, sino, que solo invocando su nombre, y dandole el texto que queremos ver funciona de la misma manera, ahorando espacio en nuestros archivos de codigo, y permitiendonos leer más rápidamente, y encontrar errores de la misma manera.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://absulit.ticoblogger.com/2007/10/tutorial-de-programacion-i-variables.html"&gt;Tutorial de programación I&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22804369-6168449417392782637?l=blog.absulit.net'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Absulit/~4/23CP3VNDuII" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Absulit/~3/23CP3VNDuII/tutorial-de-programacion-ii-compilar-en.html</link><author>noreply@blogger.com (Absulit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.absulit.net/2007/10/tutorial-de-programacion-ii-compilar-en.html</feedburner:origLink></item></channel></rss>
