<?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>agile flash</title>
	<atom:link href="http://www.agileflash.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.agileflash.com</link>
	<description>productivity-enhancing tricks for flash developers.</description>
	<lastBuildDate>Tue, 12 Oct 2010 14:01:12 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Bulk swap elements from timelines by tagging their layers</title>
		<link>http://www.agileflash.com/2010/10/bulk-swap-elements-from-timelines-by-tagging-their-layers/</link>
		<comments>http://www.agileflash.com/2010/10/bulk-swap-elements-from-timelines-by-tagging-their-layers/#comments</comments>
		<pubDate>Tue, 12 Oct 2010 14:01:12 +0000</pubDate>
		<dc:creator>Gabriel Giacomini</dc:creator>
				<category><![CDATA[JSFL]]></category>
		<category><![CDATA[bulk task]]></category>

		<guid isPermaLink="false">http://www.agileflash.com/?p=313</guid>
		<description><![CDATA[This happened me several times: I needed to swap a lot of movie clips, and the flash swap dialog completely ignores ergonomy, specially when your library has more then 300 symbols. This scripts handle it. You &#8220;tag&#8221; the layer of the movieclip with the name of the movieclip we&#8217;ll swap to. And tagging layers is [...]]]></description>
			<content:encoded><![CDATA[<p>This happened me several times: I needed to swap a lot of movie clips, and the flash swap dialog completely ignores ergonomy, specially when your library has more then 300 symbols. This scripts handle it. You &#8220;tag&#8221; the layer of the movieclip with the name of the movieclip we&#8217;ll swap to. And tagging layers is a pretty easy task, copy paste. So, in steps:</p>
<p>1) Here are our layers. one layer with an instance of the &#8220;BlueBall&#8221; movie clip, and the others, instances of &#8220;RedBall&#8221; (sorry for the french flash version)</p>
<p><img src="http://www.agileflash.com/wp-content/uploads/2010/10/balls1.gif" alt="balls1" title="balls1" width="559" height="584" class="alignnone size-full wp-image-314" /></p>
<p>2) Supposing we want to swap the redBalls to the blue balls: we write (swap:BlueBall) in the RedBalls layers, like this:</p>
<p><img src="http://www.agileflash.com/wp-content/uploads/2010/10/balls2.gif" alt="balls2" title="balls2" width="559" height="584" class="alignnone size-full wp-image-315" /></p>
<p>3) You run the JSFL script, and voilà!</p>
<p><img src="http://www.agileflash.com/wp-content/uploads/2010/10/balls3.gif" alt="balls3" title="balls3" width="559" height="584" class="alignnone size-full wp-image-316" /></p>
<p>Here is the script:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">function</span> process_layers<span class="br0">&#40;</span>layers<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw2">var</span> layers_length=layers.<span class="me1">length</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">for</span><span class="br0">&#40;</span> <span class="kw2">var</span> i = <span class="nu0">0</span>; i &lt; layers_length; i++<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">var</span> layer = layers<span class="br0">&#91;</span>i<span class="br0">&#93;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="kw2">var</span> replaced=<span class="kw2">false</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">var</span> frames=layer.<span class="me1">frames</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">var</span> frames_length=frames.<span class="me1">length</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">for</span><span class="br0">&#40;</span><span class="kw2">var</span> j = <span class="nu0">0</span> ; j &lt; frames_length ; j++<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw2">var</span> frame = frames<span class="br0">&#91;</span>j<span class="br0">&#93;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; <span class="kw2">var</span> elements=frame.<span class="me1">elements</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw2">var</span> elements_length=elements.<span class="me1">length</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">for</span><span class="br0">&#40;</span><span class="kw2">var</span> k = <span class="nu0">0</span> ; k &lt; elements_length ; k++<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> element = elements<span class="br0">&#91;</span>k<span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>element.<span class="me1">elementType</span>==<span class="st0">&#8216;instance&#8217;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> <span class="kw1">item</span>=element.<span class="me1">libraryItem</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="kw1">item</span>!=undefined<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="kw1">item</span>.<span class="me1">itemType</span>==<span class="st0">&#8216;movie clip&#8217;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>!<span class="br0">&#40;</span>layer.<span class="kw3">name</span>.<span class="me1">indexOf</span><span class="br0">&#40;</span><span class="st0">&#8216;(swap:&#8217;</span><span class="br0">&#41;</span>==<span class="nu0">-1</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> startIndex=layer.<span class="kw3">name</span>.<span class="me1">indexOf</span><span class="br0">&#40;</span><span class="st0">&#8216;(swap:&#8217;</span><span class="br0">&#41;</span><span class="nu0">+6</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> lastIndex=layer.<span class="kw3">name</span>.<span class="me1">indexOf</span><span class="br0">&#40;</span><span class="st0">&#8216;)&#8217;</span>,startIndex<span class="nu0">+1</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> find_string=layer.<span class="kw3">name</span>.<span class="me1">substr</span><span class="br0">&#40;</span>startIndex,lastIndex-startIndex<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> found_item=find_in_library<span class="br0">&#40;</span>find_string<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>found_item!=<span class="kw2">false</span> &amp;&amp; found_item!=undefined<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; element.<span class="me1">libraryItem</span>=found_item;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; replaced=<span class="kw2">true</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="kw1">else</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; replaced=<span class="kw2">false</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>replaced<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; layer.<span class="kw3">name</span>=layer.<span class="kw3">name</span>.<span class="me1">split</span><span class="br0">&#40;</span><span class="st0">&#8216;(swap:&#8217;</span>+find_string+<span class="st0">&#8216;)&#8217;</span><span class="br0">&#41;</span>.<span class="me1">join</span><span class="br0">&#40;</span><span class="st0">&#8221;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">find_in_library = <span class="kw2">function</span><span class="br0">&#40;</span>find_string<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw2">var</span> library=fl.<span class="me1">getDocumentDOM</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">library</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw2">var</span> items=library.<span class="me1">items</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="kw2">var</span> items_length=items.<span class="me1">length</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">for</span><span class="br0">&#40;</span> <span class="kw2">var</span> i = <span class="nu0">0</span>; i &lt; items_length; i++<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">var</span> <span class="kw1">item</span>=items<span class="br0">&#91;</span>i<span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="kw1">item</span>.<span class="me1">itemType</span> == <span class="st0">&#8216;movie clip&#8217;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; <span class="kw2">var</span> handle_string=<span class="kw1">item</span>.<span class="kw3">name</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw2">var</span> firstIndex=handle_string.<span class="me1">lastIndexOf</span><span class="br0">&#40;</span><span class="st0">&#8216;/&#8217;</span><span class="br0">&#41;</span><span class="nu0">+1</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; handle_string=handle_string.<span class="me1">substr</span><span class="br0">&#40;</span>firstIndex<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw2">var</span> lastIndex=handle_string.<span class="me1">indexOf</span><span class="br0">&#40;</span><span class="st0">&#8216; &#8216;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>lastIndex!=<span class="nu0">-1</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; handle_string=handle_string.<span class="me1">substr</span><span class="br0">&#40;</span><span class="nu0">0</span>,lastIndex<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; lastIndex=handle_string.<span class="me1">indexOf</span><span class="br0">&#40;</span><span class="st0">&#8216;(&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>lastIndex!=<span class="nu0">-1</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; handle_string=handle_string.<span class="me1">substr</span><span class="br0">&#40;</span><span class="nu0">0</span>,lastIndex<span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>handle_string==find_string<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw1">item</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//process main timeline</span></div>
</li>
<li class="li2">
<div class="de2">process_layers<span class="br0">&#40;</span>fl.<span class="me1">getDocumentDOM</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">getTimeline</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">layers</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//process timeline from movieclips that are in the library</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">var</span> library=fl.<span class="me1">getDocumentDOM</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">library</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">var</span> items=library.<span class="me1">items</span>;</div>
</li>
<li class="li2">
<div class="de2"><span class="kw2">var</span> items_length=items.<span class="me1">length</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">for</span><span class="br0">&#40;</span> <span class="kw2">var</span> i = <span class="nu0">0</span>; i &lt; items_length; i++<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw2">var</span> <span class="kw1">item</span>=items<span class="br0">&#91;</span>i<span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="kw1">item</span>.<span class="me1">itemType</span>==<span class="st0">&#8216;movie clip&#8217;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; process_layers<span class="br0">&#40;</span><span class="kw1">item</span>.<span class="me1">timeline</span>.<span class="me1">layers</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Click <a href="http://www.agileflash.com/wp-content/uploads/2010/10/Swap-Flagged-Elements.jsfl">here </a>to download</p>
]]></content:encoded>
			<wfw:commentRss>http://www.agileflash.com/2010/10/bulk-swap-elements-from-timelines-by-tagging-their-layers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Remove empty folders from library</title>
		<link>http://www.agileflash.com/2010/10/remove-empty-folders-from-library/</link>
		<comments>http://www.agileflash.com/2010/10/remove-empty-folders-from-library/#comments</comments>
		<pubDate>Mon, 11 Oct 2010 13:13:48 +0000</pubDate>
		<dc:creator>Gabriel Giacomini</dc:creator>
				<category><![CDATA[JSFL]]></category>
		<category><![CDATA[library organization]]></category>

		<guid isPermaLink="false">http://www.agileflash.com/?p=308</guid>
		<description><![CDATA[Oh, this is a simple trick, but might be useful if you have a huge library. You know&#8230; when you use the &#8220;remove unused items&#8221; and flash does forget to remove the folders  



function remove_empty_folders&#40;doc&#41;&#123; 


&#160; for&#40; var i = 0; i &#60; doc.library.items.length; i++&#41;&#123;


&#160; &#160; var item=doc.library.items&#91;i&#93;;


&#160; &#160; var item_name=item.name;


&#160; &#160; var item_name_length=item_name.length;


&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>Oh, this is a simple trick, but might be useful if you have a huge library. You know&#8230; when you use the &#8220;remove unused items&#8221; and flash does forget to remove the folders <img src='http://www.agileflash.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">function</span> remove_empty_folders<span class="br0">&#40;</span>doc<span class="br0">&#41;</span><span class="br0">&#123;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">for</span><span class="br0">&#40;</span> <span class="kw2">var</span> i = <span class="nu0">0</span>; i &lt; doc.<span class="me1">library</span>.<span class="me1">items</span>.<span class="me1">length</span>; i++<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">var</span> <span class="kw1">item</span>=doc.<span class="me1">library</span>.<span class="me1">items</span><span class="br0">&#91;</span>i<span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">var</span> item_name=<span class="kw1">item</span>.<span class="kw3">name</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="kw2">var</span> item_name_length=item_name.<span class="me1">length</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="kw1">item</span>.<span class="me1">itemType</span>==<span class="st0">&#8216;folder&#8217;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw2">var</span> count_children=<span class="nu0">0</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">for</span><span class="br0">&#40;</span> <span class="kw2">var</span> j = i<span class="nu0">+1</span>; j &lt; doc.<span class="me1">library</span>.<span class="me1">items</span>.<span class="me1">length</span>; j++<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> subitem=doc.<span class="me1">library</span>.<span class="me1">items</span><span class="br0">&#91;</span>j<span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>subitem.<span class="kw3">name</span>.<span class="me1">substring</span><span class="br0">&#40;</span><span class="nu0">0</span>,item_name_length<span class="br0">&#41;</span>==item_name<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; count_children++;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">break</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>count_children==<span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; fl.<span class="me1">trace</span><span class="br0">&#40;</span><span class="st0">&#8216;remove &#8216;</span>+<span class="kw1">item</span>.<span class="kw3">name</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; doc.<span class="me1">library</span>.<span class="me1">deleteItem</span><span class="br0">&#40;</span><span class="kw1">item</span>.<span class="kw3">name</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; i=<span class="nu0">-1</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">remove_empty_folders<span class="br0">&#40;</span>fl.<span class="me1">getDocumentDOM</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
</ol>
</div>
<p>Click <a href="hhttp://www.agileflash.com/wp-content/uploads/2010/10/Remove-empty-folders.jsfl">here </a>to download</p>
]]></content:encoded>
			<wfw:commentRss>http://www.agileflash.com/2010/10/remove-empty-folders-from-library/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Find and Replace Library Names and Linkages using JSFL</title>
		<link>http://www.agileflash.com/2010/06/find-and-replace-library-names-and-linkages-using-jsfl/</link>
		<comments>http://www.agileflash.com/2010/06/find-and-replace-library-names-and-linkages-using-jsfl/#comments</comments>
		<pubDate>Fri, 04 Jun 2010 22:03:34 +0000</pubDate>
		<dc:creator>Gabriel Giacomini</dc:creator>
				<category><![CDATA[JSFL]]></category>
		<category><![CDATA[as3 linkage]]></category>
		<category><![CDATA[jsfl]]></category>
		<category><![CDATA[library organization]]></category>

		<guid isPermaLink="false">http://www.agileflash.com/?p=304</guid>
		<description><![CDATA[Another script to save programmer&#8217;s fingers. It replaces words in library, including linkages and package names. Case sensitive. So, if you want to replace all class linkages from the package &#8220;com.test1&#8243; to &#8220;com.test1.specific&#8221;, it&#8217;s an instant. It asks which is the word to substitute, and by which word. Hit ok, and it&#8217;s done.



function find_and_replace_in_library&#40;&#41;&#123; 


&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>Another script to save programmer&#8217;s fingers. It replaces words in library, including linkages and package names. Case sensitive. So, if you want to replace all class linkages from the package &#8220;com.test1&#8243; to &#8220;com.test1.specific&#8221;, it&#8217;s an instant. It asks which is the word to substitute, and by which word. Hit ok, and it&#8217;s done.</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">function</span> find_and_replace_in_library<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw2">var</span> substitute=<span class="kw3">prompt</span><span class="br0">&#40;</span><span class="st0">&#8216;What is the word to substitute?&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw2">var</span> newterm=<span class="kw3">prompt</span><span class="br0">&#40;</span><span class="st0">&#8216;By which word?&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>substitute==<span class="kw2">null</span> || newterm==<span class="kw2">null</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">return</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">for</span><span class="br0">&#40;</span> <span class="kw2">var</span> h = <span class="nu0">0</span>; h &lt; fl.<span class="me1">getDocumentDOM</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">library</span>.<span class="me1">items</span>.<span class="me1">length</span>; h++<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="kw2">var</span> <span class="kw1">item</span>=fl.<span class="me1">getDocumentDOM</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">library</span>.<span class="me1">items</span><span class="br0">&#91;</span>h<span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="co1">//search for item name</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">var</span> full_item_name=<span class="kw1">item</span>.<span class="kw3">name</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">var</span> item_folder=full_item_name.<span class="me1">substr</span><span class="br0">&#40;</span><span class="nu0">0</span>,full_item_name.<span class="me1">lastIndexOf</span><span class="br0">&#40;</span><span class="st0">&#8216;/&#8217;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="kw2">var</span> clean_item_name=full_item_name.<span class="me1">substr</span><span class="br0">&#40;</span>full_item_name.<span class="me1">lastIndexOf</span><span class="br0">&#40;</span><span class="st0">&#8216;/&#8217;</span><span class="br0">&#41;</span><span class="nu0">+1</span><span class="br0">&#41;</span>;&nbsp; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">var</span> old_name=clean_item_name;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">var</span> new_name=<span class="st0">&#8221;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">var</span> exploded=old_name.<span class="me1">split</span><span class="br0">&#40;</span>substitute<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">for</span><span class="br0">&#40;</span><span class="kw2">var</span> i=<span class="nu0">0</span>; i&lt;exploded.<span class="me1">length</span>; i++<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>i!=<span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; new_name+=newterm;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; new_name+=exploded<span class="br0">&#91;</span>i<span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>old_name!=new_name<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">item</span>.<span class="kw3">name</span>=new_name;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="co1">//search for linkage</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="kw1">item</span>.<span class="me1">itemType</span>==<span class="st0">&#8216;movie clip&#8217;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="kw1">item</span>.<span class="me1">linkageClassName</span>!=<span class="st0">&#8221;</span> &amp;&amp; <span class="kw1">item</span>.<span class="me1">linkageClassName</span>!=undefined &amp;&amp; <span class="kw1">item</span>.<span class="me1">linkageClassName</span>!=<span class="kw2">null</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> old_name=<span class="kw1">item</span>.<span class="me1">linkageClassName</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> new_name=<span class="st0">&#8221;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> exploded=old_name.<span class="me1">split</span><span class="br0">&#40;</span>substitute<span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span><span class="br0">&#40;</span><span class="kw2">var</span> i=<span class="nu0">0</span>; i&lt;exploded.<span class="me1">length</span>; i++<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>i!=<span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; new_name+=newterm;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; new_name+=exploded<span class="br0">&#91;</span>i<span class="br0">&#93;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>old_name!=new_name<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">item</span>.<span class="me1">linkageClassName</span>=new_name;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">find_and_replace_in_library<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
</ol>
</div>
<p>Click <a href="http://www.agileflash.com/wp-content/uploads/2010/06/Find-and-Replace-Library-Names-and-Linkages.jsfl">here </a>to download</p>
]]></content:encoded>
			<wfw:commentRss>http://www.agileflash.com/2010/06/find-and-replace-library-names-and-linkages-using-jsfl/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Automatically assign AS3 class linkages to library Bitmaps using JSFL (CS4+)</title>
		<link>http://www.agileflash.com/2010/05/automatically-assign-as3-class-linkages-to-library-bitmaps-using-jsfl-cs4/</link>
		<comments>http://www.agileflash.com/2010/05/automatically-assign-as3-class-linkages-to-library-bitmaps-using-jsfl-cs4/#comments</comments>
		<pubDate>Sun, 09 May 2010 07:19:24 +0000</pubDate>
		<dc:creator>Gabriel Giacomini</dc:creator>
				<category><![CDATA[JSFL]]></category>
		<category><![CDATA[as3 linkage]]></category>
		<category><![CDATA[bitmap]]></category>
		<category><![CDATA[jsfl]]></category>
		<category><![CDATA[library organization]]></category>

		<guid isPermaLink="false">http://www.agileflash.com/?p=297</guid>
		<description><![CDATA[This script prompts you to choose the package for the linkages that will be added. Then, it search for all not yet linked bitmaps in library. When it find anyone, it set the class name based in the library item name.
Unfortunately, it won&#8217;t work on CS3.



function add_linkage&#40;doc&#41;&#123; 


&#160; 


&#160; var package=prompt&#40;&#8216;Choose a package or live [...]]]></description>
			<content:encoded><![CDATA[<p>This script prompts you to choose the package for the linkages that will be added. Then, it search for all not yet linked bitmaps in library. When it find anyone, it set the class name based in the library item name.</p>
<p>Unfortunately, it <strong>won&#8217;t work on CS3</strong>.</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">function</span> add_linkage<span class="br0">&#40;</span>doc<span class="br0">&#41;</span><span class="br0">&#123;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw2">var</span> <span class="kw2">package</span>=<span class="kw3">prompt</span><span class="br0">&#40;</span><span class="st0">&#8216;Choose a package or live it blank&#8217;</span>,<span class="st0">&#8221;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="kw2">package</span>==<span class="kw2">null</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="kw3">alert</span><span class="br0">&#40;</span><span class="st0">&#8216;Command cancelled by user&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="kw2">package</span>!=<span class="st0">&#8221;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">package</span>+=<span class="st0">&#8216;.&#8217;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="co1">//remove double points and spaces from package name and lower its case</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">package</span>=<span class="kw2">package</span>.<span class="me1">split</span><span class="br0">&#40;</span><span class="st0">&#8216;..&#8217;</span><span class="br0">&#41;</span>.<span class="me1">join</span><span class="br0">&#40;</span><span class="st0">&#8216;.&#8217;</span><span class="br0">&#41;</span>.<span class="me1">split</span><span class="br0">&#40;</span><span class="st0">&#8216; &#8216;</span><span class="br0">&#41;</span>.<span class="me1">join</span><span class="br0">&#40;</span><span class="st0">&#8221;</span><span class="br0">&#41;</span>.<span class="me1">toLowerCase</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw2">var</span> library=doc.<span class="me1">library</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="kw2">var</span> items=library.<span class="me1">items</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw2">var</span> items_length=items.<span class="me1">length</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">for</span><span class="br0">&#40;</span> <span class="kw2">var</span> h = <span class="nu0">0</span>; h &lt; items_length; h++<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">var</span> <span class="kw1">item</span>=items<span class="br0">&#91;</span>h<span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="kw1">item</span>.<span class="me1">itemType</span>==<span class="st0">&#8216;bitmap&#8217;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="kw1">item</span>.<span class="me1">linkageExportForAS</span>==<span class="kw2">false</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; fl.<span class="me1">trace</span><span class="br0">&#40;</span><span class="st0">&#8216;tenta&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//extract class name from the item name</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> class_name=<span class="kw1">item</span>.<span class="kw3">name</span>.<span class="me1">substr</span><span class="br0">&#40;</span><span class="kw1">item</span>.<span class="kw3">name</span>.<span class="me1">lastIndexOf</span><span class="br0">&#40;</span><span class="st0">&#8216;/&#8217;</span><span class="br0">&#41;</span><span class="nu0">+1</span><span class="br0">&#41;</span>.<span class="me1">toLowerCase</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//remove extensions</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; class_name=class_name.<span class="me1">split</span><span class="br0">&#40;</span><span class="st0">&#8216;.jpg&#8217;</span><span class="br0">&#41;</span>.<span class="me1">join</span><span class="br0">&#40;</span><span class="st0">&#8221;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; class_name=class_name.<span class="me1">split</span><span class="br0">&#40;</span><span class="st0">&#8216;.png&#8217;</span><span class="br0">&#41;</span>.<span class="me1">join</span><span class="br0">&#40;</span><span class="st0">&#8221;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; class_name=class_name.<span class="me1">split</span><span class="br0">&#40;</span><span class="st0">&#8216;.gif&#8217;</span><span class="br0">&#41;</span>.<span class="me1">join</span><span class="br0">&#40;</span><span class="st0">&#8221;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//force first letter to be uppercase&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; class_name=class_name.<span class="me1">substr</span><span class="br0">&#40;</span><span class="nu0">0</span>,<span class="nu0">1</span><span class="br0">&#41;</span>.<span class="me1">toUpperCase</span><span class="br0">&#40;</span><span class="br0">&#41;</span>+class_name.<span class="me1">substr</span><span class="br0">&#40;</span><span class="nu0">1</span><span class="br0">&#41;</span>; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//remove points and spaces</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; class_name=class_name.<span class="me1">split</span><span class="br0">&#40;</span><span class="st0">&#8216;.&#8217;</span><span class="br0">&#41;</span>.<span class="me1">join</span><span class="br0">&#40;</span><span class="st0">&#8221;</span><span class="br0">&#41;</span>.<span class="me1">split</span><span class="br0">&#40;</span><span class="st0">&#8216; &#8216;</span><span class="br0">&#41;</span>.<span class="me1">join</span><span class="br0">&#40;</span><span class="st0">&#8221;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//sum and set it up</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">item</span>.<span class="me1">linkageExportForAS</span>=<span class="kw2">true</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">item</span>.<span class="me1">linkageClassName</span>=<span class="kw2">package</span>+class_name;&nbsp; &nbsp; &nbsp; &nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">item</span>.<span class="me1">linkageBaseClass</span>=<span class="st0">&#8216;flash.display.BitmapData&#8217;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">add_linkage<span class="br0">&#40;</span>fl.<span class="me1">getDocumentDOM</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
</ol>
</div>
<p>Click <a href="http://www.agileflash.com/wp-content/uploads/2010/05/Add-Linkage-to-AS3-Bitmaps.jsfl">here </a>to download</p>
]]></content:encoded>
			<wfw:commentRss>http://www.agileflash.com/2010/05/automatically-assign-as3-class-linkages-to-library-bitmaps-using-jsfl-cs4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Planning flash movieclip hierarchy using photoshop layers</title>
		<link>http://www.agileflash.com/2010/04/planning-flash-movieclip-hierarchy-using-photoshop-layers/</link>
		<comments>http://www.agileflash.com/2010/04/planning-flash-movieclip-hierarchy-using-photoshop-layers/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 11:00:21 +0000</pubDate>
		<dc:creator>Gabriel Giacomini</dc:creator>
				<category><![CDATA[flash psd importer]]></category>
		<category><![CDATA[library organization]]></category>
		<category><![CDATA[photoshop]]></category>

		<guid isPermaLink="false">http://www.agileflash.com/?p=291</guid>
		<description><![CDATA[Today we&#8217;ll see an idea about organizing flash layout and library in a parent/child basis. Things inside the menu goes inside the menu. Things inside the bottom bar are children of the bottom bar. This idea is obvious at all, but the idea here that may be different for a lot of people is to [...]]]></description>
			<content:encoded><![CDATA[<p>Today we&#8217;ll see an idea about organizing flash layout and library in a parent/child basis. Things inside the menu goes inside the menu. Things inside the bottom bar are children of the bottom bar. This idea is obvious at all, but the idea here that may be different for a lot of people is to plan and prepare it inside of photoshop, because since it&#8217;s very intuitive and it make the process faster. So, suppose we have a very simple website to build, composed by:</p>
<ul>
<li>a logotype with lettering and background;</li>
<li>a menu with titles and background;</li>
<li>a content box with a background;</li>
<li>a bottom bar with a copyright signature, a follow link and background;</li>
<li>the full background of the application.</li>
</ul>
<p>We&#8217;ve briefly gave names to the photoshop layers, getting able to visually understand what is in the photoshop file just by examining the layers. After some minutes of handy work discovering what each layer means and giving them names, they look like this:</p>
<p><img class="alignnone size-full wp-image-46" title="Photoshop Disorganized Layers" src="http://www.agileflash.com/wp-content/uploads/2009/09/photoshop-disorganized-layers.gif" alt="Photoshop Disorganized Layers" width="484" height="495" /></p>
<p>First of all, we can see this is a website structure layout. By choice, I always start my hierarchies with a patriarch, a most-comprehensive movieclip that will embrace all the elements of the layout. The reason? addChild(new Patriarch_name()). Following, we&#8217;ll nest a few other movieclips that will be direct sons of the ancient patriarch. This second generation will represent the main elements of our layout, that will embrace all the other elements. In this specific case I&#8217;ve somehow decided to arrange them in four movieclips like this:</p>
<ul>
<li>Structure
<ul>
<li>Top</li>
<li>Bottom</li>
<li>Content</li>
<li>Background</li>
</ul>
</li>
</ul>
<p>In photoshop:</p>
<p><a href="http://www.agileflash.com/wp-content/uploads/2009/09/photoshop-main-layers.gif"><img class="alignnone size-full wp-image-47" title="Photoshop Main Layers" src="http://www.agileflash.com/wp-content/uploads/2009/09/photoshop-main-layers.gif" alt="Photoshop Main Layers" width="484" height="200" /></a></p>
<p>So, let&#8217;s the main reasons for the above choice of arrangement:</p>
<ol>
<li>Organizing elements by position in the layout will facilitate screen size adaption, since these elements represents that groups of elements that will keep together independent of the screen size;</li>
<li>Triggering animation may become very easier if the elements that will be moved together are children of the same movieclip. This way, we can create a single animation for the parent, intead of several for the children;</li>
<li>Abstractions like &#8220;top&#8221;, &#8220;bottom&#8221;, &#8220;background&#8221; and &#8220;content&#8221; are very easy to understand. If you read the above list of movieclips and look to the layout, you&#8217;ll easily intuit which elements of the layout are embraced by each of them.</li>
</ol>
<p>Next, let&#8217;s spread all the remaining elements:</p>
<ul>
<li>Structure
<ul>
<li>Top
<ul>
<li>Logotype
<ul>
<li>Lettering</li>
<li>Background</li>
</ul>
</li>
<li>Menu
<ul>
<li>Profile</li>
<li>News</li>
<li>Events</li>
<li>Contact</li>
<li>Background</li>
</ul>
</li>
</ul>
</li>
<li>Bottom
<ul>
<li>Copyright</li>
<li>Followme</li>
<li>Background</li>
</ul>
</li>
<li>Content
<ul>
<li>Background</li>
</ul>
</li>
<li>Background</li>
</ul>
</li>
</ul>
<p>Same in photoshop:</p>
<p><img style="border: 0px initial initial;" title="Photoshop Layers" src="http://www.agileflash.com/wp-content/uploads/2009/09/photoshop-layers.gif" alt="Photoshop Layers" width="484" height="634" /></p>
<p>Download the above PSD file by clicking <a href="http://www.agileflash.com/wp-content/uploads/2009/09/structure.psd" target="_self">here</a>.</p>
<p>As you have just seen, movieclips can be art layers or layer sets. When it&#8217;s just s DisplayObject, we use an art layer (normal layer, solid fill, text field, etc), but when it is a DisplayObjectContainer, we use a layer set to puts its children inside. It&#8217;s simple like that, and this is where we were to reach by this post. After organizing, <a href="http://www.agileflash.com/2010/04/create-unique-and-hierarchy-oriented-layer-names-using-photoshop-scripting/">try this script</a>.</p>
<p>Why I&#8217;ve chosen to arrange them this way?</p>
<ol>
<li>Grouping the Lettering and Background of the Logotype allow us to add behavior that is peculiar to this group, not to the separate elements themselves. In this case, It serves to build the whole logotype as a button that lead to the home page. So, anywhere you click in the logotype, is in the lettering is in the background, you&#8217;ll trigger the same action, without needing to add code in both elements.</li>
<li>Grouping all the menu elements enable us to add actions that belong to that group of elements, rather than to the separate elements themselves, same way as in the previous topic. For example, the &#8220;Menu&#8221; abstraction would be very useful to host a method that enable or disable the clickability of both Profile, News, Events and Contact. So, we can add &#8220;enable&#8221; and &#8220;disable&#8221; public methods to the Menu, and trigger them calling Menu.enable() or Menu.disable() &#8211; substituiting &#8220;Menu&#8221; by the Menu instance name, probably mc_menu or menu_mc.</li>
<li>Abstractions are very beautiful things when they do work. You will also save time if you create well-built abstractions that, following the real world and needs logic, will generally fit the later-appearing needs of programming and won&#8217;t let you down.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.agileflash.com/2010/04/planning-flash-movieclip-hierarchy-using-photoshop-layers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bug: flash psd importer crashes when &#8220;ok&#8221; button is hitted</title>
		<link>http://www.agileflash.com/2010/04/bug-flash-psd-importer-crashes-when-ok-button-is-hitted/</link>
		<comments>http://www.agileflash.com/2010/04/bug-flash-psd-importer-crashes-when-ok-button-is-hitted/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 10:57:21 +0000</pubDate>
		<dc:creator>Gabriel Giacomini</dc:creator>
				<category><![CDATA[flash psd importer]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[photoshop]]></category>

		<guid isPermaLink="false">http://www.agileflash.com/?p=288</guid>
		<description><![CDATA[If you leave a empty layer set at photoshop and try to import the psd file, flash psd importer will crash, at least at flash 8, cs3 and cs4 for windows.
Putting in images:

Easy solutions:

just removing the empty folder
adding a &#8220;markup&#8221; layer inside the folder, so it won&#8217;t crash. Then, You can manually remove this layer [...]]]></description>
			<content:encoded><![CDATA[<p>If you leave a empty layer set at photoshop and try to import the psd file, flash psd importer will crash, at least at flash 8, cs3 and cs4 for windows.</p>
<p>Putting in images:<br />
<a href="http://www.agileflash.com/wp-content/uploads/2009/09/emptylayerset.gif"><img style="border: 0px initial initial;" title="emptylayerset" src="http://www.agileflash.com/wp-content/uploads/2009/09/emptylayerset.gif" alt="emptylayerset" width="311" height="206" /></a></p>
<p>Easy solutions:</p>
<ul>
<li>just removing the empty folder</li>
<li>adding a &#8220;markup&#8221; layer inside the folder, so it won&#8217;t crash. Then, You can manually remove this layer after importing. (or build an automation for that)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.agileflash.com/2010/04/bug-flash-psd-importer-crashes-when-ok-button-is-hitted/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Bug: flash psd importer bring text scaled, in wrong font-size</title>
		<link>http://www.agileflash.com/2010/04/bug-flash-psd-importer-bring-text-scaled-in-wrong-font-size/</link>
		<comments>http://www.agileflash.com/2010/04/bug-flash-psd-importer-bring-text-scaled-in-wrong-font-size/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 10:55:43 +0000</pubDate>
		<dc:creator>Gabriel Giacomini</dc:creator>
				<category><![CDATA[flash psd importer]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[photoshop]]></category>
		<category><![CDATA[text field]]></category>

		<guid isPermaLink="false">http://www.agileflash.com/?p=238</guid>
		<description><![CDATA[If photoshop text layers is not set as &#8220;paragraph text&#8221;, they may get imported in the wrong font face size. Visually, It won&#8217;t look it&#8217;s wrong-sized, since the flash text field will be scaled to fit the correct size. However, If you need to work reading variables like &#8220;textWidth&#8221; and &#8220;textHeight&#8221; from these fields, it can [...]]]></description>
			<content:encoded><![CDATA[<p>If photoshop text layers is not set as &#8220;paragraph text&#8221;, they may get imported in the wrong font face size. Visually, It won&#8217;t look it&#8217;s wrong-sized, since the flash text field will be scaled to fit the correct size. However, If you need to work reading variables like &#8220;textWidth&#8221; and &#8220;textHeight&#8221; from these fields, it can give you hard problems. Let&#8217;s look this in details:</p>
<p>When you are editing layer texts in in photoshop and in it is set up like &#8220;point text&#8221;, it look like this:</p>
<p><a href="http://www.agileflash.com/wp-content/uploads/2009/09/point-text.gif"><img style="border: 0px initial initial;" title="point-text" src="http://www.agileflash.com/wp-content/uploads/2009/09/point-text.gif" alt="point-text" width="109" height="28" /></a></p>
<p>But since Flash PSD Importer don&#8217;t deal very well with point text, we&#8217;ll need everything that will be imported to flash to bet set up as &#8220;paragraph text&#8221;, like here:</p>
<p><a href="http://www.agileflash.com/wp-content/uploads/2009/09/paragraphtext.gif"><img style="border: 0px initial initial;" title="paragraphtext" src="http://www.agileflash.com/wp-content/uploads/2009/09/paragraphtext.gif" alt="paragraphtext" width="200" height="36" /></a></p>
<p>Photoshop has a built-in tool to convert point text to paragraph text without needing to create it again. To do it, right-click the text layer at the layers panel, and select the &#8220;convert to paragraph text&#8221; option.</p>
<p><a href="http://www.agileflash.com/wp-content/uploads/2009/09/convert-to-paragraph-text.gif"><img style="border: 0px initial initial;" title="convert-to-paragraph-text" src="http://www.agileflash.com/wp-content/uploads/2009/09/convert-to-paragraph-text.gif" alt="convert-to-paragraph-text" width="311" height="595" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.agileflash.com/2010/04/bug-flash-psd-importer-bring-text-scaled-in-wrong-font-size/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bug: flash psd importer adds an extra instance of a movieclip inside the assets folder</title>
		<link>http://www.agileflash.com/2010/04/bug-flash-psd-importer-adds-an-extra-instance-of-a-movieclip-inside-the-assets-folder-2/</link>
		<comments>http://www.agileflash.com/2010/04/bug-flash-psd-importer-adds-an-extra-instance-of-a-movieclip-inside-the-assets-folder-2/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 10:55:38 +0000</pubDate>
		<dc:creator>Gabriel Giacomini</dc:creator>
				<category><![CDATA[JSFL]]></category>
		<category><![CDATA[flash psd importer]]></category>
		<category><![CDATA[bitmap]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[jsfl]]></category>
		<category><![CDATA[movie clip]]></category>

		<guid isPermaLink="false">http://www.agileflash.com/?p=258</guid>
		<description><![CDATA[This is probably the mostly exhotic post of this blog. I have several times had problems with this bug, so I&#8217;ve built a script to correct it. Flash PSD importer, in rare occasions, create non-desired movieclips inside of the desired movieclips. These bastards come nested inside the Assets folder of the &#8220;real movieclip&#8221;, and are child [...]]]></description>
			<content:encoded><![CDATA[<p>This is probably the mostly exhotic post of this blog. I have several times had problems with this bug, so I&#8217;ve built a script to correct it. Flash PSD importer, in rare occasions, create non-desired movieclips inside of the desired movieclips. These bastards come nested inside the Assets folder of the &#8220;real movieclip&#8221;, and are child instances of the real movieclip.</p>
<p>So, if we would import a bitmap layer called &#8220;weirdlayer&#8221; as a movie clip, it would appear in the library like this:<br />
<a href="http://www.agileflash.com/wp-content/uploads/2009/09/right.gif"><img style="border: 0px initial initial;" title="right" src="http://www.agileflash.com/wp-content/uploads/2009/09/right.gif" alt="right" width="274" height="115" /></a></p>
<p>But when the bug happens, it come like this:<br />
<a href="http://www.agileflash.com/wp-content/uploads/2009/09/wrong.gif"><img style="border: 0px initial initial;" title="wrong" src="http://www.agileflash.com/wp-content/uploads/2009/09/wrong.gif" alt="wrong" width="274" height="166" /></a></p>
<p>So, here is a JSFL Script that detects all the occurrences of this bug in the current document and get them fixed. Sorry it&#8217;s a little bit lengthy.</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">function</span> fix_assets_bug<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw2">var</span> library=fl.<span class="me1">getDocumentDOM</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">library</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="co1">//items from the library</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="kw2">var</span> items=library.<span class="me1">items</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw2">var</span> items_length=items.<span class="me1">length</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">for</span><span class="br0">&#40;</span> <span class="kw2">var</span> h = <span class="nu0">0</span>; h &lt; items_length; h++<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">var</span> <span class="kw1">item</span>=items<span class="br0">&#91;</span>h<span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; </div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="kw1">item</span>.<span class="me1">itemType</span>==<span class="st0">&#8216;movie clip&#8217;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw2">var</span> full_item_name=<span class="kw1">item</span>.<span class="kw3">name</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw2">var</span> item_folder=full_item_name.<span class="me1">substr</span><span class="br0">&#40;</span><span class="nu0">0</span>,full_item_name.<span class="me1">lastIndexOf</span><span class="br0">&#40;</span><span class="st0">&#8216;/&#8217;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw2">var</span> clean_item_name=full_item_name.<span class="me1">substr</span><span class="br0">&#40;</span>full_item_name.<span class="me1">lastIndexOf</span><span class="br0">&#40;</span><span class="st0">&#8216;/&#8217;</span><span class="br0">&#41;</span><span class="nu0">+1</span><span class="br0">&#41;</span>;&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; <span class="kw2">var</span> timeline=<span class="kw1">item</span>.<span class="me1">timeline</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw2">var</span> layers=timeline.<span class="me1">layers</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw2">var</span> layers_length=layers.<span class="me1">length</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">for</span><span class="br0">&#40;</span> <span class="kw2">var</span> i = <span class="nu0">0</span>; i &lt; layers_length; i++<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> layer = layers<span class="br0">&#91;</span>i<span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> frames=layer.<span class="me1">frames</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> frames_length=frames.<span class="me1">length</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw2">var</span> j=<span class="nu0">0</span>; j&lt;frames_length; j++<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> frame=frames<span class="br0">&#91;</span>j<span class="br0">&#93;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//elements from the frame</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> elements=frame.<span class="me1">elements</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> elements_length=elements.<span class="me1">length</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>elements_length!=<span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span><span class="br0">&#40;</span><span class="kw2">var</span> k=<span class="nu0">0</span>; k&lt;elements_length; k++<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> element=elements<span class="br0">&#91;</span>k<span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>element.<span class="me1">elementType</span>==<span class="st0">&#8216;instance&#8217;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> subitem=element.<span class="me1">libraryItem</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>subitem!=undefined<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>subitem.<span class="me1">itemType</span>==<span class="st0">&#8216;movie clip&#8217;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//the name of the movieclip in the library</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> full_subitem_name=subitem.<span class="kw3">name</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//the path of the folder in which this movieclip is in</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> subitem_folder=full_subitem_name.<span class="me1">substr</span><span class="br0">&#40;</span><span class="nu0">0</span>,full_subitem_name.<span class="me1">lastIndexOf</span><span class="br0">&#40;</span><span class="st0">&#8216;/&#8217;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//the name of this item, withou the full path</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> clean_subitem_name=full_subitem_name.<span class="me1">substr</span><span class="br0">&#40;</span>full_subitem_name.<span class="me1">lastIndexOf</span><span class="br0">&#40;</span><span class="st0">&#8216;/&#8217;</span><span class="br0">&#41;</span><span class="nu0">+1</span><span class="br0">&#41;</span>;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//if both item and subitem have the same name</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>clean_item_name==clean_subitem_name<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//we have found a suspect! let&#8217;s check if it is really bugged stuff</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>subitem_folder== <span class="br0">&#40;</span>item_folder+<span class="st0">&#8216;/Assets/&#8217;</span>+clean_subitem_name<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//if the child movieclip is inside the assets folder of the parent movieclip</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fl.<span class="me1">trace</span><span class="br0">&#40;</span><span class="st0">&#8216;got it! bugged item &#8216;</span>+clean_subitem_name+<span class="st0">&#8216; will be corrected&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; library.<span class="me1">editItem</span><span class="br0">&#40;</span><span class="kw1">item</span>.<span class="kw3">name</span><span class="br0">&#41;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fl.<span class="me1">getDocumentDOM</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">currentTimeline</span>=<span class="kw1">item</span>.<span class="me1">timeline</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fl.<span class="me1">getDocumentDOM</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">getTimeline</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">currentLayer</span>=<span class="nu0">0</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fl.<span class="me1">getDocumentDOM</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">getTimeline</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">currentFrame</span>=<span class="nu0">0</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fl.<span class="me1">getDocumentDOM</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">selectAll</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fl.<span class="me1">getDocumentDOM</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">breakApart</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">fix_assets_bug<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
</ol>
</div>
<p>Click <a href="http://www.agileflash.com/wp-content/uploads/2010/04/Fix-assets-Bug.jsfl">here </a>to download</p>
]]></content:encoded>
			<wfw:commentRss>http://www.agileflash.com/2010/04/bug-flash-psd-importer-adds-an-extra-instance-of-a-movieclip-inside-the-assets-folder-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Create unique and hierarchy-oriented layer names using Photoshop Scripting</title>
		<link>http://www.agileflash.com/2010/04/create-unique-and-hierarchy-oriented-layer-names-using-photoshop-scripting/</link>
		<comments>http://www.agileflash.com/2010/04/create-unique-and-hierarchy-oriented-layer-names-using-photoshop-scripting/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 16:00:08 +0000</pubDate>
		<dc:creator>Gabriel Giacomini</dc:creator>
				<category><![CDATA[flash psd importer]]></category>
		<category><![CDATA[photoshop scripting]]></category>
		<category><![CDATA[bitmap]]></category>
		<category><![CDATA[library organization]]></category>
		<category><![CDATA[movie clip]]></category>
		<category><![CDATA[text field]]></category>

		<guid isPermaLink="false">http://www.agileflash.com/?p=265</guid>
		<description><![CDATA[So, here we have two similar layer lists.

At left one is how I naturally organize my PSD files in photoshop. And at right how I like to have them to import them to flash as movie clips, using flash psd importer. Manually organize layers like those in the right is boring even for the most [...]]]></description>
			<content:encoded><![CDATA[<p>So, here we have two similar layer lists.<br />
<img src="http://www.agileflash.com/wp-content/uploads/2010/04/layer-sets.gif" alt="layer-sets" title="layer-sets" width="605" height="867" class="alignnone size-full wp-image-266" /></p>
<p>At left one is how I naturally organize my PSD files in photoshop. And at right how I like to have them to <a href="http://www.agileflash.com/2010/04/setting-up-and-using-flash-psd-importer-to-bring-materials-in/">import them to flash as movie clips, using flash psd importer</a>. Manually organize layers like those in the right is boring even for the most motivated intern. So, we have this photoshop script to rename everything generating unique and comprehensible movie clip names for a programmer-friendly flash library.</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">function</span> process_layer<span class="br0">&#40;</span>layer,parent_name<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw2">var</span> layer_name=layer.<span class="kw3">name</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="co1">//first letter uppercase, other lowercase</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; layer_name=layer_name.<span class="me1">substr</span><span class="br0">&#40;</span><span class="nu0">0</span>,<span class="nu0">1</span><span class="br0">&#41;</span>.<span class="me1">toUpperCase</span><span class="br0">&#40;</span><span class="br0">&#41;</span>+layer_name.<span class="me1">substr</span><span class="br0">&#40;</span><span class="nu0">1</span><span class="br0">&#41;</span>.<span class="me1">toLowerCase</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="co1">//remove empty spaces, hyphens</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; layer_name=layer_name.<span class="me1">split</span><span class="br0">&#40;</span><span class="st0">&#8216; &#8216;</span><span class="br0">&#41;</span>.<span class="me1">join</span><span class="br0">&#40;</span><span class="st0">&#8221;</span><span class="br0">&#41;</span>.<span class="me1">split</span><span class="br0">&#40;</span><span class="st0">&#8216;-&#8217;</span><span class="br0">&#41;</span>.<span class="me1">join</span><span class="br0">&#40;</span><span class="st0">&#8221;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw2">var</span> full_name=parent_name+layer_name;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">switch</span><span class="br0">&#40;</span>layer.<span class="me1">typename</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">case</span> <span class="st0">&#8216;LayerSet&#8217;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; layer.<span class="kw3">name</span>=full_name;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw2">var</span> children=layer.<span class="me1">layers</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">for</span><span class="br0">&#40;</span><span class="kw2">var</span> k=<span class="nu0">0</span>; k&lt;children.<span class="me1">length</span>; k++<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> child=children<span class="br0">&#91;</span>k<span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; process_layer<span class="br0">&#40;</span>child,full_name<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">break</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="kw1">case</span> <span class="st0">&#8216;ArtLayer&#8217;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>layer.<span class="me1">kind</span>==LayerKind.<span class="me1">TEXT</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; layer.<span class="kw3">name</span>=layer_name.<span class="me1">toLowerCase</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="kw1">else</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; layer.<span class="kw3">name</span>=full_name;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">break</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">doc=app.<span class="me1">activeDocument</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">var</span> layers=doc.<span class="me1">layers</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">var</span> layers_length=layers.<span class="me1">length</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">for</span><span class="br0">&#40;</span><span class="kw2">var</span> j=<span class="nu0">0</span>; j&lt;layers_length; j++<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="kw2">var</span> layer=layers<span class="br0">&#91;</span>j<span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; process_layer<span class="br0">&#40;</span>layer,<span class="st0">&#8221;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Download the <a href="http://www.agileflash.com/wp-content/uploads/2010/04/Hierarchically-Rename-layers.jsx">photoshop script</a></p>
<p>To run this script open a psd file and click File > Scripts > Browse</p>
]]></content:encoded>
			<wfw:commentRss>http://www.agileflash.com/2010/04/create-unique-and-hierarchy-oriented-layer-names-using-photoshop-scripting/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Setting up and using flash PSD importer to bring bitmaps and create movie clips</title>
		<link>http://www.agileflash.com/2010/04/setting-up-and-using-flash-psd-importer-to-bring-materials-in/</link>
		<comments>http://www.agileflash.com/2010/04/setting-up-and-using-flash-psd-importer-to-bring-materials-in/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 23:23:51 +0000</pubDate>
		<dc:creator>Gabriel Giacomini</dc:creator>
				<category><![CDATA[flash psd importer]]></category>
		<category><![CDATA[bitmap]]></category>
		<category><![CDATA[movie clip]]></category>

		<guid isPermaLink="false">http://www.agileflash.com/?p=232</guid>
		<description><![CDATA[Importing flash materials asset-by-asset may be very painful and can take a long time to get completed. It encourage disorganization, since It&#8217;s double work to organize the library and follow a strict name standardization when we are manually bringing materials in. Besides that, the manual process provides great risk of human error, and I also believe [...]]]></description>
			<content:encoded><![CDATA[<p>Importing flash materials asset-by-asset may be very painful and can take a long time to get completed. It encourage disorganization, since It&#8217;s double work to organize the library and follow a strict name standardization when we are manually bringing materials in. Besides that, the manual process provides great risk of human error, and I also believe It&#8217;s a waste of human time, since we should employ our time with higher tasks that really demand our human intelligence, leaving repetitive labour to machines.</p>
<p>Fortunately flash has a PSD File Importer, allowing us to  import all the layers of a photoshop file at once. Althought having very limited features, it works. But there&#8217;s something that makes it really useful. This post is about using photoshop layers architecture do simulate movieclip hierarchy. For an example, we have this layer organization in our psd file:</p>
<p><img style="border: 0px initial initial;" title="Photoshop Layers" src="http://www.agileflash.com/wp-content/uploads/2009/09/photoshop-layers.gif" alt="Photoshop Layers" width="484" height="634" /><br />
Download the above PSD file by clicking <a href="http://www.agileflash.com/wp-content/uploads/2009/09/structure.psd" target="_self">here</a>.</p>
<p>So, this is very organized. Menu items are inside of menu, menu are inside of top bar, copyright and follow me button is inside bottom bar, everything is inside of something we call structure. So, the idea here is to replicate this exact nesting organization inside of flash, where each menu item will be a movie clip child of menu, menu will be a movieclip child of top, that itself will child of the &#8220;structure&#8221; movie clip. This is easy. We&#8217;ll just need to adjust psd importer settings.</p>
<p>To make it, click &#8220;Edit &gt; Preferences&#8221;.</p>
<p><a href="http://www.agileflash.com/wp-content/uploads/2009/09/edit-preferences.gif"><img class="alignnone size-full wp-image-55" title="Edit Preferences" src="http://www.agileflash.com/wp-content/uploads/2009/09/edit-preferences.gif" alt="Edit Preferences" width="244" height="225" /></a></p>
<p>Then choose to edit &#8220;PSD File Importer&#8221;, and here are the setting I normally use.</p>
<p><a href="http://www.agileflash.com/wp-content/uploads/2009/09/psd-file-importer-settings.gif"><img class="alignnone size-full wp-image-56" title="PSD File Importer Settings" src="http://www.agileflash.com/wp-content/uploads/2009/09/psd-file-importer-settings.gif" alt="PSD File Importer Settings" width="545" height="483" /></a></p>
<p>Now, the settings:</p>
<ul>
<li>Import image layers as Bitmap images with editable layer styles: choosing this option, all normal/bitmap psd layers will be transformed into movieclips, and the bitmap content will have alpha channel, without merging to the other images as happens in the &#8220;flattened bitmap images&#8221; option;</li>
<li>Import text layers as Editable text.</li>
<li>Layer groups create movieclips: this is our most important option, because it transform photoshop layer sets into movieclips that are parent of those layers inside the layer set.</li>
<li>Movieclip registration: that depends a lot on which movieclip registration you most use in your projects, so it&#8217;s very personal.</li>
<li>Compression lossless. Any layer looks better if compressed using lossless. What we are unlucky is that some of them get too heavy. So, my choice is to import everything in lossless and then check which of them are too heavy and change their compression later, os running <a href="http://www.agileflash.com/2010/04/automatically-choose-the-optimized-bitmap-compression-using-jsfl/">this script</a>.</li>
</ul>
<p>Then, create a new file in flash, then hit &#8220;File &gt; Import do stage and select your psd file.</p>
<p><a href="http://www.agileflash.com/wp-content/uploads/2009/09/import-to-stage.gif"><img class="alignnone size-full wp-image-61" title="Import to stage" src="http://www.agileflash.com/wp-content/uploads/2009/09/import-to-stage.gif" alt="Import to stage" width="465" height="526" /></a></p>
<p>You&#8217;ll have this window:</p>
<p><a href="http://www.agileflash.com/wp-content/uploads/2009/09/import-window.gif"><img class="alignnone size-full wp-image-62" title="import-window" src="http://www.agileflash.com/wp-content/uploads/2009/09/import-window.gif" alt="import-window" width="630" height="616" /></a></p>
<p>Just hit &#8220;ok&#8221; and you&#8217;ll have your layers imported according to the default settings we have set. If you desire to set up settings on a layer basis, click them and you&#8217;ll have options at the rights.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.agileflash.com/2010/04/setting-up-and-using-flash-psd-importer-to-bring-materials-in/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
