<?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>saltar intro &#187; ActionScript</title>
	<atom:link href="http://www.saltarintro.com/wp/category/flash/actionscript/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.saltarintro.com/wp</link>
	<description>carguen, apunten, this._parent</description>
	<lastBuildDate>Fri, 16 Dec 2011 09:19:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Descargar un archivo de video flv de youtube.com con ActionScript2 (AS2)</title>
		<link>http://www.saltarintro.com/wp/2008/10/30/descargar-un-archivo-de-video-flv-de-youtubecom-con-actionscript2-as2/</link>
		<comments>http://www.saltarintro.com/wp/2008/10/30/descargar-un-archivo-de-video-flv-de-youtubecom-con-actionscript2-as2/#comments</comments>
		<pubDate>Thu, 30 Oct 2008 12:50:05 +0000</pubDate>
		<dc:creator>sergiomas</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://www.saltarintro.com/wp/?p=71</guid>
		<description><![CDATA[photo credit: PIAZZA del POPOLO Actualización 18/11/2008: Me pasa, y no soy el único, que solo funciona el script en local, y no cuando el swf está colgado online. No se cual es la razón, aunque tampoco he buscado muy a fondo. Podría ser alguna directiva de seguridad del flashplayer quizás. &#8212; A falta de [...]]]></description>
			<content:encoded><![CDATA[<p><a title="YouTube button" href="http://www.flickr.com/photos/14334763@N05/2927963219/" target="_blank"><img src="http://farm4.static.flickr.com/3215/2927963219_fcb1dd65a6_m.jpg" border="0" alt="YouTube button" /></a><br />
<small><a title="Attribution License" href="http://creativecommons.org/licenses/by/2.0/" target="_blank"><img src="http://www.saltarintro.com/wp/wp-content/plugins/photo_dropper/images/cc.png" border="0" alt="Creative Commons License" width="16" height="16" align="absmiddle" /></a> <a href="http://www.photodropper.com/photos/" target="_blank">photo</a> credit: <a title="PIAZZA del POPOLO" href="http://www.flickr.com/photos/14334763@N05/2927963219/" target="_blank">PIAZZA del POPOLO</a></small></p>
<p><strong>Actualización 18/11/2008:</strong></p>
<p><span style="color: red;"><em>Me pasa, y no soy el único, que solo funciona el script en local, y no cuando el swf está colgado online. No se cual es la razón, aunque tampoco he buscado muy a fondo. Podría ser alguna directiva de seguridad del flashplayer quizás.<br />
</em></span></p>
<p><strong>&#8212;</strong></p>
<p>A falta de recurrir al API de Youtube también hay otras maneras de obtener los enlaces directos a sus videos, en formato flv, alojados en cualquiera de sus diferentes servidores.</p>
<p>Lo mejor sería usar su propia API por que así se evita que cualquier cambio en su sistema invalide nuestros anteriores scripts, como <a href="http://www.saltarintro.com/wp/2008/05/12/cargar-un-video-de-youtube-en-un-player-de-flash-con-actionscript-v2-as2/">ya me ha pasado</a>.</p>
<p>El caso es que sigo tropezando con la misma piedra, así que aquí está el nuevo código para poder descargar un flv y visionarlo en tu propio mediaplayer.</p>
<pre name="code" class="java">var my_lv:LoadVars = new LoadVars();
my_lv.onData = function(vars_str:String) {
if (vars_str == undefined) {
trace("Error al cargar datos");
return;
}
var i:Number = 0;
while (vars_str.split("&amp;")[i] != undefined) {
var token_str = vars_str.split("&amp;")[i];
if(token_str.split("=")[0] == "token") {
var t = token_str.split("=")[1];
_root.videoplayer_mc.contentPath = "http://www.youtube.com/get_video.php?video_id="+idvideo+"&amp;t="+t+"&amp;fmt=5";
break;
}
i ++;
}
};
idvideo = "2OBZHB5I89A";
my_lv.load("http://www.youtube.com/get_video_info?video_id="+idvideo, my_lv, "GET");</pre>
<p>Y un ejemplo en formato .fla que se puede descargar desde <a href="http://www.saltarintro.com/files/flvyoutube.zip">aquí</a>.</p>
<p>Pulsa <a href="http://saltarintro.com/files/flvyoutube.swf" target="blank">aquí</a> para abrir otra ventana con el swf. Si no funciona es que Youtube ha cambiado de nuevo su sistema.</p>
<p><strong>Explicación:</strong></p>
<p>Los enlaces a los videos en las propias páginas de youtube son del tipo:</p>
<p><code>http://www.youtube.com/watch?v=2OBZHB5I89A</code></p>
<p>Donde el valor de la variable &#8220;v&#8221;, en este caso &#8220;2OBZHB5I89A&#8221;, indica el id único del archivo de video.</p>
<p>Para acceder al archivo de video, y no al player que lo carga, son necesarias otras variables que completarían el enlace directo.</p>
<p>Este enlace tiene el siguiente formato:</p>
<p><code>http://www.youtube.com/get_video.php?video_id=<span style="color: red;">valorid</span>&amp;t=<span style="color: red;">valortoken</span>&amp;fmt=5</code></p>
<p><span style="color: red;">valorid</span> se tiene que sustituir con el valor de la variable &#8220;v&#8221; mencionada antes, y <span style="color: red;">valortoken</span> con otro valor que se obtiene mediante el script.</p>
<p>El código solicita a una URL específica la información relativa a un video determinado<br />
<code>http://www.youtube.com/get_video_info?video_id=<span style="color: red;">valorid</span>"</code><br />
y esta URL le devuelve una cadena de variables, entre las cuales se encuentra una llamada &#8220;token&#8221;, cuyo valor es el que necesitamos.</p>
<p>Finalmente la línea<br />
<code>_root.videoplayer_mc.contentPath = 'http://www.youtube.com/get_video.php?video_id='+idvideo+'&amp;t='+t+'&amp;fmt=5';</code><br />
monta el enlace al video, y lo asigna a la variable del player de video, definida para guardar la ruta hacia el flv.</p>
<p>Algunas dudas se solucionaron en los <a href="http://www.saltarintro.com/wp/2008/05/12/cargar-un-video-de-youtube-en-un-player-de-flash-con-actionscript-v2-as2/#comments">comentarios del post anterior</a> sobre este tema.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.saltarintro.com/wp/2008/10/30/descargar-un-archivo-de-video-flv-de-youtubecom-con-actionscript2-as2/feed/</wfw:commentRss>
		<slash:comments>32</slash:comments>
		</item>
		<item>
		<title>Cargar un video de Youtube en un player de Flash con ActionScript v.2 (AS2)</title>
		<link>http://www.saltarintro.com/wp/2008/05/12/cargar-un-video-de-youtube-en-un-player-de-flash-con-actionscript-v2-as2/</link>
		<comments>http://www.saltarintro.com/wp/2008/05/12/cargar-un-video-de-youtube-en-un-player-de-flash-con-actionscript-v2-as2/#comments</comments>
		<pubDate>Mon, 12 May 2008 08:47:53 +0000</pubDate>
		<dc:creator>sergiomas</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Video Youtube AS2 Flash]]></category>

		<guid isPermaLink="false">http://www.saltarintro.com/wp/?p=54</guid>
		<description><![CDATA[photo credit: thp365 Actualización 30/Oct/2008: Solucionado ¡¡¡ Visita el post &#8220;Descargar un archivo de video flv de youtube.com con ActionScript2 (AS2)&#8221; con el nuevo script. Actualización 27/Oct/2008: Youtube ha realizado cambios que impiden la descarga de los videos en formato flv según el script que describo más abajo. - &#8211; - Me ha costado encontrar [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Day 244/365" href="http://www.flickr.com/photos/10031226@N03/2338046355/" target="_blank"><img src="http://farm4.static.flickr.com/3020/2338046355_489090e439_m.jpg" border="0" alt="Day 244/365" /></a><br />
<small><a title="Attribution License" href="http://creativecommons.org/licenses/by/2.0/" target="_blank"><img src="http://www.saltarintro.com/wp/wp-content/plugins/photo_dropper/images/cc.png" border="0" alt="Creative Commons License" width="16" height="16" align="absmiddle" /></a> <a href="http://www.photodropper.com/photos/" target="_blank">photo</a> credit: <a title="thp365" href="http://www.flickr.com/photos/10031226@N03/2338046355/" target="_blank">thp365</a></small></p>
<p><strong>Actualización 30/Oct/2008:</strong> <span style="color: green;">Solucionado ¡¡¡ Visita el post &#8220;<a href="http://www.saltarintro.com/wp/2008/10/30/descargar-un-archivo-de-video-flv-de-youtubecom-con-actionscript2-as2/">Descargar un archivo de video flv de youtube.com con ActionScript2 (AS2)</a>&#8221; con el nuevo script.</span></p>
<p><strong>Actualización 27/Oct/2008:</strong> <span style="color: #ff0000;">Youtube ha realizado cambios que impiden la descarga de los videos en formato flv según el script que describo más abajo.</span></p>
<p>- &#8211; -</p>
<p>Me ha costado encontrar información adecuada en inglés y menos en español, pero al final, gracias al <a title="Abdul Qadiz's Blog" href="http://www.abdulqabiz.com/blog/archives/flash_and_actionscript/constructing_youtube_1.php">blog de Abdul Qabiz</a> hallé el script adecuado.</p>
<pre class="js">createEmptyMovieClip("mc",getNextHighestDepth());
var _mcl:MovieClipLoader = new MovieClipLoader();
_mclListener = new Object();
_mclListener.onLoadInit = function(target:MovieClip) {
    var _lv:LoadVars = new LoadVars();
    _lv.decode(target._url.split("?")[1]);
    _root.videoplayer_mc.contentPath = "http://www.youtube.com/get_video.php?"+"video_id="+_lv.video_id+"&amp;t="+_lv.t;
    _mcl.unloadClip(target);
};
_mcl.addListener(_mclListener);
_mcl.loadClip("http://es.youtube.com/v/2OBZHB5I89A",mc);</pre>
<p>Lo he retocado un poco, pero el mérito es casi todo de Abdul. Y digo casi todo por que cuando pruebas el script en su versión AS2, este no funciona en Internet Explorer, aunque si en Firefox y Ópera. Y la solución la da un comentario del post, escondido casi al final de los 99 que tiene, (uff¡¡¡). Solo había que sustituir &#8220;onLoadStar&#8221; por &#8220;onLoadInit&#8221; en la cuarta linea: <code>_mclListener.onLoadInit = function(target:MovieClip) {</code></p>
<p>El script de ejemplo está pensado para que funcione junto con el componente MediaPlayer que viene por defecto en el FLash8 y CS3.</p>
<p>Solo hay que arrastrarlo desde la pestaña de componentes al escenario, darle un nombre de movieclip, en mi caso &#8220;<span style="color: #ff0000;">videoplayer_mc</span>&#8220;, y añadir el script en el mismo frame pero en otra capa. Todo en la linea principal de tiempo.</p>
<p>Antes se podía acceder a los videos de Youtube añadiendo como parámetro de url, la página propia del video. Por ejemplo: &#8220;http://es.youtube.com/v/2OBZHB5I89A&#8221;.</p>
<p>Pero desde hace un tiempo esto no es suficiente y hay que añadir un parámetro más, que se obtiene en la respuesta del servidor de Youtube.</p>
<p>Para ver de que hablo:</p>
<p>La URL http://es.youtube.com/watch?v=2OBZHB5I89A también se puede escribir de esta manera: http://es.youtube.com/v/2OBZHB5I89A.</p>
<p>Simplemente se ha sustituido la cadena &#8220;<strong>watch?v=</strong>&#8221; por &#8220;<strong>/v/</strong>&#8220;.</p>
<p>Cuando se solicita la nueva dirección, el navegador devuelve en la barra de direcciones esta otra ruta: <code>http://es.youtube.com/swf/l.swf?video_id=2OBZHB5I89A&amp;rel=1&amp;eurl=&amp;iurl=http%3A//s3.ytimg.com/vi/2OBZHB5I89A/default.jpg&amp;t=OEgsToPDskLL1pfly-W5a5NQnX3gbuKO</code></p>
<p>Donde lo que nos interesa se encuentra al final, bajo el valor de la variable &#8220;<strong>t</strong>&#8220;.</p>
<p>El script simplemente lo captura y monta el url necesario.</p>
<p>Os podeis bajar un ejemplo .fla: <a rel="attachment wp-att-57" href="http://www.saltarintro.com/wp/2008/05/12/cargar-un-video-de-youtube-en-un-player-de-flash-con-actionscript-v2-as2/videoyoutube/">videoyoutube.zip</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.saltarintro.com/wp/2008/05/12/cargar-un-video-de-youtube-en-un-player-de-flash-con-actionscript-v2-as2/feed/</wfw:commentRss>
		<slash:comments>54</slash:comments>
		</item>
		<item>
		<title>Asignar un valor a una variable construida con eval().</title>
		<link>http://www.saltarintro.com/wp/2006/05/21/asignar-un-valor-a-una-variable-construida-con-eval/</link>
		<comments>http://www.saltarintro.com/wp/2006/05/21/asignar-un-valor-a-una-variable-construida-con-eval/#comments</comments>
		<pubDate>Sun, 21 May 2006 09:33:10 +0000</pubDate>
		<dc:creator>sergiomas</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Trucos]]></category>

		<guid isPermaLink="false">http://www.saltarintro.com/wp/2006/05/21/asignar-un-valor-a-una-variable-construida-con-eval/</guid>
		<description><![CDATA[En Actionscript v.1 a veces nos gustaría asignar un valor a una variable de la siguiente manera: eval(&#8220;_root.mivar&#8221;+(i-1)) = 100; // da error Pero esto no funciona, salvo que lo hagamos de otra manera. A saber: set(&#8220;_root.mivar&#8221;+(i-1), 100); // ok o también, _root["mivar"+(i-1)] = 100; // ok Para casos del tipo: eval(&#8220;_root.movie&#8221;+(i-1)+&#8221;._alpha&#8221;) = 100; // [...]]]></description>
			<content:encoded><![CDATA[<p>En Actionscript v.1 a veces nos gustaría asignar un valor a una variable de la siguiente manera:</p>
<p>eval(&#8220;_root.mivar&#8221;+(i-1)) = 100; // da error</p>
<p>Pero esto no funciona, salvo que lo hagamos de otra manera. A saber:</p>
<p>set(&#8220;_root.mivar&#8221;+(i-1), 100); // ok</p>
<p>o también,</p>
<p>_root["mivar"+(i-1)] = 100; // ok</p>
<p>Para casos del tipo:</p>
<p>eval(&#8220;_root.movie&#8221;+(i-1)+&#8221;._alpha&#8221;) = 100; // da error</p>
<p>que tampoco funciona, si se puede utilizar eval() con una pequeña variante:</p>
<p>eval(&#8220;_root.movie&#8221;+(i-1))._alpha = 100; // ok</p>
]]></content:encoded>
			<wfw:commentRss>http://www.saltarintro.com/wp/2006/05/21/asignar-un-valor-a-una-variable-construida-con-eval/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aplicar onEnterFrame y setInterval a un mismo MovieClip</title>
		<link>http://www.saltarintro.com/wp/2006/02/22/mezclar-onenterframe-y-setinterval-a-un-mismo-movieclip/</link>
		<comments>http://www.saltarintro.com/wp/2006/02/22/mezclar-onenterframe-y-setinterval-a-un-mismo-movieclip/#comments</comments>
		<pubDate>Wed, 22 Feb 2006 09:44:15 +0000</pubDate>
		<dc:creator>sergiomas</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://www.saltarintro.com/wp/?p=20</guid>
		<description><![CDATA[A veces ocurre que quieres aplicar un efecto a un movieclip mediante un onEnterFrame y te das cuenta de que ya está a merced de otro onEnterFrame que se declaró con anterioridad. La solución esta en el setInterval. Puedes aplicar varias funciones o efectos, como si fueran varios onEnterframe, a un mismo movieclip sin que [...]]]></description>
			<content:encoded><![CDATA[<p>A veces ocurre que quieres aplicar un efecto a un movieclip mediante un onEnterFrame y te das cuenta de que ya está a merced de otro onEnterFrame que se declaró con anterioridad.</p>
<p>La solución esta en el setInterval.</p>
<p>Puedes aplicar varias funciones o efectos, como si fueran varios onEnterframe, a un mismo movieclip sin que se interfieran entre ellos.</p>
<p>Ejemplo:<br />
Crea un clip en el escenario con el nombre de instancia &#8216;bola_mc&#8217; y añade en otra capa el siguiente actionscript.</p>
<p>[ftf]<br />
bola_mc.onEnterFrame = function  () {<br />
	_x++;<br />
}<br />
function desaparecer(pelicula){<br />
   pelicula._alpha-=10<br />
}<br />
function alargar(pelicula){<br />
   pelicula._yscale+=2;<br />
}<br />
idIntervalo= setInterval(desaparecer,1000,bola_mc)<br />
idIntervalo1= setInterval(alargar,100,bola_mc)<br />
[/ftf]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.saltarintro.com/wp/2006/02/22/mezclar-onenterframe-y-setinterval-a-un-mismo-movieclip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Truco al editar ActionScript</title>
		<link>http://www.saltarintro.com/wp/2005/09/15/truco-al-editar-actionscript/</link>
		<comments>http://www.saltarintro.com/wp/2005/09/15/truco-al-editar-actionscript/#comments</comments>
		<pubDate>Thu, 15 Sep 2005 14:59:44 +0000</pubDate>
		<dc:creator>sergiomas</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Trucos]]></category>

		<guid isPermaLink="false">http://www.saltarintro.com/wp/?p=8</guid>
		<description><![CDATA[Leyendo un post sobre tips para Flash8, encontré uno que también funciona al editar código en el Flash MX 2004 pro. Si pones el cursor entre dos paréntesis y pulsas CONTROL y ACENTO al mismo tiempo, quedará seleccionado todo el contenido dentro de esos paréntesis. No es la locura, pero acelera un poco más el [...]]]></description>
			<content:encoded><![CDATA[<p>Leyendo un <a href="http://swfoo.com/archives/000071.html">post</a> sobre tips para Flash8, encontré uno que también funciona al editar código en el Flash MX 2004 pro.</p>
<p>Si pones el cursor entre dos paréntesis y pulsas CONTROL y ACENTO al mismo tiempo, quedará seleccionado todo el contenido dentro de esos paréntesis.</p>
<p>No es la locura, pero acelera un poco más el trabajo.</p>
<p>Vía: <a href="http://swfoo.com">swfoo.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.saltarintro.com/wp/2005/09/15/truco-al-editar-actionscript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>¿Desde donde llamé a esa función global?</title>
		<link>http://www.saltarintro.com/wp/2005/09/14/%c2%bfdesde-donde-llame-a-esa-funcion-global/</link>
		<comments>http://www.saltarintro.com/wp/2005/09/14/%c2%bfdesde-donde-llame-a-esa-funcion-global/#comments</comments>
		<pubDate>Wed, 14 Sep 2005 15:42:44 +0000</pubDate>
		<dc:creator>sergiomas</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://www.saltarintro.com/wp/?p=7</guid>
		<description><![CDATA[A veces nos interesa declarar una función global para poder acceder a ella desde cualquier línea de tiempo. Por ejemplo, diseñé una función para cargar archivos XML. Quería que la línea de tiempo desde donde se llamaba a la función parase hasta que terminara la carga y luego continuase. Pero me encontré con el problema [...]]]></description>
			<content:encoded><![CDATA[<p>A veces nos interesa declarar una función global para poder acceder a ella desde cualquier línea de tiempo.</p>
<p>Por ejemplo, diseñé una función para cargar archivos XML.<br />
Quería que la línea de tiempo desde donde se llamaba a la función parase hasta que terminara la carga y luego continuase.</p>
<p>Pero me encontré con el problema de que el &#8216;stop();&#8217; no funcionaba. Ni siquiera en _level0. La función global no sabía desde donde era llamada.</p>
<p>Voy a poner un ejemplo más sencillo para explicarlo mejor.</p>
<p>Primero declaro una función global:</p>
<blockquote><p><code>_global.clipalfa = function(alpha) {<br />
	trace(this);<br />
	var timeline_mc = eval(this);<br />
	timeline_mc._alpha = alpha;<br />
};</code></p></blockquote>
<p>Con esta función pretendo modificar la transparencia del movieclip que contiene una llamada a dicha función.</p>
<p>Por ejemplo, tengo un clip al que llamo &#8216;menu_mc&#8217;, y en su línea de tiempo hago la siguiente llamada:</p>
<blockquote><p><code>clipalfa(50);</code></p></blockquote>
<p>Sin embargo no sucede nada, y la ventana de salida muestra un [type Object], fruto del &#8216;trace(this);&#8217;.<br />
Esto es debido a que cuando declaras una función como global la estás convirtiendo en un objeto, que es independiente de cualquier línea de tiempo.</p>
<p>Solución: el método CALL.</p>
<p>Con este método puedes saber desde donde se ha llamado a la función global.</p>
<p>La llamada quedaría así:</p>
<blockquote><p><code>clipalfa.call(this, 50);</code></p></blockquote>
<p>donde &#8216;this&#8217; almacena la línea de tiempo desde donde se está llamando  a la función global.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.saltarintro.com/wp/2005/09/14/%c2%bfdesde-donde-llame-a-esa-funcion-global/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.910 seconds -->

