﻿<?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>Keith Hair &#187; CS3</title>
	<atom:link href="http://keith-hair.net/blog/tag/cs3/feed/" rel="self" type="application/rss+xml" />
	<link>http://keith-hair.net/blog</link>
	<description>Scripting is fun like any other hobby</description>
	<lastBuildDate>Sat, 28 Jan 2012 05:04:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Finding elements with JSFL</title>
		<link>http://keith-hair.net/blog/2008/06/05/finding-elements-with-jsfl/</link>
		<comments>http://keith-hair.net/blog/2008/06/05/finding-elements-with-jsfl/#comments</comments>
		<pubDate>Thu, 05 Jun 2008 18:31:03 +0000</pubDate>
		<dc:creator>Keith H</dc:creator>
				<category><![CDATA[JSFL]]></category>
		<category><![CDATA[CS3]]></category>
		<category><![CDATA[Flash 8]]></category>

		<guid isPermaLink="false">http://keith-hair.com/blog/?p=11</guid>
		<description><![CDATA[Here's a JSFL function for returning an Array of all elements with a given instance name in whole Flash Document. I was trying to make something like JavaScript's "getElementsById()" method. My intent was to make this compatible with both Flash 8 and CS3 IDEs. Note: Unfortunately, this method will not find elements that are grouped. [...]]]></description>
			<content:encoded><![CDATA[<p>Here's a JSFL function for returning an Array of all elements with a given instance name in whole Flash Document.<br />
I was trying to make something like JavaScript's "getElementsById()" method.<br />
My intent was to make this compatible with both Flash 8 and CS3 IDEs.</p>
<p><em>Note: Unfortunately, this method will not find elements that are grouped.</em><br />
Let me know if this is helpful or if there is a better way to do this.</p>
<p>Example:</p>
<pre class="javascript">&nbsp;
fl.<span style="color: #006600;">outputPanel</span>.<span style="color: #006600;">clear</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #003366; font-weight: bold;">var</span> items=findObjects<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;mybox&quot;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #003366; font-weight: bold;">var</span> n=<span style="color: #CC0000;">0</span>;
<span style="color: #000066; font-weight: bold;">while</span><span style="color: #66cc66;">&#40;</span>n &lt; items.<span style="color: #006600;">length</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
	items<span style="color: #66cc66;">&#91;</span>n<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">rotation</span>=<span style="color: #CC0000;">45</span>;
	n++;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #000066;">alert</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;Found &quot;</span>+items.<span style="color: #006600;">length</span>+<span style="color: #3366CC;">&quot; items.&quot;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;</pre>
<p><span id="more-11"></span></p>
<pre class="javascript">&nbsp;
<span style="color: #009900; font-style: italic;">/*-------------------------------------------------------------------
findObjects
&nbsp;
Returns an Array of elements in FLA document that match instanceName.
If nothing matches instanceName, an Array with a length of 0 is returned.
--------------------------------------------------------------------*/</span>
<span style="color: #003366; font-weight: bold;">function</span> findObjects <span style="color: #66cc66;">&#40;</span>instanceName, inInstance<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #003366; font-weight: bold;">var</span> instances = <span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span>;
	<span style="color: #003366; font-weight: bold;">var</span> groups = <span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span>;
	<span style="color: #003366; font-weight: bold;">var</span> findObjectInTimeline = <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #66cc66;">&#40;</span>instance, <span style="color: #000066;">name</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #003366; font-weight: bold;">var</span> timeline;
		<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span>instance.<span style="color: #006600;">toString</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> == <span style="color: #3366CC;">&quot;[object SymbolInstance]&quot;</span> || instance.<span style="color: #006600;">toString</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> == <span style="color: #3366CC;">&quot;[object Frame]&quot;</span><span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#123;</span>
			timeline = instance.<span style="color: #006600;">timeline</span>;
		<span style="color: #66cc66;">&#125;</span>
		<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span>instance.<span style="color: #006600;">toString</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> == <span style="color: #3366CC;">&quot;[object Document]&quot;</span><span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#123;</span>
			timeline = instance;
		<span style="color: #66cc66;">&#125;</span>
		<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span>instance.<span style="color: #006600;">toString</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> == <span style="color: #3366CC;">&quot;[object Timeline]&quot;</span><span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#123;</span>
			timeline = instance;
		<span style="color: #66cc66;">&#125;</span>
		<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span>instance == fl.<span style="color: #006600;">getDocumentDOM</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#123;</span>
			timeline = instance.<span style="color: #006600;">getTimeline</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
		<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span>timeline == undefined<span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">null</span>;
		<span style="color: #66cc66;">&#125;</span>
		<span style="color: #003366; font-weight: bold;">var</span> checked = <span style="color: #003366; font-weight: bold;">new</span> Object <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #003366; font-weight: bold;">var</span> currentLayers = timeline.<span style="color: #006600;">layers</span>;
		<span style="color: #003366; font-weight: bold;">var</span> layObj;
		<span style="color: #003366; font-weight: bold;">var</span> frm;
		<span style="color: #003366; font-weight: bold;">var</span> found;
		<span style="color: #003366; font-weight: bold;">var</span> i = <span style="color: #CC0000;">0</span>;
&nbsp;
		<span style="color: #000066; font-weight: bold;">while</span> <span style="color: #66cc66;">&#40;</span>i &lt; currentLayers.<span style="color: #006600;">length</span><span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #003366; font-weight: bold;">var</span> layObj = currentLayers <span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span>;
			<span style="color: #003366; font-weight: bold;">var</span> frms = layObj.<span style="color: #006600;">frames</span>;
			<span style="color: #003366; font-weight: bold;">var</span> k = <span style="color: #CC0000;">0</span>;
			<span style="color: #000066; font-weight: bold;">while</span> <span style="color: #66cc66;">&#40;</span>k &lt; frms.<span style="color: #006600;">length</span><span style="color: #66cc66;">&#41;</span>
			<span style="color: #66cc66;">&#123;</span>
				<span style="color: #003366; font-weight: bold;">var</span> selArry = frms <span style="color: #66cc66;">&#91;</span>k<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">elements</span>;
				<span style="color: #003366; font-weight: bold;">var</span> n = <span style="color: #CC0000;">0</span>;
				<span style="color: #000066; font-weight: bold;">while</span> <span style="color: #66cc66;">&#40;</span>n &lt; selArry.<span style="color: #006600;">length</span><span style="color: #66cc66;">&#41;</span>
				<span style="color: #66cc66;">&#123;</span>
					<span style="color: #003366; font-weight: bold;">var</span> obj = selArry <span style="color: #66cc66;">&#91;</span>n<span style="color: #66cc66;">&#93;</span>;
					<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span>obj.<span style="color: #000066;">name</span> == <span style="color: #000066;">name</span><span style="color: #66cc66;">&#41;</span>
					<span style="color: #66cc66;">&#123;</span>
						found = obj;
						instances.<span style="color: #006600;">push</span> <span style="color: #66cc66;">&#40;</span>obj<span style="color: #66cc66;">&#41;</span>;
					<span style="color: #66cc66;">&#125;</span>
					<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span>obj.<span style="color: #006600;">libraryItem</span> != undefined<span style="color: #66cc66;">&#41;</span>
					<span style="color: #66cc66;">&#123;</span>
						<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span>obj.<span style="color: #006600;">libraryItem</span>.<span style="color: #000066;">name</span> != undefined<span style="color: #66cc66;">&#41;</span>
						<span style="color: #66cc66;">&#123;</span>
							<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span>checked <span style="color: #66cc66;">&#91;</span>obj.<span style="color: #006600;">libraryItem</span>.<span style="color: #000066;">name</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>
							<span style="color: #66cc66;">&#123;</span>
								n ++;
								<span style="color: #000066; font-weight: bold;">continue</span>;
							<span style="color: #66cc66;">&#125;</span><span style="color: #000066; font-weight: bold;">else</span>
							<span style="color: #66cc66;">&#123;</span>
								checked <span style="color: #66cc66;">&#91;</span>obj.<span style="color: #006600;">libraryItem</span>.<span style="color: #000066;">name</span><span style="color: #66cc66;">&#93;</span> = <span style="color: #003366; font-weight: bold;">true</span>;
							<span style="color: #66cc66;">&#125;</span>
						<span style="color: #66cc66;">&#125;</span>
						obj = findObjectInTimeline <span style="color: #66cc66;">&#40;</span>obj.<span style="color: #006600;">libraryItem</span>, <span style="color: #000066;">name</span><span style="color: #66cc66;">&#41;</span>;
						<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span>obj != <span style="color: #003366; font-weight: bold;">null</span><span style="color: #66cc66;">&#41;</span>
						<span style="color: #66cc66;">&#123;</span>
							found = obj
						<span style="color: #66cc66;">&#125;</span>
						obj = selArry <span style="color: #66cc66;">&#91;</span>n<span style="color: #66cc66;">&#93;</span>;
						<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span>obj.<span style="color: #006600;">libraryItem</span>.<span style="color: #006600;">timeline</span> != undefined<span style="color: #66cc66;">&#41;</span>
						<span style="color: #66cc66;">&#123;</span>
							obj = findObjectInTimeline <span style="color: #66cc66;">&#40;</span>obj.<span style="color: #006600;">libraryItem</span>.<span style="color: #006600;">timeline</span>, <span style="color: #000066;">name</span><span style="color: #66cc66;">&#41;</span>;
							<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span>obj != <span style="color: #003366; font-weight: bold;">null</span><span style="color: #66cc66;">&#41;</span>
							<span style="color: #66cc66;">&#123;</span>
								found = obj
							<span style="color: #66cc66;">&#125;</span>
						<span style="color: #66cc66;">&#125;</span>
					<span style="color: #66cc66;">&#125;</span>
					n ++;
				<span style="color: #66cc66;">&#125;</span>
				k ++;
			<span style="color: #66cc66;">&#125;</span>
			i ++;
		<span style="color: #66cc66;">&#125;</span>
		<span style="color: #000066; font-weight: bold;">return</span> found;
	<span style="color: #66cc66;">&#125;</span>
	<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span>inInstance == <span style="color: #003366; font-weight: bold;">null</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#123;</span>
		inInstance = fl.<span style="color: #006600;">getDocumentDOM</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
	findObjectInTimeline <span style="color: #66cc66;">&#40;</span>inInstance, instanceName<span style="color: #66cc66;">&#41;</span>;
	<span style="color: #000066; font-weight: bold;">return</span> instances;
<span style="color: #66cc66;">&#125;</span>
&nbsp;</pre>
<a href='http://www.hexosearch.com/se/submit.aspx?zlvz=&zqz=&zurlz=http://keith-hair.net/blog/2008/06/05/finding-elements-with-jsfl/&ztz=Finding elements with JSFL'><img src='http://keith-hair.net/blog/wp-content/plugins/hexosearch-button/logo16x16.png' width='16' height='16' border='0' style='vertical-align:middle' alt='Vote in HexoSearch' title='Vote in HexoSearch' /></a>]]></content:encoded>
			<wfw:commentRss>http://keith-hair.net/blog/2008/06/05/finding-elements-with-jsfl/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

