<?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>kizmorgan.com - ..so what the !#@$ is that supposed to mean? &#187; flash</title>
	<atom:link href="http://www.kizmorgan.com/tag/flash/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.kizmorgan.com</link>
	<description>..so what the !#@$ is that supposed to mean?</description>
	<lastBuildDate>Tue, 16 Mar 2010 15:45:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Forward&#8230;&#8230;maaaaaach.</title>
		<link>http://www.kizmorgan.com/2009/07/16/forwardmaaaaaach/</link>
		<comments>http://www.kizmorgan.com/2009/07/16/forwardmaaaaaach/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 20:56:15 +0000</pubDate>
		<dc:creator>Kiz</dc:creator>
				<category><![CDATA[Keith Morgan's Blog]]></category>
		<category><![CDATA[teh internets]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[fast forward]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[PDL]]></category>
		<category><![CDATA[reverse]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.kizmorgan.com/?p=251</guid>
		<description><![CDATA[More Flash video player PDL code.  This time, Fast forward and reverse.   Basically you set a timer that counts for you.

private const PLAYHEAD_UPDATE_INTERVAL_MS:uint = 10;
public var rewFF:Timer = new Timer(PLAYHEAD_UPDATE_INTERVAL_MS);


public function ffcontroller():void {
&#60; button &#62;.removeEventListener(MouseEvent.MOUSE_DOWN, ffcontroller);
video.pause();
rewFF.start();
rewFF.addEventListener(TimerEvent.TIMER, ffmotioncontroller);
this.addEventListener(MouseEvent.MOUSE_UP, ffstopcontroller);
}
public function ffstopcontroller(pEvent:MouseEvent):void {
rewFF.stop();
rewFF.removeEventListener(TimerEvent.TIMER, ffmotioncontroller);
rewFF.reset();
video.play();
ffBtn.addEventListener(MouseEvent.MOUSE_DOWN, ffcontroller);
}
public function ffmotioncontroller(event:TimerEvent):void {
elapsedTime = (time_elapsed + rewFF.currentCount);
video.seek(Number(elapsedTime.toFixed(1)));
}

&#8230;for reverse, just [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=1f25f9184b71d63b9873f9f5d92d4611&amp;default=http://www.kizmorgan.com/wp-content/themes/procut-1/images/avatar-sample.jpg' alt='No Gravatar' width=40 height=40/><p>More Flash video player PDL code.  This time, Fast forward and reverse.   Basically you set a timer that counts for you.</p>
<p><code><br />
private const PLAYHEAD_UPDATE_INTERVAL_MS:uint = 10;<br />
public var rewFF:Timer = new Timer(PLAYHEAD_UPDATE_INTERVAL_MS);<br />
</code></p>
<p><code><br />
public function ffcontroller():void {<br />
&lt; button &gt;.removeEventListener(MouseEvent.MOUSE_DOWN, ffcontroller);<br />
video.pause();<br />
rewFF.start();<br />
rewFF.addEventListener(TimerEvent.TIMER, ffmotioncontroller);<br />
this.addEventListener(MouseEvent.MOUSE_UP, ffstopcontroller);<br />
}<br />
public function ffstopcontroller(pEvent:MouseEvent):void {<br />
rewFF.stop();<br />
rewFF.removeEventListener(TimerEvent.TIMER, ffmotioncontroller);<br />
rewFF.reset();<br />
video.play();<br />
ffBtn.addEventListener(MouseEvent.MOUSE_DOWN, ffcontroller);<br />
}<br />
public function ffmotioncontroller(event:TimerEvent):void {<br />
elapsedTime = (time_elapsed + rewFF.currentCount);<br />
video.seek(Number(elapsedTime.toFixed(1)));<br />
}<br />
</code></p>
<p>&#8230;for reverse, just subtract the time_elapsed from the current count.  You will also need a good number of frames embedded in your video for this to look cool.</p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kizmorgan.com/2009/07/16/forwardmaaaaaach/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>zoom zoom&#8230;.</title>
		<link>http://www.kizmorgan.com/2009/07/16/zoom-zoom/</link>
		<comments>http://www.kizmorgan.com/2009/07/16/zoom-zoom/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 20:43:19 +0000</pubDate>
		<dc:creator>Kiz</dc:creator>
				<category><![CDATA[Keith Morgan's Blog]]></category>
		<category><![CDATA[teh internets]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[in]]></category>
		<category><![CDATA[out]]></category>
		<category><![CDATA[PDL]]></category>
		<category><![CDATA[player]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[zoom]]></category>

		<guid isPermaLink="false">http://www.kizmorgan.com/?p=248</guid>
		<description><![CDATA[Cleaning out some of my flash video player junk and ran across a basic zoom in/out function for progressive download players.  Assuming your video object is the child of a sprite (videoSprite):

               public function zoomincontroller(pEvent:MouseEvent):void {
     [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=1f25f9184b71d63b9873f9f5d92d4611&amp;default=http://www.kizmorgan.com/wp-content/themes/procut-1/images/avatar-sample.jpg' alt='No Gravatar' width=40 height=40/><p>Cleaning out some of my flash video player junk and ran across a basic zoom in/out function for progressive download players.  Assuming your video object is the child of a sprite (videoSprite):</p>
<p><code><br />
               public function zoomincontroller(pEvent:MouseEvent):void {<br />
                        //move and scale sprite<br />
			videoSprite.x -= <mouseX>;<br />
			videoSprite.y  -= <mouseY>;<br />
			videoSprite.width += (<mouseX>*2);<br />
			videoSprite.height +=  (<mouseY>*2);<br />
		}<br />
		public function zoomoutcontroller(pEvent:MouseEvent):void {<br />
                        //reset sprite<br />
			videoSprite.x = 0;<br />
			videoSprite.y = 0;<br />
			videoSprite.width = stage.stageWidth;<br />
			videoSprite.height = stage.stageHeight;<br />
		}<br />
</code></p>
<p>&#8230;.never really got around to retooling it. The basic concept is that you scale and reposition the Sprite the video is in.  Obviously you will need a high-res video for this to look like anything&#8230;</p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kizmorgan.com/2009/07/16/zoom-zoom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Who can em-bed now..who can it, who can it</title>
		<link>http://www.kizmorgan.com/2009/06/09/who-can-em-bed-nowwho-can-it-who-can-it/</link>
		<comments>http://www.kizmorgan.com/2009/06/09/who-can-em-bed-nowwho-can-it-who-can-it/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 15:41:55 +0000</pubDate>
		<dc:creator>Kiz</dc:creator>
				<category><![CDATA[Keith Morgan's Blog]]></category>
		<category><![CDATA[teh internets]]></category>
		<category><![CDATA[embed]]></category>
		<category><![CDATA[external interface]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[tracking]]></category>

		<guid isPermaLink="false">http://www.kizmorgan.com/?p=242</guid>
		<description><![CDATA[Embedded players are in season again. Everyone wants to save their bandwidth and suck up yours.  But who&#8217;s got your player?  Well, I had this problem at GameVee and lemme be the first to formally tell you&#8230;.the Flash runtime is stupid (on purpose though, its been crippled).
Anyway, how do you know what domain your player [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=1f25f9184b71d63b9873f9f5d92d4611&amp;default=http://www.kizmorgan.com/wp-content/themes/procut-1/images/avatar-sample.jpg' alt='No Gravatar' width=40 height=40/><p>Embedded players are in season again. Everyone wants to save their bandwidth and suck up yours.  But who&#8217;s got your player?  Well, I had this problem at GameVee and lemme be the first to formally tell you&#8230;.the Flash runtime is stupid (on purpose though, its been crippled).</p>
<p>Anyway, how do you know what domain your player is being viewed at?  Simple huh? just get the old <em>Application.application.url</em>, huh?  Well&#8230;correct.  This will show you where the swf lives, but not where it is&#8230;.so, looks like you sux.</p>
<p>..so what the !@#$ is that supposed to mean?</p>
<p>when you call the play function in your player just add a line:</p>
<p><em>var testString:String = ExternalInterface.call(&#8220;function() { return document.location.href; }&#8221;)</em>;</p>
<p>then use a<em> sendToURL()</em> to post the data.</p>
<p>Honestly, I keep forgetting this stuff, so maybe you don&#8217;t sux that much. <img src='http://www.kizmorgan.com/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.kizmorgan.com/2009/06/09/who-can-em-bed-nowwho-can-it-who-can-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Autobuilds&#8230;rollout!</title>
		<link>http://www.kizmorgan.com/2009/04/22/autobuildsrollout/</link>
		<comments>http://www.kizmorgan.com/2009/04/22/autobuildsrollout/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 14:34:22 +0000</pubDate>
		<dc:creator>Kiz</dc:creator>
				<category><![CDATA[Keith Morgan's Blog]]></category>
		<category><![CDATA[teh internets]]></category>
		<category><![CDATA[ant]]></category>
		<category><![CDATA[auto builds]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[jsfl]]></category>

		<guid isPermaLink="false">http://www.kizmorgan.com/?p=240</guid>
		<description><![CDATA[The art of auto building flash is a lost art.  Recently, I had to publish 19 Flash CS4 video players quickly and we weren&#8217;t prepared to port anything over to Flex.  I was pretty much screwed.
..so what the !#@$ is that supposed to mean?
After about 4 days of manual builds. I&#8217;d had enough. [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=1f25f9184b71d63b9873f9f5d92d4611&amp;default=http://www.kizmorgan.com/wp-content/themes/procut-1/images/avatar-sample.jpg' alt='No Gravatar' width=40 height=40/><p>The art of auto building flash is a lost art.  Recently, I had to publish 19 Flash CS4 video players quickly and we weren&#8217;t prepared to port anything over to Flex.  I was pretty much screwed.</p>
<p>..so what the !#@$ is that supposed to mean?</p>
<p>After about 4 days of manual builds. I&#8217;d had enough.  I searched the interwebs for any signs of auto building Flash found out JSFL (JavaScriptFlash) for MX2004.  Well..Apparently its still supported in CS4 and I was able to piece together a jsfl file from examples from the web:</p>
<p>Create a new text document named &#8220;publish.jsfl&#8221; and add the following:</p>
<p><em><br />
fl.openDocument(&#8220;file:///&lt;path-to&gt;.fla&#8221;);<br />
curr_doc = fl.getDocumentDOM();<br />
curr_doc.publish();<br />
curr_doc.close();<br />
fl.quit(true);<br />
</em><br />
Save and simply run, assuming you&#8217;re in the same directory as the publish.jsfl file.<br />
<em>C:/Program Files/Adobe/Adobe Flash CS4/Flash.exe publish.jsfl</em></p>
<p>Well, once the build process was down to a few exe commands, I created a batch file (win32) to execute the exe&#8217;s.  But since we (and most people who have never used Windows before Win2000) use ant, I converted the build process:</p>
<p><em>&lt;property name=&#8221;publish.jsfl&#8221; value=&#8221;publish.jsfl&#8221;/&gt;<br />
&lt;property name=&#8221;flash&#8221; value=&#8221;C:/Program Files/Adobe/Adobe Flash CS4/Flash.exe&#8221;/&gt;<br />
&lt;exec executable=&#8221;${flash}&#8221;&gt;<br />
&lt;arg line=&#8221;&#8216;${publish.jsfl}&#8217;&#8221; /&gt;<br />
&lt;/exec&gt;</em></p>
<p>Be warned. using multiple jsfl files will open/close the application and may cause corruption in the swf&#8217;s.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kizmorgan.com/2009/04/22/autobuildsrollout/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>If google rules teh search, youtube rules teh vidz</title>
		<link>http://www.kizmorgan.com/2008/11/01/if-google-rules-teh-search-youtube-rules-teh-vidz/</link>
		<comments>http://www.kizmorgan.com/2008/11/01/if-google-rules-teh-search-youtube-rules-teh-vidz/#comments</comments>
		<pubDate>Sun, 02 Nov 2008 02:43:29 +0000</pubDate>
		<dc:creator>Kiz</dc:creator>
				<category><![CDATA[personal vendettas]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[chromeless player]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[slide]]></category>
		<category><![CDATA[youtube API]]></category>

		<guid isPermaLink="false">http://www.kizmorgan.com/?p=137</guid>
		<description><![CDATA[So my new employer has a client that wants to implement the slide player API.  &#8220;No prob&#8221; I say, with confidence since I see that there is an AS3 version&#8230;.&#8221;It&#8217;s gotta plug right in if it&#8217;s written in AS3&#8230;&#8221;
Well&#8230;two days into it and I&#8217;m stumped.   I can get the slide video player to [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=1f25f9184b71d63b9873f9f5d92d4611&amp;default=http://www.kizmorgan.com/wp-content/themes/procut-1/images/avatar-sample.jpg' alt='No Gravatar' width=40 height=40/><p>So my new employer has a client that wants to implement the <a href="http://www.slide.com/funspace/developer/player">slide</a> player API.  &#8220;No prob&#8221; I say, with confidence since I see that there is an AS3 version&#8230;.&#8221;It&#8217;s gotta plug right in if it&#8217;s written in AS3&#8230;&#8221;</p>
<p>Well&#8230;two days into it and I&#8217;m stumped.   I can get the slide video player to load my AS3 chromeless player but cant get the stupid throbber to stop&#8230;.Read the API you say?  Well, its based on the youtube AS2 API and it contains an event listener that was listening for <em>onStateChange</em>.  There&#8217;s no !@#@! onStateChange in AS3!..and to add insult to injury, Google came up nada!</p>
<p>&#8230;so what the !@#$ is that supposed to mean?</p>
<p>Well, I finally read the fine print and figured out I needed to send event calls thru the root object ( in my case, a movieclip which the document class extended) when the video state changed:</p>
<p><em>switch (ns.state) {<br />
case &#8220;unstarted&#8221; :<br />
this.dispatchEvent(new Event(&#8220;onStateChange&#8221;,0));<br />
break;</em></p>
<p>&#8230;and voila!  All is well in the world&#8230;.for now&#8230;.I have a few more events to dispatch.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kizmorgan.com/2008/11/01/if-google-rules-teh-search-youtube-rules-teh-vidz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
