<?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>Michael Bianco&#039;s Blog &#187; Flash</title>
	<atom:link href="http://mabblog.com/blog/category/flash/feed/" rel="self" type="application/rss+xml" />
	<link>http://mabblog.com/blog</link>
	<description>Web, Software, and Design</description>
	<lastBuildDate>Thu, 17 May 2012 00:22:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Macromedia Components &amp; Object.prototype Don&#8217;t Get Along</title>
		<link>http://mabblog.com/blog/2007/06/macromedia-components-objectprototype-dont-get-along/</link>
		<comments>http://mabblog.com/blog/2007/06/macromedia-components-objectprototype-dont-get-along/#comments</comments>
		<pubDate>Tue, 05 Jun 2007 20:47:23 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://mabblog.com/blog/?p=171</guid>
		<description><![CDATA[In most of my flash projects I have a prototype file I include into the project. It contains additions to core objects such as Object, MovieClip, etc. Well, today I found out that some Macromedia components (ComboBox was the one I was having trouble with) don&#8217;t like additional methods to be defined on certain classes [...]]]></description>
			<content:encoded><![CDATA[<p>In most of my flash projects I have a prototype file I include into the project. It contains additions to core objects such as Object, MovieClip, etc. Well, today I found out that some Macromedia components (ComboBox was the one I was having trouble with) don&#8217;t like additional methods to be defined on certain classes (Object was the one I found that ComboBox was having issues with); they fail to continue to work with additional methods defined.</p>
<p>However, there is a workaround: <a href="http://www.flashguru.co.uk/assetpropflags/">ASSetPropFlags</a>. Simply hide all additional methods with this line of code:</p>
<div class="codecolorer-container actionscript dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">ASSetPropFlags<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">Object</span>.<span style="color: #0066CC;">prototype</span>, <span style="color: #000000; font-weight: bold;">null</span>, <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;</div></div>
<p>I can&#8217;t wait until AS3 can be used all the time.</p>
]]></content:encoded>
			<wfw:commentRss>http://mabblog.com/blog/2007/06/macromedia-components-objectprototype-dont-get-along/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Flash &amp; Fonts</title>
		<link>http://mabblog.com/blog/2007/05/flash-fonts/</link>
		<comments>http://mabblog.com/blog/2007/05/flash-fonts/#comments</comments>
		<pubDate>Tue, 08 May 2007 22:07:21 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://mabblog.com/blog/?p=169</guid>
		<description><![CDATA[I&#8217;ve written about the pains of fonts in flash before; and it something that still plauges my work today. However, since that post new tools have been created, new workflows introduced, and with that some new findings. Fonts With SWFMILL SWFMILL is an awesome tool that may allow you to leave the Flash IDE untouched [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve written about the pains of fonts in flash <a href="http://mabblog.com/blog/?p=8">before</a>; and it something that still plauges my work today. However, since that post new tools have been created, new workflows introduced, and with that some new findings.</p>
<h3>Fonts With SWFMILL</h3>
<p><a href="http://swfmill.org/">SWFMILL</a> is an awesome tool that may allow you to leave the Flash IDE untouched for some projects. However, embedding fonts seems to be scarcely documented (I had trouble getting the methods documented working). Here are the two links I&#8217;ve found that document embedding fonts with swmill:</p>
<ul>
<li><a href="http://aralbalkan.com/377">Adding fonts to your SWF with FAMES</a></li>
<li><a href="http://swfmill.org/doc/using-swfmill.html#textfields">Using SWFMILL</a></li>
</ul>
<p>I wasn&#8217;t able to get embedded fonts working using the information above, so here is my method. This is what my swfmill xml <a href="http://mabblog.com/source/as_xcode/swfmill_example.txt">looks like</a>.</p>
<p>FontFile.ttf must be referenced relative to the location of the swfml file, and must be a TrueType font for swfmill to read it successfully. If you want to use a non-TrueType font convert it to a TrueType font with a tool such as <a href="http://fontforge.sourceforge.net/">FontForge</a> (works great and its free, but has a horrific UI).Now if you create a NavButton class that looks something like this:</p>
<div class="codecolorer-container actionscript dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">class</span> NavButton <span style="color: #0066CC;">extends</span> <span style="color: #0066CC;">MovieClip</span> <span style="color: #66cc66;">&#123;</span><br />
<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> oTitle:<span style="color: #0066CC;">TextField</span>;<br />
<br />
<span style="color: #000000; font-weight: bold;">function</span> NavButton<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
<span style="color: #0066CC;">super</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<br />
<br />
oTitle.<span style="color: #0066CC;">selectable</span> = <span style="color: #000000; font-weight: bold;">false</span>;<br />
oTitle.<span style="color: #0066CC;">multiline</span> = <span style="color: #000000; font-weight: bold;">false</span>;<br />
oTitle.<span style="color: #0066CC;">wordWrap</span> = <span style="color: #000000; font-weight: bold;">false</span>;<br />
oTitle.<span style="color: #0066CC;">textColor</span> = 0xFFFFFF;<br />
oTitle.<span style="color: #0066CC;">autoSize</span> = <span style="color: #000000; font-weight: bold;">true</span>;<br />
oTitle.<span style="color: #0066CC;">text</span> = <span style="color: #ff0000;">&quot;This is a title&quot;</span>;<br />
<span style="color: #66cc66;">&#125;</span><br />
<span style="color: #66cc66;">&#125;</span></div></div>
<p>And attach the NavButton to the stage using</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">attachMovie()</div></div>
<p>you should see the text come up. <strong>Note:</strong> you <strong><em>don&#8217;t</em></strong> need to set</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">oTitle.embedFonts = true;</div></div>
<p>to make this work correctly! Actually, dont use</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">embedFonts</div></div>
<p>at all!</p>
<p>You may have noticed the properties that I had to set on</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">oTitle</div></div>
<p>, this will be different for every situation. It seems that swfmill sets a bunch of default properties when creating a textfield. As a reference, here is the output from</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">dumpObject(oTitle)</div></div>
<p>(dumpObject() is a method from my <a href="http://mabblog.com/getfile.php?file=1">debug</a> class):</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">styleSheet:undefined<br />
mouseWheelEnabled:true<br />
condenseWhite:false<br />
restrict:null<br />
textHeight:48<br />
textWidth:54<br />
bottomScroll:1<br />
length:12<br />
selectable:true<br />
multiline:true<br />
password:false<br />
wordWrap:true<br />
background:false<br />
border:false<br />
html:false<br />
embedFonts:true<br />
maxChars:null<br />
maxhscroll:0<br />
hscroll:0<br />
variable:null<br />
htmlText:hello world!<br />
type:input<br />
text:hello world!<br />
autoSize:none<br />
tabIndex:undefined<br />
textColor:0<br />
backgroundColor:16777215<br />
borderColor:0<br />
maxscroll:2<br />
scroll:1<br />
filters:undefined<br />
sharpness:undefined<br />
thickness:undefined<br />
antiAliasType:undefined<br />
gridFitType:undefined</div></div>
<h3>Shared Fonts in Flash IDE</h3>
<p>Shared fonts, especially shared pixel fonts, are tricky business in the Flash IDE. Sometimes I wonder if it&#8217;s worth the effort, and whether I should just embed the fonts in each SWF. Alot of times I get blurred text when loading the pixel font from a shared library, but no blurring if the font is embedding in the swf itself. Shared fonts seem to work well with non-pixel fonts though; so if you dont need pixel fonts I would definitly use shared libraries. If you are looking at using shared fonts in your project I would recommend checking out <a href="http://www.sharedfonts.com/">Shared Fonts Manager</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://mabblog.com/blog/2007/05/flash-fonts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AttachMovie &amp; Loaded Clips</title>
		<link>http://mabblog.com/blog/2007/04/attachmovie-loaded-clips/</link>
		<comments>http://mabblog.com/blog/2007/04/attachmovie-loaded-clips/#comments</comments>
		<pubDate>Mon, 30 Apr 2007 18:17:58 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://mabblog.com/blog/?p=168</guid>
		<description><![CDATA[Using attachMovie when you&#8217;ve loaded other clips into your movie has always been very painful. You can&#8217;t attachMovie a asset into a loaded clip that is located in the parent movieclip, and conversly you can&#8217;t attachMovie a asset in a parent that was loaded into a child. This is extremely frusterating&#8230; but after some searching [...]]]></description>
			<content:encoded><![CDATA[<p>Using</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">attachMovie</div></div>
<p>when you&#8217;ve loaded other clips into your movie has always been very painful.<br />
You can&#8217;t</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">attachMovie</div></div>
<p>a asset into a loaded clip that is located in the parent movieclip, and conversly you can&#8217;t</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">attachMovie</div></div>
<p>a asset in a parent that was loaded into a child.</p>
<p>This is extremely frusterating&#8230; but after some searching today I came across this <a href="http://blog.madarco.net/26/strange-flash-cache-behaviour-and-attachmovieanywhere-solution/" title="Madarco DevBlog  &raquo; Blog Archive   &raquo; Strange Flash cache behaviour and attachMovie Anywhere solution">interesting link</a>. Using the fact that Flash likes to cache everything it can, he created a function that will load an clip that contains an asset into the movieclip you are trying to use</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">attachMovie</div></div>
<p>from.<br />
Nice idea, never thought of doing this before.</p>
<p><b>Note:</b> this is only needed if you are loading external movieclips and want to use common assets, yes you could use shared assets but they have always given me a headache (they are a pain to create/maintain, although they may have improved since I&#8217;ve last used them), and this seemed like an interesting alternative.</p>
<p><b>Update:</b><br />
After attempting to use the above mentioned method I found that the code on the site I linked to wasn&#8217;t really usable for what I was trying to do, I rewrote it a bit:</p>
<div class="codecolorer-container actionscript dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="actionscript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #808080; font-style: italic;">/*<br />
&nbsp;Function: attachMovieAnywhere<br />
&nbsp;<br />
&nbsp;Description:<br />
&nbsp;Loads a clip (should have nothing on the stage, containing just assets) and attaches a movieclip from the loaded clip onto the stage<br />
&nbsp;<br />
&nbsp;Arguments:<br />
&nbsp;file - [String] path to the SWF containing the assets<br />
&nbsp;callBack - [Function] function that will be called once the asset swf is loaded, and the movieclip has been attatched. The scope of the function is the attatched movieclip, and the first argument is the attatched movieclip.<br />
&nbsp;If you need a different scope use the &lt;delegate&gt; class.<br />
&nbsp;NOTE: this does not call once the attatched movieclip has been initialized, only when it has been attatched!<br />
&nbsp;*/</span><br />
<span style="color: #0066CC;">MovieClip</span>.<span style="color: #0066CC;">prototype</span>.<span style="color: #006600;">attachMovieAnywhere</span> = <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>file:<span style="color: #0066CC;">String</span>, idName:<span style="color: #0066CC;">String</span>, newName:<span style="color: #0066CC;">String</span>, depth:<span style="color: #0066CC;">Number</span>, initObject:<span style="color: #0066CC;">Object</span>, callBack:<span style="color: #000000; font-weight: bold;">Function</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>depth == <span style="color: #0066CC;">undefined</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; depth = <span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">getNextHighestDepth</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">var</span> parent:<span style="color: #0066CC;">MovieClip</span> = <span style="color: #0066CC;">this</span>;<br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">var</span> container:<span style="color: #0066CC;">MovieClip</span> = <span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">createEmptyMovieClip</span><span style="color: #66cc66;">&#40;</span>newName, depth<span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">var</span> mcLoader:<span style="color: #0066CC;">MovieClipLoader</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">MovieClipLoader</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">var</span> listener:<span style="color: #0066CC;">Object</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Object</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; listener.<span style="color: #0066CC;">onLoadInit</span> = <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #66cc66;">&#40;</span>mc<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; parent<span style="color: #66cc66;">&#91;</span>newName<span style="color: #66cc66;">&#93;</span> = mc.<span style="color: #0066CC;">attachMovie</span><span style="color: #66cc66;">&#40;</span>idName, newName, mc.<span style="color: #0066CC;">getNextHighestDepth</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>, initObject<span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>callBack<span style="color: #66cc66;">&#41;</span> callBack.<span style="color: #0066CC;">call</span><span style="color: #66cc66;">&#40;</span>parent<span style="color: #66cc66;">&#91;</span>newName<span style="color: #66cc66;">&#93;</span>, parent<span style="color: #66cc66;">&#91;</span>newName<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; mcLoader.<span style="color: #0066CC;">addListener</span><span style="color: #66cc66;">&#40;</span>listener<span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; mcLoader.<span style="color: #0066CC;">loadClip</span><span style="color: #66cc66;">&#40;</span>file, container<span style="color: #66cc66;">&#41;</span>;<br />
<span style="color: #66cc66;">&#125;</span></div></div>
<p>Here is some example code showing how it is used:</p>
<div class="codecolorer-container actionscript dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">attachMovieAnywhere<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;asset.swf&quot;</span>, <span style="color: #ff0000;">&quot;aAsset&quot;</span>, <span style="color: #ff0000;">&quot;coolthing&quot;</span>, <span style="color: #0066CC;">getNextHighestDepth</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>, <span style="color: #66cc66;">&#123;</span><span style="color: #0066CC;">_x</span>:-<span style="color: #cc66cc;">40</span>, <span style="color: #0066CC;">_y</span>:-<span style="color: #cc66cc;">40</span><span style="color: #66cc66;">&#125;</span>, <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>mc<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>mc == <span style="color: #0066CC;">this</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">// mc == this unless you use the Delegate class to change the this var</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;They Do!&quot;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #808080; font-style: italic;">// you can do initialization here</span><br />
&nbsp; &nbsp; mc.<span style="color: #0066CC;">onRollOver</span> = <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;over&quot;</span><span style="color: #66cc66;">&#41;</span>.<br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; mc.<span style="color: #0066CC;">onRollOut</span> = <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;out&quot;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span><br />
<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;</div></div>
<p></delegate></p>
]]></content:encoded>
			<wfw:commentRss>http://mabblog.com/blog/2007/04/attachmovie-loaded-clips/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Adding Methods to Core Flash Classes</title>
		<link>http://mabblog.com/blog/2006/10/adding-methods-to-core-flash-classes/</link>
		<comments>http://mabblog.com/blog/2006/10/adding-methods-to-core-flash-classes/#comments</comments>
		<pubDate>Sat, 14 Oct 2006 16:09:01 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://developer.mabwebdesign.com/blog/?p=131</guid>
		<description><![CDATA[Every once in a while I get an email that looks like this: I tried using your Object, Function, and String method additions. When I tried to compile I get a bunch of error messages! What do I do?! Yup, this is because the method definitions are not in the Class definition files that flash [...]]]></description>
			<content:encoded><![CDATA[<p>Every once in a while I get an email that looks like this:</p>
<blockquote><p>I tried using your Object, Function, and String method additions. When I tried to compile I get a bunch of error messages! What do I do?!</p></blockquote>
<p>Yup, this is because the method definitions are not in the Class definition files that flash looks at when compiling. The core class definitions that Flash looks at are located here:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">~/Library/Application Support/Macromedia/Flash MX 2004/en/Configuration/Classes</div></div>
<p>That &#8220;Classes&#8221; folder will contain all the method definitions for all core Flash classes (MovieClip, Object, Button, Color, etc).</p>
<p>To make my method additions compile correctly you&#8217;ll have to edit the corresponding Class definition files and add the method definitions in. So, for instance, if you wanted to use the <a href="http://developer.mabwebdesign.com/getfile.php?file=16">object.as</a> additions you would add these method definitions to your Object.as file in the &#8220;Classes&#8221; directory referenced above:</p>
<div class="codecolorer-container actionscript dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">function</span> initBroadcaster<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<br />
<span style="color: #000000; font-weight: bold;">function</span> addEventListener<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<br />
<span style="color: #000000; font-weight: bold;">function</span> removeEventListener<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<br />
<span style="color: #000000; font-weight: bold;">function</span> dispatchEvent<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<br />
<span style="color: #000000; font-weight: bold;">function</span> centerXY<span style="color: #66cc66;">&#40;</span>x:<span style="color: #0066CC;">Number</span>, y:<span style="color: #0066CC;">Number</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">Void</span>;<br />
<span style="color: #000000; font-weight: bold;">function</span> centerY<span style="color: #66cc66;">&#40;</span>y:<span style="color: #0066CC;">Number</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">Void</span>;<br />
<span style="color: #000000; font-weight: bold;">function</span> centerX<span style="color: #66cc66;">&#40;</span>x:<span style="color: #0066CC;">Number</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">Void</span>;<br />
<span style="color: #000000; font-weight: bold;">function</span> isInstanceOf<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<br />
<span style="color: #000000; font-weight: bold;">function</span> isMemberOf<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div></div>
<p>If you are using Flash 8, they will be spread out in two different directories &#8220;FP7&#8243; &#038; &#8220;FP8&#8243; located in this directory:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">~/Library/Application Support/Macromedia/Flash 8/en/Configuration/Classes</div></div>
<p>If you use mtasc you&#8217;ll have to edit the class definitions located in the &#8220;std&#8221; directory.</p>
]]></content:encoded>
			<wfw:commentRss>http://mabblog.com/blog/2006/10/adding-methods-to-core-flash-classes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XASH 1.2</title>
		<link>http://mabblog.com/blog/2006/04/xash-12/</link>
		<comments>http://mabblog.com/blog/2006/04/xash-12/#comments</comments>
		<pubDate>Mon, 10 Apr 2006 14:32:50 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://developer.mabwebdesign.com/blog/?p=99</guid>
		<description><![CDATA[XASH 1.2 has just been released. This release has the following enhancements. Fixed a nil URL bug Added live (itunes-like) searching Some code cleanup/reorganization Added drag n&#8217; drop for adding additional search paths Added the sparkle update framework Enjoy! If your a Cocoa developer you may want to check out XASH&#8217;s source code, it has [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://developer.mabwebdesign.com/xash.html">XASH 1.2</a> has just been released. This release has the following enhancements.</p>
<ul>
<li>Fixed a nil URL bug</li>
<li>Added live (itunes-like) searching</li>
<li>Some code cleanup/reorganization</li>
<li>Added drag n&#8217; drop for adding additional search paths</li>
<li>Added the sparkle update framework</li>
</ul>
<p>Enjoy!</p>
<p>If your a Cocoa developer you may want to check out XASH&#8217;s source code, it has a nice implementation of enabling a NSTableView to have a drag n&#8217; drop capabilities while still using NSArrayController to populate the table.</p>
]]></content:encoded>
			<wfw:commentRss>http://mabblog.com/blog/2006/04/xash-12/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>XTrace: Flash Debugging Without The Flash IDE</title>
		<link>http://mabblog.com/blog/2006/03/xtrace-flash-debugging-without-the-flash-ide/</link>
		<comments>http://mabblog.com/blog/2006/03/xtrace-flash-debugging-without-the-flash-ide/#comments</comments>
		<pubDate>Tue, 28 Mar 2006 18:15:07 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://developer.mabwebdesign.com/blog/?p=98</guid>
		<description><![CDATA[XTrace 1.0, a replacement for the horrible trace window in the Flash IDE, was released a few days ago. Take a look at the product page for more information on how it works and how to integrate it into your flash application. This is one of the pieces to the puzzle, I&#8217;ll release the BASH [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://developer.mabwebdesign.com/xtrace.html">XTrace 1.0</a>, a replacement for the horrible trace window in the Flash IDE, was released a few days ago. Take a look at the product page for more information on how it works and how to integrate it into your flash application. This is one of the pieces <a href="http://developer.mabwebdesign.com/blog/?p=56">to the puzzle</a>, I&#8217;ll release the BASH script I&#8217;ve written that allows better MTASC Xcode integration as soon as possible.</p>
<p>I need more beta testers for the new application I&#8217;m going to be releasing, <a href="mailto:&#115;&#111;&#102;&#116;&#119;&#97;&#114;&#101;&#64;&#109;&#97;&#98;&#119;&#101;&#98;&#100;&#101;&#115;&#105;&#103;&#110;&#46;&#99;&#111;&#109;?subject=Beta%20Tester">email me</a> if your interested!</p>
]]></content:encoded>
			<wfw:commentRss>http://mabblog.com/blog/2006/03/xtrace-flash-debugging-without-the-flash-ide/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Random Tid Bits</title>
		<link>http://mabblog.com/blog/2006/03/random-tid-bits/</link>
		<comments>http://mabblog.com/blog/2006/03/random-tid-bits/#comments</comments>
		<pubDate>Fri, 17 Mar 2006 16:38:47 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://developer.mabwebdesign.com/blog/?p=72</guid>
		<description><![CDATA[Heres some programming tid bits that really didn&#8217;t deserve their own post, so I grouped them all together into one post! else-switch We all know about the common else-if language construct that is available in almost all programming languages, but here one you might of not been aware of: the else-switch statement. if&#40;false&#41; &#123; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>Heres some programming tid bits that really didn&#8217;t deserve their own post, so I grouped them all together into one post! <img src='http://mabblog.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<h3>else-switch</h3>
<p>We all know about the common</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">else-if</div></div>
<p>language construct that is available in almost all programming languages, but here one you might of not been aware of: the else-switch statement.</p>
<div class="codecolorer-container javascript dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <br />
<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">switch</span><span style="color: #009900;">&#40;</span>number<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">case</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">:</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">//do something</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">break</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">case</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">:</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">//do something else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">break</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">default</span><span style="color: #339933;">:</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">//do default action</span><br />
<span style="color: #009900;">&#125;</span></div></div>
<p>Actually, you can follow if with any control statement. For instance, you can have an else-return or an else-break statement. This might be old news to some programmers, but I never knew you could do that!</p>
<h3>Declare Variables Inside a switch Statement</h3>
<p>I never had to do this before, but recently I needed to declare some variables inside a switch statement. A little googling revealed that variable declaration inside a switch statement is possible:</p>
<div class="codecolorer-container cpp dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="cpp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0000ff;">switch</span><span style="color: #008000;">&#40;</span>something<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">case</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">:</span> <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">int</span> a<span style="color: #008080;">;</span> <span style="color: #666666;">//a variable is declared!</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<span style="color: #008000;">&#125;</span></div></div>
<p>All you have to do is enclose your</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">case</div></div>
<p>statement with brackets and you can define all the local variables you want.</p>
<h3>Reset mySQL&#8217;s</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">auto_increment</div></div>
</h3>
<p>I love mySQL&#8217;s auto increment feature, but while developing applications using mySQL I sometimes need to reset the auto_increment counter. The follow code snippet will reset your</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">auto_increment</div></div>
<p>so the next database record id will be 0:</p>
<div class="codecolorer-container sql dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="sql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #993333; font-weight: bold;">ALTER</span> <span style="color: #993333; font-weight: bold;">TABLE</span> your_table <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span></div></div>
</p>
<h3>Text Conversion Utility</h3>
<p>MacDevCenter has a <a href="http://www.macdevcenter.com/pub/a/mac/2005/11/22/cli-tools.html?CMP=OTC-13IV03560550&#038;ATT=HTML+Tools+on+the+Mac+Command+Line">nice article</a> on a &#8216;hidden&#8217; text conversion utility,</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">textutil</div></div>
<p>thats bundled with the os x dev tools.</p>
<h3>Javascript</h3>
<p>Something that I&#8217;ve always hated about javascript is the lack of reusable libraries and classes. Finally their has been some movement to standardize alot of common javascript tasks, not just to post ad-hoc solutions on the various script sites out there. You can get a comprehensive list of the various libraries available <a href="http://edevil.wordpress.com/2005/11/14/javascript-libraries-roundup/">here</a>.</p>
<h3>F-Script Anywhere</h3>
<p>This is one of the coolest things that I&#8217;ve come across for OS X. F-Script anywhere lets you look inside a program <b>while</b> its running. You can call methods of objects, inspect the properties of UI elements. It&#8217;s pretty incredible. You&#8217;ll need to get the <a href="http://fscript.org/">F-Script Framework</a> before you can use the <a href="http://web.sabi.net/nriley/software/">F-Script Anywhere</a> SIMBL plug-in. </p>
<h3>Objective-C Instance Variable Initialization</h3>
<p>In objective-C their is no need to initialize your instance variables to nil/NULL (you normally should initialize all variables to nil/NULL, or some other initial value for reasons described in <a href="http://en.wikipedia.org/wiki/Uninitialized_variable">this article</a>). This is <a href="http://developer.apple.com/documentation/Cocoa/Conceptual/CocoaObjects/Articles/ObjectCreation.html#//apple_ref/doc/uid/20002154-1006156">already done for you</a> in the</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">alloc</div></div>
<p>method of an object.</p>
<h3>Carbon Data Types</h3>
<p>Its hard to me to understand Carbon code well because of all the &#8216;opaque&#8217; data types used by Carbon. At first glance what is</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">ItemCount</div></div>
<p>? Is it a</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">int</div></div>
<p>? An</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">unsigned int</div></div>
<p>? A</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">long</div></div>
<p>? Theirs no documentation of these data types in the Apple docs anywhere, so I went looking around to see if i could find the header files that contained the definitions for the various data types. Luckily my search was not in vain:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/Headers/</div></div>
<p>The above directory contains the definitions for most common Carbon data types, the majority of common Carbon data type definitions are located in the following header file:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/Headers/MacTypes.h</div></div>
<h3>Initializing All Elements of a C-Array to 0</h3>
<p>You can easily initialize all elements of a C array to zero by initializing the first element of the array to 0 using the &#8220;bracket initialization&#8221; method:</p>
<div class="codecolorer-container cpp dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="cpp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0000ff;">int</span> intArray<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">1000</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #008000;">&#123;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span></div></div>
<p>The above code will initialize all 1000 elements of</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">intArray</div></div>
<p>to 0. All elements that aren&#8217;t given a initial value using &#8220;bracket initialization&#8221; are given an initial value of 0.</p>
]]></content:encoded>
			<wfw:commentRss>http://mabblog.com/blog/2006/03/random-tid-bits/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Xash 1.1</title>
		<link>http://mabblog.com/blog/2006/01/xash-11/</link>
		<comments>http://mabblog.com/blog/2006/01/xash-11/#comments</comments>
		<pubDate>Fri, 20 Jan 2006 17:30:48 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://developer.mabwebdesign.com/blog/?p=83</guid>
		<description><![CDATA[I&#8217;ve had this hanging around for awhile now, I just haven&#8217;t had a chance to package it up and put it out there: XASH 1.1. Alot of changes have been made in this release: Book filtering Window position &#038; size are saved Constraint on min left splitview width added The help window will appear automatically [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve had this hanging around for awhile now, I just haven&#8217;t had a chance to package it up and put it out there: <a href="http://developer.mabwebdesign.com/xash.html">XASH 1.1</a>.</p>
<p>Alot of changes have been made in this release:</p>
<ul>
<li>Book filtering</li>
<li>Window position &#038; size are saved</li>
<li>Constraint on min left splitview width added</li>
<li>The help window will appear automatically when XASH is &#8216;clicked on&#8217; (activated)</li>
<li>Groundwork is laid for live searching</li>
<li>Fixed bug where nothing would appear in the left document outline</li>
<li>Window title now represents what page you are currently viewing</li>
<li>flash 7/flash 8 root help directory paths can now be specified by the preferences keys f7Path and f8Path</li>
<li>You can specify additionally directorys to be searched for help files through the preference key additionalSearchPaths</li>
<li>Redid the program structure (now their is only one .nib file containing all the objects)</li>
<li>Added an application icon</li>
<li>XASH is now a universal binary</li>
</ul>
<p>I added the ability to specify the paths to your flash 7 and flash 8 help file directories along with the ability to specify additional paths to search for help files at. I was too lazy to write a GUI allowing you edit this, so if you want to change the default values your going to either have to use the</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">defaults</div></div>
<p>command line application, or Apple&#8217;s Property List Editor (included with the dev tools). Here a list of the keys that would want to edit in the</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">com.mabwebdesign.xash.plist</div></div>
<p>files located in</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">~/Library</div></div>
<p>:</p>
<ul>
<li>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">f7Path</div></div>
<p>- string, path to the Flash 7&#8242;s help files directory. The default value for this is:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">/Users/Shared/Library/Application Support/Macromedia/Flash MX 2004/en/Configuration/HelpPanel/Help/</div></div>
</li>
<li>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">f8Path</div></div>
<p>- string, path to the Flash 8&#8242;s help files directory. The default value for this is:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">/Users/Shared/Library/Application Support/Macromedia/Flash 8/en/Configuration/HelpPanel/Help/</div></div>
</li>
<li>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">f7Index</div></div>
<p>- string, URL file path referencing the main index file Flash 7&#8242;s help files. The default value is:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">file:///Users/Shared/Library/Application%20Support/Macromedia/Flash%208/en/Configuration/HelpPanel/Help/Welcome/Welcome_help.html</div></div>
</li>
<li>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">f8Index</div></div>
<p>- string, URL file path referencing the main index file Flash 8&#8242;s help files. The default value is:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">file:///Users/Shared/Library/Application%20Support/Macromedia/Flash%20MX2004 /en/Configuration/HelpPanel/Help/Welcome/Welcome_help.html</div></div>
</li>
<li>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">additionalSearchPaths</div></div>
<p>- array of directory paths representing other directories to search for Flash help files at. The default value is an array with a single element whose value is:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">~/Library/Application Support/Macromedia/Flash MX 2004/en/Configuration/HelpPanel/Help/</div></div>
</li>
</ul>
<p>Please send me any feedback you may have.</p>
]]></content:encoded>
			<wfw:commentRss>http://mabblog.com/blog/2006/01/xash-11/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Xcode Actionscript Integration: The Next Step</title>
		<link>http://mabblog.com/blog/2005/11/xcode-actionscript-integration-the-next-step/</link>
		<comments>http://mabblog.com/blog/2005/11/xcode-actionscript-integration-the-next-step/#comments</comments>
		<pubDate>Tue, 22 Nov 2005 16:54:59 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://developer.mabwebdesign.com/blog/?p=56</guid>
		<description><![CDATA[I&#8217;ve tried the whole Eclispe setup, but I&#8217;m just too used to Xcode to really like it. So I decided to improve the support of Actionscript/Flash Development in Xcode. In my opinion, for optimal development speed we need the following components in the Actionscript-Xcode system: Easy MTASC compiling with optional file pre-processing support Easy documentation [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve tried the whole Eclispe setup, but I&#8217;m just too used to Xcode to really like it.</p>
<p>So I decided to improve the support of Actionscript/Flash Development in Xcode. In my opinion, for optimal development speed we need the following components in the Actionscript-Xcode system:</p>
<ul>
<li>Easy MTASC compiling with optional file pre-processing support</li>
<li>Easy documentation creation</li>
<li>Integration of Flash debugging into Xcode&#8217;s run log</li>
<li>Full code-sense support</li>
<li>Flash help file access without the Flash IDE</li>
<li>Visual layout of graphics, textfields, MC&#8217;s, and vector graphics without the Flash IDE</li>
</ul>
<p>I already have some work done in some of these areas:</p>
<p>I am working on a new Xcode project template that will allow integrated pre-processing &#038; compiling of Actionscript along with easy documentation creation. This is a huge improvement over the <a href="http://developer.mabwebdesign.com/blog/?p=6">last</a> method, but it still isn&#8217;t perfect. I&#8217;ve done some research to see if it would be possible to make MTASC integrate seamlessly into Xcode by writing a native Xcode plugin, its definitely possible and somebody has already done <a href="http://maxao.free.fr/xcode-plugin-interface/">alot</a> of reverse engineering and made a plug-in for Objective-Calm.</p>
<p>I&#8217;ve written a BASH script that generates a list of key words from a specified class path to be used with Xcodes code sense. Although this works, its not nearly as nice has having &#8216;real&#8217; code sense, but Apple has kept their API for Xcode&#8217;s source scanner class closed preventing the creation of custom source scanners.</p>
<p>I released XASH a little while ago allowing Flash help file access without the IDE, it still needs alot of work; but at least its usable.</p>
<p>Intergrated Xcode debugging is something that I&#8217;ve always thought would be incredibly awesome, but only actually realized that it could actually be accomplished within the last few months. The basic idea is you specify a custom executable and run it within Xcode. The custom executable will be a server application which will accept XMLSocket connections and redirect all input from any XMLSocket connections into</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">stdout</div></div>
<p>. Since the server application was launched with Xcode both</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">stdout</div></div>
<p>and</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">stderr</div></div>
<p>are redirected into Xcode&#8217;s run log thus any input received from any XMLSocket connections will be displayed in the run log. I&#8217;m working on implementing the server application in Java and adding easy access to the &#8216;trace server&#8217; (the executable allowing output to be shown in the run log) from my</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">debug</div></div>
<p>class. When I&#8217;m all done all you&#8217;ll need to do to redirect output to the &#8216;trace server&#8217; is to call</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">debug.initSocket()</div></div>
<p>and once a socket connection is established all output send to</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">debug.trace()</div></div>
<p>will be redirected to the &#8216;trace server&#8217;. The Java server will support multiple connections so it can receive trace output from multiple SWF&#8217;s. Heres a screen shot of a SWF&#8217;s trace output being redirected to Xcode&#8217;s run Log: <img src='http://developer.mabwebdesign.com/blog/wp-content/xcodeasdebug.jpg' alt="Flash Debugging Within Xcodes Run Log" class='center'/></p>
<p>Visual layout of graphics, textfields, etc, etc would be really cool also. A project like this would actually be possible using SWFMILL as the underlying engine to create the SWF.</p>
<p>I&#8217;m working on getting everything packaged up and documented so I can release it into the wild.</p>
]]></content:encoded>
			<wfw:commentRss>http://mabblog.com/blog/2005/11/xcode-actionscript-integration-the-next-step/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>NaturalDocs</title>
		<link>http://mabblog.com/blog/2005/11/naturaldocs/</link>
		<comments>http://mabblog.com/blog/2005/11/naturaldocs/#comments</comments>
		<pubDate>Thu, 10 Nov 2005 19:10:47 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://developer.mabwebdesign.com/blog/?p=68</guid>
		<description><![CDATA[A few weeks ago I was searching around trying to decide what documentation system to use in my Actionscript/Flash projects. There are alot of options out there, but these are the ones that I found viable for my situation: as2api AS2Doc VisDoc NaturalDocs As2api: overall as2api seems like a good solution but I really didn&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>A few weeks ago I was searching around trying to decide what documentation system to use in my Actionscript/Flash projects. There are alot of options out there, but these are the ones that I found viable for my situation:</p>
<ul>
<li><a href="http://www.badgers-in-foil.co.uk/projects/as2api/">as2api</a></li>
<li><a href="http://www.as2doc.com/">AS2Doc</a></li>
<li><a href="http://visiblearea.com/visdoc/">VisDoc</a></li>
<li><a href="http://naturaldocs.org/">NaturalDocs</a></li>
</ul>
<p><b>As2api</b>: overall as2api seems like a good solution but I really didn&#8217;t like the style of the documentation as2api created and the os x binary didn&#8217;t seem to work on os x.</p>
<p><b>AS2Doc</b>: looks like a good package, but it costs money; I cant see paying for something that has a free alternative which has very similar functionality. I&#8217;d rather donate to an open-source project.</p>
<p><b>VisDoc</b>: looked <i>really nice</i>- exactly what I was looking for, I was very close to buying it until I saw NaturalDocs.</p>
<p><b>NaturalDocs</b>: this turned out to be my final choice. NaturalDocs is OSS written in pearl so it will run on any OS that supports pearl. Using NaturalDocs is easy enough and it produces very nice looking documentation. The only downside is that currently it does not support JavaDoc style comments (this is on NaturalDocs to-do list), but this really wasn&#8217;t a big deal since learning NaturalDoc style commenting was very easy.</p>
]]></content:encoded>
			<wfw:commentRss>http://mabblog.com/blog/2005/11/naturaldocs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

