<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Robot04 &#187; Apuntes que siempre se me olvidan</title>
	<atom:link href="http://www.robot04.com/blog/index.php/category/apuntes-que-siempre-se-me-olvidan/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.robot04.com/blog</link>
	<description>Video meliora proboque; deteriora sequor</description>
	<lastBuildDate>Thu, 30 Dec 2010 11:08:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Fases de propagación de eventos &#8211; ActionScript 3.0</title>
		<link>http://www.robot04.com/blog/index.php/2009/04/25/ciclo-de-vida-de-los-eventos-actionscript-30/</link>
		<comments>http://www.robot04.com/blog/index.php/2009/04/25/ciclo-de-vida-de-los-eventos-actionscript-30/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 12:28:14 +0000</pubDate>
		<dc:creator>Robot04</dc:creator>
				<category><![CDATA[ActionScript 3.0]]></category>
		<category><![CDATA[Apuntes que siempre se me olvidan]]></category>

		<guid isPermaLink="false">http://www.robot04.com/blog/?p=291</guid>
		<description><![CDATA[Stage-->MainTimeLine-->MovieClip-->TextField-->MovieClip-->MainTimeline-->Stage 
Cuando el evento se transmite hacia el objeto se le conoce como la Fase de Captura.
Cuando llega al TextField es la Target Fase.
Cuando vuelve a subir hacia el Stage Fase de Burbujeo (Bubbing) 
La fase de captura no se utiliza a no ser que lo especifiques explicitamente. 
Actionscript:

clip_mc.addEventListener&#40;MouseEvent.CLICK, botonClick, true&#41;;



Se suele usar para deshabilitar [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Stage-->MainTimeLine-->MovieClip-->TextField-->MovieClip-->MainTimeline-->Stage</strong> </p>
<p>Cuando el evento se transmite hacia el objeto se le conoce como la <strong>Fase de Captura</strong>.<br />
Cuando llega al TextField es la <strong>Target Fase.</strong><br />
Cuando vuelve a subir hacia el Stage <strong>Fase de Burbujeo (Bubbing)</strong> </p>
<p>La fase de captura no se utiliza a no ser que lo especifiques explicitamente. </p>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-2">
<div class="actionscript">clip_mc.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>MouseEvent.<span style="color: #006600;">CLICK</span>, botonClick, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;</div>
</div>
</div>
<p>
Se suele usar para deshabilitar eventos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.robot04.com/blog/index.php/2009/04/25/ciclo-de-vida-de-los-eventos-actionscript-30/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eventos &#8211; ActionScript 3.0</title>
		<link>http://www.robot04.com/blog/index.php/2009/04/25/eventos-actionscript-30/</link>
		<comments>http://www.robot04.com/blog/index.php/2009/04/25/eventos-actionscript-30/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 12:26:48 +0000</pubDate>
		<dc:creator>Robot04</dc:creator>
				<category><![CDATA[ActionScript 3.0]]></category>
		<category><![CDATA[Apuntes que siempre se me olvidan]]></category>

		<guid isPermaLink="false">http://www.robot04.com/blog/?p=289</guid>
		<description><![CDATA[Para enviar eventos usamos la clase EventDispatcher.
Se puede usar por herencia o por composición. 
Después tenemos que crear el evento 
Actionscript:

var event:Event = new Event&#40;"change"&#41;;



o lo que sería mejor 
Actionscript:

var event:Event = new Event&#40;Event.CHANGE&#41;;



y después tenemos que distribuir (lanzar) el evento: 
Actionscript:

dispatchEvent&#40;event&#41;;



Para usarlo por composición tenemos que implementar IEventDispatcher
En el constructor nos creamos un nuevo [...]]]></description>
			<content:encoded><![CDATA[<p>Para enviar eventos usamos la clase EventDispatcher.<br />
Se puede usar por herencia o por composición. </p>
<p>Después tenemos que crear el evento </p>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-11">
<div class="actionscript"><span style="color: #000000; font-weight: bold;">var</span> event:Event = <span style="color: #000000; font-weight: bold;">new</span> Event<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"change"</span><span style="color: #66cc66;">&#41;</span>;</div>
</div>
</div>
<p>
o lo que sería mejor </p>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-12">
<div class="actionscript"><span style="color: #000000; font-weight: bold;">var</span> event:Event = <span style="color: #000000; font-weight: bold;">new</span> Event<span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">CHANGE</span><span style="color: #66cc66;">&#41;</span>;</div>
</div>
</div>
<p>
y después tenemos que distribuir (lanzar) el evento: </p>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-13">
<div class="actionscript">dispatchEvent<span style="color: #66cc66;">&#40;</span>event<span style="color: #66cc66;">&#41;</span>;</div>
</div>
</div>
<p></p>
<p>Para usarlo por composición tenemos que implementar IEventDispatcher<br />
En el constructor nos creamos un nuevo EventDispatcher(); </p>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-14">
<div class="actionscript">dispatcher = <span style="color: #000000; font-weight: bold;">new</span> EventDispatcher<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">//donde this es el target que distribuye el evento. </span></div>
</div>
</div>
<p>
Después en cada función definida por la Interfaz devolvemos el dispatcher: </p>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-15">
<div class="actionscript"><span style="color: #b1b100;">return</span> dispatcher.<span style="color: #006600;">dispatchEvent</span><span style="color: #66cc66;">&#40;</span>event<span style="color: #66cc66;">&#41;</span>; <br />
<span style="color: #b1b100;">return</span> dispatcher.<span style="color: #006600;">hasEventListener</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">type</span><span style="color: #66cc66;">&#41;</span>; <br />
<span style="color: #b1b100;">return</span> dispatcher.<span style="color: #006600;">willTrigger</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">type</span><span style="color: #66cc66;">&#41;</span>; <br />
<span style="color: #b1b100;">return</span> dispatcher.<span style="color: #006600;">removeEventListener</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">type</span>, listener, useCapture<span style="color: #66cc66;">&#41;</span>; etc</div>
</div>
</div>
<p></p>
<p>Cualquier DisplayObject hereda de DispatchEvent<br />
Si queremos crear un evento propio nuestro tenemos que crear una nueva clase que herede de Event y que llame explicitamente al constructor y crear una constante estática con el nombre y valor que queramos como evento. </p>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-16">
<div class="actionscript"><span style="color: #0066CC;">public</span> <span style="color: #0066CC;">static</span> const LIMITE_EXCEDIDO:<span style="color: #0066CC;">String</span> = <span style="color: #ff0000;">"limite"</span>;</div>
</div>
</div>
<p>
Después en la clase en la que vamos a usar el evento generamos un nuevo evento EjemploEvent </p>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-17">
<div class="actionscript"><span style="color: #000000; font-weight: bold;">var</span> evento:EjemploEvent = <span style="color: #000000; font-weight: bold;">new</span> EjemploEvent<span style="color: #66cc66;">&#40;</span>EjemploEvent.<span style="color: #006600;">LIMITE_EXCEDIDO</span><span style="color: #66cc66;">&#41;</span>; <br />
dispatchEvent<span style="color: #66cc66;">&#40;</span>evento<span style="color: #66cc66;">&#41;</span>;</div>
</div>
</div>
<p>
En la clase en la que nos vayamos a apuntar al evento</p>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-18">
<div class="actionscript">foo.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>EjemploConEvento.<span style="color: #006600;">LIMITE_EXCEDIDO</span>, funcion<span style="color: #66cc66;">&#41;</span>;</div>
</div>
</div>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.robot04.com/blog/index.php/2009/04/25/eventos-actionscript-30/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Objetos y clases &#8211; ActionScript 3.0</title>
		<link>http://www.robot04.com/blog/index.php/2009/04/25/objetos-y-clases-actionscript-30/</link>
		<comments>http://www.robot04.com/blog/index.php/2009/04/25/objetos-y-clases-actionscript-30/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 12:23:15 +0000</pubDate>
		<dc:creator>Robot04</dc:creator>
				<category><![CDATA[ActionScript 3.0]]></category>
		<category><![CDATA[Apuntes que siempre se me olvidan]]></category>

		<guid isPermaLink="false">http://www.robot04.com/blog/?p=287</guid>
		<description><![CDATA[Programación Procedural 
Instrucciones que generan procedimientos
En ActionScript todo lo relacionado a funciones que generan tareas. 
Pros
- Implantación rápida, resultados rápidos
Contras
- Poco mantenible a la larga, en aplicaciones con más de 500 líneas de código. 
Orientado a Objetos
Divide el código en entidades diferentes 
Pros
Escalables
Metodología de programación 
Contras
Implantación lenta
Fácil abuso de ella sobrearquitectura de las cosas 
Objeto
Es [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Programación Procedural </strong><br />
Instrucciones que generan procedimientos<br />
En ActionScript todo lo relacionado a funciones que generan tareas. </p>
<p><i>Pros</i><br />
- Implantación rápida, resultados rápidos</p>
<p><i>Contras</i><br />
- Poco mantenible a la larga, en aplicaciones con más de 500 líneas de código. </p>
<p><strong>Orientado a Objetos</strong><br />
Divide el código en entidades diferentes </p>
<p><i>Pros</i><br />
Escalables<br />
Metodología de programación </p>
<p><i>Contras</i><br />
Implantación lenta<br />
Fácil abuso de ella sobrearquitectura de las cosas </p>
<p><strong>Objeto</strong><br />
Es un subprograma que mantiene información y funcionalidad que maneja esa información que se está guardando<br />
A los datos se los conoce como propiedades y a las funciones cómo métodos. </p>
<p><strong>Clases</strong><br />
Plantilla para crear objetos<br />
Definición abstracta de lo que va a ser un objeto.<br />
Todos los objetos creados a partir de una misma clase van a tener los mismos métodos y propiedades.<br />
Lo que crea un objeto único o diferente a otro es el valor de las propiedades. </p>
<p>Clases sin propiedades se hacen estáticas como la clase Math. </p>
<p>Todo lo que se puede hacer en flash está encapsulado en clases. </p>
<p><strong>Paquetes</strong><br />
Un paquete puede contener otro paquete, clases o definiciones de funciones. </p>
<p><strong>1.- Paquete Flash</strong><br />
La utilización de este paquete no añade código ni peso a nuestra película. Se encuentra integrado dentro del flash player. </p>
<p><strong>2.- Librería FL</strong><br />
Son los componentes de flash. No viene compilada dentro del flash player. Hay que añadir el código a la película flash cuando usemos un componente.</p>
<p><strong>3.- Libería mx</strong><br />
Componentes de Flex </p>
<p>Sirven para organizar el código y para que no halla colisión entre nombres. </p>
<p><strong>Como crear un objeto a partir de una clase</strong> </p>
<p><strong>Operador new</strong> </p>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-21">
<div class="actionscript"><span style="color: #000000; font-weight: bold;">var</span> punto:Point = <span style="color: #000000; font-weight: bold;">new</span> Point<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">// instancia un objeto de la clase Point </span></div>
</div>
</div>
<p></p>
<p>Una vez instanciado el objeto podemos acceder a sus métodos y propiedades </p>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-22">
<div class="actionscript">punto.<span style="color: #006600;">x</span> = <span style="color: #cc66cc;">30</span>; <br />
<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span>punto<span style="color: #66cc66;">&#41;</span>;</p>
<p>punto.<span style="color: #006600;">offset</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">30</span>, <span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">// Offset desplaza el punto </span><br />
<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span>punto<span style="color: #66cc66;">&#41;</span>; salida <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span>, <span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span>;</div>
</div>
</div>
<p></p>
<p>El constructor puede recibir parámetros, si vienen entre corchetes, éstos son opcionales. </p>
<p>Si escribimos el código en línea de tiempo podemos usar los paquetes sin importarlos.<br />
Cuando trabajemos con clases tenemos que importar las clases. </p>
<p>import flash.geom.Point;<br />
import flash.geom.*; // importa el paquete entero </p>
<p>Importando una clase no se añade el código al swf. Si no tiene el paquete importado se va a ir al top level a buscar.<br />
En el momento de compilación busca las clases y las compila en el .swf </p>
<p>Cuando se instancia una clase flash va a mirar si es una clase del top level --> si no, se pone a mirar en las directivas import del código para buscar la clase. </p>
<p><strong>COMO CREAR UNA CLASE</strong><br />
creamos el nombre del paquete, si no va dentro de ningún paquete lo dejamos vacío pero usamos la declaración de package </p>
<p>Por cada archivo de ActionScript solo puede haber una definición o de función o de clase. </p>
<p><strong>CLASSPATH (rutas de clase)</strong><br />
Ruta donde va a buscar flash las clases en el disco. </p>
<p><i>1.- DE DOCUMENTO</i><br />
<i>2.- GLOBALES </i></p>
<p>Se configuran en preferencias --> ActionScript<br />
De manera predeterminada vienen dos classpath por defecto<br />
"." va a buscar en el mismo directorio que el propio archivo .fla<br />
$(AppConfig)/ActionScript 3.0/Classes va a buscar en el directorio Adobe Flash CS3 es<br />
Archivos .swc código precompilado ,no son más que archivos .zip con un archivo xml y otro swf </p>
<p>Podemos insertar los classpath que queramos </p>
<p>Librería Standard (Clases de Flash)<br />
Clases del proyecto (Clases que están al lado del fla)<br />
Nuestra librería de clases </p>
<p>En configuración de publicación en la pestaña de Flash tenemos tambien una Ruta de Clases, pero solo para ese archivo. </p>
<p>En configuración de publicación tenemos una pestaña que crea un SWC, código precompilado para dar al cliente cuando no queremos dar nuestras clases. </p>
<p><strong>ATRIBUTOS DE CONTROL DE ACCESO o Visibilidad</strong></p>
<p>Se usan tanto en propiedades como métodos, asigna quien puede utilizar esa función, clase o método. </p>
<p>public: cualquiera puede ver/utilizar esa definición<br />
private: solo se puede usar desde este código (desde esta clase), métodos de ayuda dentro de la clase. Pensado para uso interno.<br />
protected: lo pueden ver la clase y las subclases<br />
internal: solo puede ser visto por otras clases que estén dentro del mismo paquete. Es el valor por defecto cuando no ponemos ningún atributo. </p>
<p><strong>PROGRAMACIÓN ORIENTADA A OBJETOS</strong></p>
<p>CUALIDADES<br />
<i>1- Abstracción:</i><br />
Nunca se debería saber el funcionamiento de una clase para poder usarla. </p>
<p><i>2.- Encapsulamiento:</i><br />
Una clase no debería dejar modificar sus propiedades.<br />
No poner propiedades públicas. </p>
<p><i>3.- Herencia</i><br />
<i>4.- Polimorfismo</i> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.robot04.com/blog/index.php/2009/04/25/objetos-y-clases-actionscript-30/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Polimorfismo &#8211; ActionScript 3.0</title>
		<link>http://www.robot04.com/blog/index.php/2009/04/25/polimorfismo-actionscript-30/</link>
		<comments>http://www.robot04.com/blog/index.php/2009/04/25/polimorfismo-actionscript-30/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 12:14:06 +0000</pubDate>
		<dc:creator>Robot04</dc:creator>
				<category><![CDATA[ActionScript 3.0]]></category>
		<category><![CDATA[Apuntes que siempre se me olvidan]]></category>

		<guid isPermaLink="false">http://www.robot04.com/blog/?p=283</guid>
		<description><![CDATA[Capacidad de una clase para comportarse como diferentes tipos de clases. 
Se hace la diferencia entre tipo y clase, es decir, la clase círculo es del tipo FormaGeometrica. 
Actionscript:

var c:Circulo = new Circulo&#40;&#41;; // Círculo hereda de FormaGeometrica 
function medirAncho&#40;a:FormaGeometrica&#41; : void 
&#123; 
&#160; &#160; trace&#40;a.ancho&#41;; 
&#125; 
medirAncho&#40;c&#41;;



Esto es posible gracias al polimorfismo, el tipo [...]]]></description>
			<content:encoded><![CDATA[<p>Capacidad de una clase para comportarse como diferentes tipos de clases. </p>
<p>Se hace la diferencia entre tipo y clase, es decir, la clase círculo es del tipo FormaGeometrica. </p>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-25">
<div class="actionscript"><span style="color: #000000; font-weight: bold;">var</span> c:Circulo = <span style="color: #000000; font-weight: bold;">new</span> Circulo<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">// Círculo hereda de FormaGeometrica </span><br />
<span style="color: #000000; font-weight: bold;">function</span> medirAncho<span style="color: #66cc66;">&#40;</span>a:FormaGeometrica<span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span> <br />
<span style="color: #66cc66;">&#123;</span> <br />
&nbsp; &nbsp; <span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span>a.<span style="color: #006600;">ancho</span><span style="color: #66cc66;">&#41;</span>; <br />
<span style="color: #66cc66;">&#125;</span> <br />
medirAncho<span style="color: #66cc66;">&#40;</span>c<span style="color: #66cc66;">&#41;</span>;</div>
</div>
</div>
<p></p>
<p>Esto es posible gracias al polimorfismo, el tipo puede ser la superclase (FormaGeometrica) y el valor siempre será el objeto que pasemos, es decir, si como tipo ponemos la superclase podremos pasar como parámetro cualquiera de las subclases (Circulo, Cuadrado, Triangulo, etc). </p>
<p>Después con <strong>is</strong> podemos averiguar de que tipo es la clase y actuar de una forma u otra con ella.<br />
Pej.</p>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-26">
<div class="actionscript"><span style="color: #000000; font-weight: bold;">function</span> medirAncho<span style="color: #66cc66;">&#40;</span>a:FormaGeometrica<span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span> <br />
<span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>a is Circle<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span>a.<span style="color: #006600;">radius</span> * <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>a is Rectangle<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span>a.<span style="color: #006600;">ancho</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span><br />
<span style="color: #66cc66;">&#125;</span></div>
</div>
</div>
<p></p>
<p>Cuando hablamos de polimorfismo podemos decir: "Tiene un..."</p>
]]></content:encoded>
			<wfw:commentRss>http://www.robot04.com/blog/index.php/2009/04/25/polimorfismo-actionscript-30/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Herencia &#8211; ActionScript 3.0</title>
		<link>http://www.robot04.com/blog/index.php/2009/04/25/herencia-actionscript-30/</link>
		<comments>http://www.robot04.com/blog/index.php/2009/04/25/herencia-actionscript-30/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 12:04:09 +0000</pubDate>
		<dc:creator>Robot04</dc:creator>
				<category><![CDATA[ActionScript 3.0]]></category>
		<category><![CDATA[Apuntes que siempre se me olvidan]]></category>

		<guid isPermaLink="false">http://www.robot04.com/blog/?p=277</guid>
		<description><![CDATA[La herencia es una relación entre clases.
Permite que una clase herede la funcionalidad de otra (propiedades y métodos). 
A la clase superior se la conoce como clase superior o clase base. La clase que hereda se la conoce como subclase o extensión.
Una subclase solo puede tener una superclase.
Cuanto más se baja en la cadena de [...]]]></description>
			<content:encoded><![CDATA[<p>La herencia es una relación entre clases.<br />
Permite que una clase herede la funcionalidad de otra (propiedades y métodos). </p>
<p>A la clase superior se la conoce como clase superior o clase base. La clase que hereda se la conoce como subclase o extensión.<br />
<strong>Una subclase solo puede tener una superclase.</strong></p>
<p>Cuanto más se baja en la cadena de herencia se vuelven más especializadas las clases. </p>
<p>Desde una subclase no se puede acceder a las propiedades privadas de la superclase.</p>
<p>Podemos usar protected para acceder desde la subclase a una propiedad de la superclase, pero no permitir su acceso desde otros lugares. </p>
<p><strong>Public:</strong> permite acceder a propiedades y métodos desde cualquier sitio (miembros y clases)<br />
<strong>Protected:</strong> permite acceder desde dentro de la clase y sus subclases. (miembros)<br />
<strong>Private:</strong> solo permite desde la propia clase. (miembros)<br />
<strong>Internal:</strong> solo permite acceder desde el mismo paquete (miembros y clases) </p>
<p>* miembro: propiedades y métodos </p>
<p><strong>Atributos de clase</strong></p>
<p>final<br />
dynamic<br />
internal<br />
public</p>
<p>El atributo final se usa para que no se pueda heredar de una clase.<br />
Dynamic indica que esa clase puede tener propiedades dinámicas (ej. Object, MovieClip).</p>
<p><strong>LOS MÉTODOS Y PROPIEDADES ESTÁTICOS NO SE HEREDAN</strong></p>
<p><strong>Override</strong><br />
Si creamos un método en la subclase con el mismo nombre que en la superclase nos sale un error para evitar problemas.<br />
Para sobreescribir un método de la superclase tenemos que marcarla como override en la subclase, después podremos ejecutar el código del método de la superclase escribiendo super. </p>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-29">
<div class="actionscript"><span style="color: #0066CC;">public</span> override <span style="color: #000000; font-weight: bold;">function</span> metodo<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span> <br />
<span style="color: #66cc66;">&#123;</span> <br />
&nbsp; &nbsp; <span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"Método de la clase base"</span><span style="color: #66cc66;">&#41;</span>;<br />
<span style="color: #66cc66;">&#125;</span></div>
</div>
</div>
<p></p>
<p>Si además queremos que se ejecute el código de la clase superior al hacer el override podemos usar super.<br />
Para poder ocultar un método con override el método debe tener la misma firma que la superclase (exacta). </p>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-30">
<div class="actionscript"><span style="color: #0066CC;">public</span> override <span style="color: #000000; font-weight: bold;">function</span> metodo<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span> <br />
<span style="color: #66cc66;">&#123;</span> <br />
&nbsp; &nbsp; <span style="color: #0066CC;">super</span>.<span style="color: #006600;">metodo</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>; <br />
&nbsp; &nbsp; <span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"Método de la subclase"</span><span style="color: #66cc66;">&#41;</span>;<br />
<span style="color: #66cc66;">&#125;</span></div>
</div>
</div>
<p></p>
<p>Cuando hablamos de herencia podemos decir: "Es un..."<br />
Ej. Un Ferrari <strong>es un</strong> deportivo que a su vez es un coche </p>
<p><strong>Donde utilizamos una superclase podemos usar una subclase.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.robot04.com/blog/index.php/2009/04/25/herencia-actionscript-30/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Casting y conversión &#8211; ActionScript 3.0</title>
		<link>http://www.robot04.com/blog/index.php/2009/04/25/casting-y-conversion-actionscript-30/</link>
		<comments>http://www.robot04.com/blog/index.php/2009/04/25/casting-y-conversion-actionscript-30/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 11:48:57 +0000</pubDate>
		<dc:creator>Robot04</dc:creator>
				<category><![CDATA[ActionScript 3.0]]></category>
		<category><![CDATA[Apuntes que siempre se me olvidan]]></category>

		<guid isPermaLink="false">http://www.robot04.com/blog/?p=273</guid>
		<description><![CDATA[Gracias a la herencia podemos hacer un casting de obj para tratarlo como un MovieClip:
1.- Casting
Actionscript:

var obj:Object = new MovieClip&#40;&#41;; 
var mc:MovieClip = obj as MovieClip;



2.- Conversión
Actionscript:

var obj:Object = new MovieClip&#40;&#41;;
var mc:MovieClip = MovieClip&#40;obj&#41;;



Quizá se vea más claro con Number y String:
Actionscript:

var num:uint = 1;
var str:String = String&#40;num&#41;;



]]></description>
			<content:encoded><![CDATA[<p>Gracias a la herencia podemos hacer un casting de obj para tratarlo como un MovieClip:</p>
<p><strong>1.- Casting</strong></p>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-34">
<div class="actionscript"><span style="color: #000000; font-weight: bold;">var</span> obj:<span style="color: #0066CC;">Object</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">MovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>; <br />
<span style="color: #000000; font-weight: bold;">var</span> mc:<span style="color: #0066CC;">MovieClip</span> = obj as <span style="color: #0066CC;">MovieClip</span>;</div>
</div>
</div>
<p></p>
<p><strong>2.- Conversión</strong></p>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-35">
<div class="actionscript"><span style="color: #000000; font-weight: bold;">var</span> obj:<span style="color: #0066CC;">Object</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">MovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<br />
<span style="color: #000000; font-weight: bold;">var</span> mc:<span style="color: #0066CC;">MovieClip</span> = <span style="color: #0066CC;">MovieClip</span><span style="color: #66cc66;">&#40;</span>obj<span style="color: #66cc66;">&#41;</span>;</div>
</div>
</div>
<p></p>
<p>Quizá se vea más claro con Number y String:</p>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-36">
<div class="actionscript"><span style="color: #000000; font-weight: bold;">var</span> num:uint = <span style="color: #cc66cc;">1</span>;<br />
<span style="color: #000000; font-weight: bold;">var</span> str:<span style="color: #0066CC;">String</span> = <span style="color: #0066CC;">String</span><span style="color: #66cc66;">&#40;</span>num<span style="color: #66cc66;">&#41;</span>;</div>
</div>
</div>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.robot04.com/blog/index.php/2009/04/25/casting-y-conversion-actionscript-30/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ancla a una función &#8211; ActionScript 3.0</title>
		<link>http://www.robot04.com/blog/index.php/2009/04/25/ancla-a-una-funcion-actionscript-30/</link>
		<comments>http://www.robot04.com/blog/index.php/2009/04/25/ancla-a-una-funcion-actionscript-30/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 11:39:21 +0000</pubDate>
		<dc:creator>Robot04</dc:creator>
				<category><![CDATA[ActionScript 3.0]]></category>
		<category><![CDATA[Apuntes que siempre se me olvidan]]></category>

		<guid isPermaLink="false">http://www.robot04.com/blog/?p=269</guid>
		<description><![CDATA[Como lanzar una función desde un campo de texto en AS3:
Actionscript:

campo_txt.addEventListener&#40;TextEvent.LINK, campoLink&#41;; 
function campoLink&#40;event:TextEvent&#41; 
&#123; 
&#160; &#160; trace&#40;event.text&#41;;
&#125;
campo_txt.htmlText = "Hola &#60;a href='event:El texto del ancla'&#62;Ancla&#60;/a&#62;";



]]></description>
			<content:encoded><![CDATA[<p>Como lanzar una función desde un campo de texto en AS3:</p>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-38">
<div class="actionscript">campo_txt.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>TextEvent.<span style="color: #006600;">LINK</span>, campoLink<span style="color: #66cc66;">&#41;</span>; <br />
<span style="color: #000000; font-weight: bold;">function</span> campoLink<span style="color: #66cc66;">&#40;</span>event:TextEvent<span style="color: #66cc66;">&#41;</span> <br />
<span style="color: #66cc66;">&#123;</span> <br />
&nbsp; &nbsp; <span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span>event.<span style="color: #0066CC;">text</span><span style="color: #66cc66;">&#41;</span>;<br />
<span style="color: #66cc66;">&#125;</span></p>
<p>campo_txt.<span style="color: #0066CC;">htmlText</span> = <span style="color: #ff0000;">"Hola &lt;a href='event:El texto del ancla'&gt;Ancla&lt;/a&gt;"</span>;</div>
</div>
</div>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.robot04.com/blog/index.php/2009/04/25/ancla-a-una-funcion-actionscript-30/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

