<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
	
	>
<channel>
	<title>
	Comments on: Flash Extension: Break Symbol Into Layers	</title>
	<atom:link href="https://ajarproductions.com/blog/2009/06/26/flash-extension-break-symbol-into-layers/feed/" rel="self" type="application/rss+xml" />
	<link>https://ajarproductions.com/blog/2009/06/26/flash-extension-break-symbol-into-layers/</link>
	<description>Software for Digital Designers</description>
	<lastBuildDate>Fri, 19 Jul 2024 00:27:28 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.5</generator>
	<item>
		<title>
		By: Tim		</title>
		<link>https://ajarproductions.com/blog/2009/06/26/flash-extension-break-symbol-into-layers/comment-page-1/#comment-188972</link>

		<dc:creator><![CDATA[Tim]]></dc:creator>
		<pubDate>Thu, 17 Nov 2016 23:43:04 +0000</pubDate>
		<guid isPermaLink="false">http://ajarproductions.com/blog/?p=491#comment-188972</guid>

					<description><![CDATA[Always appreciate for your great works. I currently download this extension and use in animate cc, working like charm but one problem. When symbol contains number of frames in same layer, extension breaks only first frame in exact position and last are placed differently. Could you help me to solve this or fix extension to work properly?]]></description>
			<content:encoded><![CDATA[<p>Always appreciate for your great works. I currently download this extension and use in animate cc, working like charm but one problem. When symbol contains number of frames in same layer, extension breaks only first frame in exact position and last are placed differently. Could you help me to solve this or fix extension to work properly?</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Justin		</title>
		<link>https://ajarproductions.com/blog/2009/06/26/flash-extension-break-symbol-into-layers/comment-page-1/#comment-5400</link>

		<dc:creator><![CDATA[Justin]]></dc:creator>
		<pubDate>Tue, 16 Mar 2010 22:06:40 +0000</pubDate>
		<guid isPermaLink="false">http://ajarproductions.com/blog/?p=491#comment-5400</guid>

					<description><![CDATA[David,
Thanks for the input. I&#039;ll look into this when I&#039;ve got more time. I appreciate the code.]]></description>
			<content:encoded><![CDATA[<p>David,<br />
Thanks for the input. I&#8217;ll look into this when I&#8217;ve got more time. I appreciate the code.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: David Johnston		</title>
		<link>https://ajarproductions.com/blog/2009/06/26/flash-extension-break-symbol-into-layers/comment-page-1/#comment-5399</link>

		<dc:creator><![CDATA[David Johnston]]></dc:creator>
		<pubDate>Tue, 16 Mar 2010 21:53:55 +0000</pubDate>
		<guid isPermaLink="false">http://ajarproductions.com/blog/?p=491#comment-5399</guid>

					<description><![CDATA[Sorry for the bad code formatting.  If you&#039;re interested, email me and I can send you the files as attachments.]]></description>
			<content:encoded><![CDATA[<p>Sorry for the bad code formatting.  If you&#8217;re interested, email me and I can send you the files as attachments.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: David Johnston		</title>
		<link>https://ajarproductions.com/blog/2009/06/26/flash-extension-break-symbol-into-layers/comment-page-1/#comment-5398</link>

		<dc:creator><![CDATA[David Johnston]]></dc:creator>
		<pubDate>Tue, 16 Mar 2010 21:52:13 +0000</pubDate>
		<guid isPermaLink="false">http://ajarproductions.com/blog/?p=491#comment-5398</guid>

					<description><![CDATA[That&#039;s a pretty cool tool.  There seems to be something wrong with it that I can&#039;t spot on first inspection of the code, though.  If I have multiple things selected on the same layer, it breaks apart one of them and then reports an error.  It looks like it&#039;s obliterating the layer that the selected elements were on after it breaks apart the first symbol.

As for properly obeying the symbol&#039;s transform (which your tool doesn&#039;t currently do), I wrote a command that zeros the transform of a symbol by applying the symbol&#039;s transform to all the elements on its timeline, then applying the inverse transform to all the instances of the symbol that exist in the document.  I bet it would be relatively simple to modify that functionality to work with this command.  Here&#039;s the code if you&#039;d like to give it a shot:

&lt;code&gt;
/////////////////////////////////////////////////////////////////////////
//
// Zero Transform.include
//
// Programmed by David Johnston
// http://blog.pinkandaint.com/
// Last modified 2:17 PM Tuesday, December 29, 2009
//
// This is the include file for the Zero Transform commands.  To use,
// include this file and call zero_transform() with optional parameters
// to zero at a given scale (that is, the selected symbol instance will
// be at the given scale, but visually be identical to its original 
// position)
//
//
/////////////////////////////////////////////////////////////////////////


doc = flash.getDocumentDOM();
timelines = doc.timelines;

//fl.outputPanel.clear();

/////////////////////////////////////////////////////////////////////////
// transform_in_timeline = function(timeline, lib_item, trans)
//
// Transform all instances of lib_item in a timeline
/////////////////////////////////////////////////////////////////////////

transform_in_timeline = function(lib_item, new_transform)
{
	var frame_index;
	var layer;
	var n = 0, m = 0;
	timeline = doc.getTimeline();
	
	//fl.trace(&quot;Visiting &quot; + timeline.name);

	for(n = 0; n &#060; timeline.layers.length; n++)
	{
		//fl.trace(&#034;\tlayer &#034; + n);
		layer = timeline.layers[n];
		frame_index = 0;
		while(layer.frames[frame_index] != undefined)
		{
			elements = layer.frames[frame_index].elements;
			//fl.trace(&#034;\t\tframe &#034; + frame_index);
			for(m = 0; m &#060; elements.length; m++)
			{
				if(elements[m].elementType == &#034;instance&#034;)
					if(elements[m].libraryItem == lib_item)
					{
						//fl.trace(&#034;found &#034; + lib_item.name + &#034; on &#034; + layer.name + &#034;, frame &#034; + (frame_index + 1) );
						//fl.trace(&#034;old: &#034; + elements[m].skewX + &#034;, &#034; + elements[m].skewY);
						old_matrix = elements[m].matrix;
						old_tx = old_matrix.tx;
						old_ty = old_matrix.ty;
						old_matrix.tx = old_matrix.ty = 0;
						new_matrix = fl.Math.concatMatrix(fl.Math.invertMatrix(new_transform), old_matrix);
						new_matrix.tx = old_tx;
						new_matrix.ty = old_ty;
						elements[m].matrix = new_matrix;
						//fl.trace(&#034;new: &#034; + elements[m].skewX + &#034;, &#034; + elements[m].skewY);
					}
			}
			//fl.trace(&#034;duration: &#034; + layer.frames[frame_index].duration);
			frame_index += layer.frames[frame_index].duration;
		}
	}
	
}

/////////////////////////////////////////////////////////////////////////
// transform_global = function(lib_item, new_transform)
//
// Transform all instances of lib_item in the whole document
/////////////////////////////////////////////////////////////////////////

transform_global = function(lib_item, new_transform)
{
	var n = 0;
	
	// First do it in all the timelines in the document
	
	for(n = 0; n &#060; timelines.length; n++)
	{
		doc.editScene(n)
		transform_in_timeline(lib_item, new_transform);
	}
	
	// Now do it in the timelines of all the library symbols
	
	//fl.trace(&#034;Now sybols&#034;);
	
	var items =  doc.library.items;
	for(n = 0; n &#060; items.length; n++)
	{
		if(items[n] != lib_item)
		{
			// If it has a timeline, transform all instances of lib_item in that timeline
			
			if(items[n].itemType == &#034;movie clip&#034; &#124;&#124; items[n].itemType == &#034;graphic&#034; &#124;&#124; items[n].itemType == &#034;button&#034;)
			{
				doc.library.editItem(items[n].name);
				transform_in_timeline(lib_item, new_transform);
			}
		}
	}
}

/////////////////////////////////////////////////////////////////////////
// transformTimeline(trans_matrix)
//
// Transforms all elements on the current timeline
/////////////////////////////////////////////////////////////////////////

transformTimeline = function(trans_matrix)
{
	var layer_locked = new Array();
	var layer_visible = new Array();
	var layernum, framenum;
	var layers;
	var frame_index;
	var next_keyframe, this_next_key;

	layers = doc.getTimeline().layers;

	// Unlock and unhide all layers
	for(layernum = 0; layernum &#060; layers.length; layernum++)
	{
		layer_locked[layernum] = layers[layernum].locked;
 		layer_visible[layernum] = layers[layernum].visible;
		layers[layernum].visible = true;
		layers[layernum].locked = false;
	}
	
	frame_index = 0;
	while(frame_index &#060; doc.getTimeline().frameCount)
	{
		doc.getTimeline().currentFrame = frame_index;
		
		for(layernum = 0; layernum &#060; layers.length; layernum++)
		{
			// Check all the layers.  If this is a keyframe, unlock the layer.
			// If not, lock it.
			if(layers[layernum].frames[frame_index].startFrame == frame_index)
				layers[layernum].locked = false;
			else layers[layernum].locked = true;
			
			//fl.trace(&#034;layers[&#034; + layernum + &#034;].locked is &#034; + layers[layernum].locked);
		}		

		doc.selectAll();
		
		// If anything is selected (i.e. these keyframes aren&#039;t empty), do the transformation
		if(doc.selection.length)
		{
			//First group everything so we can set a pivot point without affecting a symbol instance&#039;s pivot point
			doc.group();
			
			// Transform everything from (0,0)
			doc.setTransformationPoint({x:0, y:0});
			doc.transformSelection(trans_matrix.a, trans_matrix.b, trans_matrix.c, trans_matrix.d);
			doc.unGroup();
			
		}
	
		// Set next_keyframe to a big number
		next_keyframe = 0x7fff;
		
		for(layernum = 0; layernum &#060; layers.length; layernum++)
		{
			// If this layer&#039;s next keyframe is closer than next_keyframe, replace 
			// next_keyframe with the frame number of this layers&#039;s next key.
			
			if(layers[layernum].frames[frame_index] != undefined)
			{
				this_next_key = layers[layernum].frames[frame_index].startFrame + layers[layernum].frames[frame_index].duration;
				if(this_next_key &#060; next_keyframe)
					next_keyframe = this_next_key;
			}
		}
		frame_index = next_keyframe;
	}

	// return all the layers to their lock &#038; hide states
	for(layernum = 0; layernum  1)
	{
		edit_stack_entry = edit_stack.pop();
		doc.getTimeline().currentFrame = edit_stack_entry.frame;
		doc.selection = [edit_stack_entry.object];
		//fl.trace(&quot;re-editing &quot; + doc.selection[0].libraryItem.name + &quot; on frame &quot; + edit_stack_entry.frame);
		doc.enterEditMode(&quot;inPlace&quot;);
	}
	
	edit_stack_entry = edit_stack.pop();
	doc.getTimeline().currentFrame = edit_stack_entry.frame;
	//fl.trace(&quot;final frame: &quot; + edit_stack_entry.frame);
	doc.selection = [];
	
}

/////////////////////////////////////////////////////////////////////////
// MAIN
/////////////////////////////////////////////////////////////////////////

//fl.trace(&quot;Current timeline is &quot; + doc.getTimeline().name);

zero_transform = function(x_scale, y_scale)
{
	// If parameter weren&#039;t passed, load in the default values
	if(x_scale == undefined)
		x_scale = y_scale = 1.0;
	else if(y_scale == undefined)
		y_scale = x_scale;
		
	var original_selection = doc.selection;
	var original_timeline = doc.currentTimeline;
	
	for(var i = 0; i &#060; original_selection.length; i++)
	{
		obj = original_selection[i];
		doc.selectNone();
		doc.selection = [obj];
	
		// First make sure the selection is a symbol instance
		if(obj.elementType == &#034;instance&#034; &#038;&#038; obj.instanceType == &#034;symbol&#034;)
		{
			original_transform_matrix = obj.matrix;
			
			
			// First transform the contents of the symbol&#039;s timeline
			
			//fl.trace(&#034;Transforming the contents of &#034; + obj.libraryItem.name);
			doc.enterEditMode(&#034;inPlace&#034;);
			new_transform = {a:1/x_scale, b:0, c:0, d:1/y_scale, tx:0, ty:0};
			new_transform = fl.Math.concatMatrix(original_transform_matrix, new_transform);
			transformTimeline(new_transform);
			doc.exitEditMode();
			var edit_stack = save_edit_place();
			
			// Now correct the transform on all the instances of the symbol in the whole FLA
			
			//fl.trace(&#034;Corrrecting the transformation of all instnaces of &#034; + obj.libraryItem.name);
			new_transform.tx = new_transform.ty = 0;
			transform_global(obj.libraryItem, new_transform);	
			
			restore_edit_place(edit_stack);
		}
	}
}
&lt;/code&gt;

... And here&#039;s the code for the jsfl command that calls/includes that file:

&lt;code&gt;
/////////////////////////////////////////////////////////////////////////
//
//	Zero Transform
//
//	Programmed by David Johnston
// http://blog.pinkandaint.com/
//
//  Last modified 11:37 AM Tuesday, March 02, 2010
//
/////////////////////////////////////////////////////////////////////////


if(fl.getDocumentDOM() != null)
{

	// This script relies on &quot;Zero Transform.include&quot;, my library for the 
	// &quot;Zero Transform&quot; commands
	fl.runScript( fl.configURI + &quot;Commands/Zero Transform.include&quot; );
	
	zero_transform();
}
&lt;/code&gt;]]></description>
			<content:encoded><![CDATA[<p>That&#8217;s a pretty cool tool.  There seems to be something wrong with it that I can&#8217;t spot on first inspection of the code, though.  If I have multiple things selected on the same layer, it breaks apart one of them and then reports an error.  It looks like it&#8217;s obliterating the layer that the selected elements were on after it breaks apart the first symbol.</p>
<p>As for properly obeying the symbol&#8217;s transform (which your tool doesn&#8217;t currently do), I wrote a command that zeros the transform of a symbol by applying the symbol&#8217;s transform to all the elements on its timeline, then applying the inverse transform to all the instances of the symbol that exist in the document.  I bet it would be relatively simple to modify that functionality to work with this command.  Here&#8217;s the code if you&#8217;d like to give it a shot:</p>
<p><code><br />
/////////////////////////////////////////////////////////////////////////<br />
//<br />
// Zero Transform.include<br />
//<br />
// Programmed by David Johnston<br />
// http://blog.pinkandaint.com/<br />
// Last modified 2:17 PM Tuesday, December 29, 2009<br />
//<br />
// This is the include file for the Zero Transform commands.  To use,<br />
// include this file and call zero_transform() with optional parameters<br />
// to zero at a given scale (that is, the selected symbol instance will<br />
// be at the given scale, but visually be identical to its original<br />
// position)<br />
//<br />
//<br />
/////////////////////////////////////////////////////////////////////////</p>
<p>doc = flash.getDocumentDOM();<br />
timelines = doc.timelines;</p>
<p>//fl.outputPanel.clear();</p>
<p>/////////////////////////////////////////////////////////////////////////<br />
// transform_in_timeline = function(timeline, lib_item, trans)<br />
//<br />
// Transform all instances of lib_item in a timeline<br />
/////////////////////////////////////////////////////////////////////////</p>
<p>transform_in_timeline = function(lib_item, new_transform)<br />
{<br />
	var frame_index;<br />
	var layer;<br />
	var n = 0, m = 0;<br />
	timeline = doc.getTimeline();</p>
<p>	//fl.trace("Visiting " + timeline.name);</p>
<p>	for(n = 0; n &lt; timeline.layers.length; n++)<br />
	{<br />
		//fl.trace(&quot;\tlayer &quot; + n);<br />
		layer = timeline.layers[n];<br />
		frame_index = 0;<br />
		while(layer.frames[frame_index] != undefined)<br />
		{<br />
			elements = layer.frames[frame_index].elements;<br />
			//fl.trace(&quot;\t\tframe &quot; + frame_index);<br />
			for(m = 0; m &lt; elements.length; m++)<br />
			{<br />
				if(elements[m].elementType == &quot;instance&quot;)<br />
					if(elements[m].libraryItem == lib_item)<br />
					{<br />
						//fl.trace(&quot;found &quot; + lib_item.name + &quot; on &quot; + layer.name + &quot;, frame &quot; + (frame_index + 1) );<br />
						//fl.trace(&quot;old: &quot; + elements[m].skewX + &quot;, &quot; + elements[m].skewY);<br />
						old_matrix = elements[m].matrix;<br />
						old_tx = old_matrix.tx;<br />
						old_ty = old_matrix.ty;<br />
						old_matrix.tx = old_matrix.ty = 0;<br />
						new_matrix = fl.Math.concatMatrix(fl.Math.invertMatrix(new_transform), old_matrix);<br />
						new_matrix.tx = old_tx;<br />
						new_matrix.ty = old_ty;<br />
						elements[m].matrix = new_matrix;<br />
						//fl.trace(&quot;new: &quot; + elements[m].skewX + &quot;, &quot; + elements[m].skewY);<br />
					}<br />
			}<br />
			//fl.trace(&quot;duration: &quot; + layer.frames[frame_index].duration);<br />
			frame_index += layer.frames[frame_index].duration;<br />
		}<br />
	}</p>
<p>}</p>
<p>/////////////////////////////////////////////////////////////////////////<br />
// transform_global = function(lib_item, new_transform)<br />
//<br />
// Transform all instances of lib_item in the whole document<br />
/////////////////////////////////////////////////////////////////////////</p>
<p>transform_global = function(lib_item, new_transform)<br />
{<br />
	var n = 0;</p>
<p>	// First do it in all the timelines in the document</p>
<p>	for(n = 0; n &lt; timelines.length; n++)<br />
	{<br />
		doc.editScene(n)<br />
		transform_in_timeline(lib_item, new_transform);<br />
	}</p>
<p>	// Now do it in the timelines of all the library symbols</p>
<p>	//fl.trace(&quot;Now sybols&quot;);</p>
<p>	var items =  doc.library.items;<br />
	for(n = 0; n &lt; items.length; n++)<br />
	{<br />
		if(items[n] != lib_item)<br />
		{<br />
			// If it has a timeline, transform all instances of lib_item in that timeline</p>
<p>			if(items[n].itemType == &quot;movie clip&quot; || items[n].itemType == &quot;graphic&quot; || items[n].itemType == &quot;button&quot;)<br />
			{<br />
				doc.library.editItem(items[n].name);<br />
				transform_in_timeline(lib_item, new_transform);<br />
			}<br />
		}<br />
	}<br />
}</p>
<p>/////////////////////////////////////////////////////////////////////////<br />
// transformTimeline(trans_matrix)<br />
//<br />
// Transforms all elements on the current timeline<br />
/////////////////////////////////////////////////////////////////////////</p>
<p>transformTimeline = function(trans_matrix)<br />
{<br />
	var layer_locked = new Array();<br />
	var layer_visible = new Array();<br />
	var layernum, framenum;<br />
	var layers;<br />
	var frame_index;<br />
	var next_keyframe, this_next_key;</p>
<p>	layers = doc.getTimeline().layers;</p>
<p>	// Unlock and unhide all layers<br />
	for(layernum = 0; layernum &lt; layers.length; layernum++)<br />
	{<br />
		layer_locked[layernum] = layers[layernum].locked;<br />
 		layer_visible[layernum] = layers[layernum].visible;<br />
		layers[layernum].visible = true;<br />
		layers[layernum].locked = false;<br />
	}</p>
<p>	frame_index = 0;<br />
	while(frame_index &lt; doc.getTimeline().frameCount)<br />
	{<br />
		doc.getTimeline().currentFrame = frame_index;</p>
<p>		for(layernum = 0; layernum &lt; layers.length; layernum++)<br />
		{<br />
			// Check all the layers.  If this is a keyframe, unlock the layer.<br />
			// If not, lock it.<br />
			if(layers[layernum].frames[frame_index].startFrame == frame_index)<br />
				layers[layernum].locked = false;<br />
			else layers[layernum].locked = true;</p>
<p>			//fl.trace(&quot;layers[&quot; + layernum + &quot;].locked is &quot; + layers[layernum].locked);<br />
		}		</p>
<p>		doc.selectAll();</p>
<p>		// If anything is selected (i.e. these keyframes aren&#039;t empty), do the transformation<br />
		if(doc.selection.length)<br />
		{<br />
			//First group everything so we can set a pivot point without affecting a symbol instance&#039;s pivot point<br />
			doc.group();</p>
<p>			// Transform everything from (0,0)<br />
			doc.setTransformationPoint({x:0, y:0});<br />
			doc.transformSelection(trans_matrix.a, trans_matrix.b, trans_matrix.c, trans_matrix.d);<br />
			doc.unGroup();</p>
<p>		}</p>
<p>		// Set next_keyframe to a big number<br />
		next_keyframe = 0x7fff;</p>
<p>		for(layernum = 0; layernum &lt; layers.length; layernum++)<br />
		{<br />
			// If this layer&#039;s next keyframe is closer than next_keyframe, replace<br />
			// next_keyframe with the frame number of this layers&#039;s next key.</p>
<p>			if(layers[layernum].frames[frame_index] != undefined)<br />
			{<br />
				this_next_key = layers[layernum].frames[frame_index].startFrame + layers[layernum].frames[frame_index].duration;<br />
				if(this_next_key &lt; next_keyframe)<br />
					next_keyframe = this_next_key;<br />
			}<br />
		}<br />
		frame_index = next_keyframe;<br />
	}</p>
<p>	// return all the layers to their lock &amp; hide states<br />
	for(layernum = 0; layernum  1)<br />
	{<br />
		edit_stack_entry = edit_stack.pop();<br />
		doc.getTimeline().currentFrame = edit_stack_entry.frame;<br />
		doc.selection = [edit_stack_entry.object];<br />
		//fl.trace("re-editing " + doc.selection[0].libraryItem.name + " on frame " + edit_stack_entry.frame);<br />
		doc.enterEditMode("inPlace");<br />
	}</p>
<p>	edit_stack_entry = edit_stack.pop();<br />
	doc.getTimeline().currentFrame = edit_stack_entry.frame;<br />
	//fl.trace("final frame: " + edit_stack_entry.frame);<br />
	doc.selection = [];</p>
<p>}</p>
<p>/////////////////////////////////////////////////////////////////////////<br />
// MAIN<br />
/////////////////////////////////////////////////////////////////////////</p>
<p>//fl.trace("Current timeline is " + doc.getTimeline().name);</p>
<p>zero_transform = function(x_scale, y_scale)<br />
{<br />
	// If parameter weren't passed, load in the default values<br />
	if(x_scale == undefined)<br />
		x_scale = y_scale = 1.0;<br />
	else if(y_scale == undefined)<br />
		y_scale = x_scale;</p>
<p>	var original_selection = doc.selection;<br />
	var original_timeline = doc.currentTimeline;</p>
<p>	for(var i = 0; i &lt; original_selection.length; i++)<br />
	{<br />
		obj = original_selection[i];<br />
		doc.selectNone();<br />
		doc.selection = [obj];</p>
<p>		// First make sure the selection is a symbol instance<br />
		if(obj.elementType == &quot;instance&quot; &amp;&amp; obj.instanceType == &quot;symbol&quot;)<br />
		{<br />
			original_transform_matrix = obj.matrix;</p>
<p>			// First transform the contents of the symbol&#039;s timeline</p>
<p>			//fl.trace(&quot;Transforming the contents of &quot; + obj.libraryItem.name);<br />
			doc.enterEditMode(&quot;inPlace&quot;);<br />
			new_transform = {a:1/x_scale, b:0, c:0, d:1/y_scale, tx:0, ty:0};<br />
			new_transform = fl.Math.concatMatrix(original_transform_matrix, new_transform);<br />
			transformTimeline(new_transform);<br />
			doc.exitEditMode();<br />
			var edit_stack = save_edit_place();</p>
<p>			// Now correct the transform on all the instances of the symbol in the whole FLA</p>
<p>			//fl.trace(&quot;Corrrecting the transformation of all instnaces of &quot; + obj.libraryItem.name);<br />
			new_transform.tx = new_transform.ty = 0;<br />
			transform_global(obj.libraryItem, new_transform);	</p>
<p>			restore_edit_place(edit_stack);<br />
		}<br />
	}<br />
}<br />
</code></p>
<p>&#8230; And here&#8217;s the code for the jsfl command that calls/includes that file:</p>
<p><code><br />
/////////////////////////////////////////////////////////////////////////<br />
//<br />
//	Zero Transform<br />
//<br />
//	Programmed by David Johnston<br />
// http://blog.pinkandaint.com/<br />
//<br />
//  Last modified 11:37 AM Tuesday, March 02, 2010<br />
//<br />
/////////////////////////////////////////////////////////////////////////</p>
<p>if(fl.getDocumentDOM() != null)<br />
{</p>
<p>	// This script relies on "Zero Transform.include", my library for the<br />
	// "Zero Transform" commands<br />
	fl.runScript( fl.configURI + "Commands/Zero Transform.include" );</p>
<p>	zero_transform();<br />
}<br />
</code></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Benimation		</title>
		<link>https://ajarproductions.com/blog/2009/06/26/flash-extension-break-symbol-into-layers/comment-page-1/#comment-5166</link>

		<dc:creator><![CDATA[Benimation]]></dc:creator>
		<pubDate>Fri, 04 Dec 2009 22:56:28 +0000</pubDate>
		<guid isPermaLink="false">http://ajarproductions.com/blog/?p=491#comment-5166</guid>

					<description><![CDATA[This one is very useful. Now I can properly import swf files into After effects (otherwise symbols would be paused).
If you need an idea for an other extension: break all symbols into layers at once.]]></description>
			<content:encoded><![CDATA[<p>This one is very useful. Now I can properly import swf files into After effects (otherwise symbols would be paused).<br />
If you need an idea for an other extension: break all symbols into layers at once.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Mostafa		</title>
		<link>https://ajarproductions.com/blog/2009/06/26/flash-extension-break-symbol-into-layers/comment-page-1/#comment-5059</link>

		<dc:creator><![CDATA[Mostafa]]></dc:creator>
		<pubDate>Fri, 17 Jul 2009 06:15:44 +0000</pubDate>
		<guid isPermaLink="false">http://ajarproductions.com/blog/?p=491#comment-5059</guid>

					<description><![CDATA[Dear Justin,
I thought this might be two Extension. 
Thank anyway]]></description>
			<content:encoded><![CDATA[<p>Dear Justin,<br />
I thought this might be two Extension.<br />
Thank anyway</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Justin		</title>
		<link>https://ajarproductions.com/blog/2009/06/26/flash-extension-break-symbol-into-layers/comment-page-1/#comment-5058</link>

		<dc:creator><![CDATA[Justin]]></dc:creator>
		<pubDate>Fri, 17 Jul 2009 04:21:58 +0000</pubDate>
		<guid isPermaLink="false">http://ajarproductions.com/blog/?p=491#comment-5058</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://ajarproductions.com/blog/2009/06/26/flash-extension-break-symbol-into-layers/comment-page-1/#comment-5057&quot;&gt;Mostafa&lt;/a&gt;.

Mostafa,

I&#039;m not sure if I understand the problem. If this is a general Flash problem/question, the &lt;a href=&quot;http://forums.adobe.com&quot; rel=&quot;nofollow&quot;&gt;Adobe Forums&lt;/a&gt; are the best place to get answers. If this a question about an extension on this site, I&#039;ll need a little more information about the problem (and the steps to reproduce it).]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://ajarproductions.com/blog/2009/06/26/flash-extension-break-symbol-into-layers/comment-page-1/#comment-5057">Mostafa</a>.</p>
<p>Mostafa,</p>
<p>I&#8217;m not sure if I understand the problem. If this is a general Flash problem/question, the <a href="http://forums.adobe.com" rel="nofollow">Adobe Forums</a> are the best place to get answers. If this a question about an extension on this site, I&#8217;ll need a little more information about the problem (and the steps to reproduce it).</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Mostafa		</title>
		<link>https://ajarproductions.com/blog/2009/06/26/flash-extension-break-symbol-into-layers/comment-page-1/#comment-5057</link>

		<dc:creator><![CDATA[Mostafa]]></dc:creator>
		<pubDate>Thu, 16 Jul 2009 20:34:18 +0000</pubDate>
		<guid isPermaLink="false">http://ajarproductions.com/blog/?p=491#comment-5057</guid>

					<description><![CDATA[Hi. Thanks for this response. My Problem is fix. I thank you for files. However, please see this picture. 

http://i27.tinypic.com/29zalxf.jpg

I in two parts I&#039;m not Flash 10.0.2. Cell Phone me please How do I correct them.]]></description>
			<content:encoded><![CDATA[<p>Hi. Thanks for this response. My Problem is fix. I thank you for files. However, please see this picture. </p>
<p><a href="http://i27.tinypic.com/29zalxf.jpg" rel="nofollow ugc">http://i27.tinypic.com/29zalxf.jpg</a></p>
<p>I in two parts I&#8217;m not Flash 10.0.2. Cell Phone me please How do I correct them.</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/

Page Caching using Disk: Enhanced 
Database Caching using Disk (Request-wide modification query)

Served from: ajarproductions.com @ 2026-07-13 07:18:53 by W3 Total Cache
-->