<?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>masputih &#187; Tips</title>
	<atom:link href="http://masputih.com/category/tips/feed" rel="self" type="application/rss+xml" />
	<link>http://masputih.com</link>
	<description>Coder for Hire</description>
	<lastBuildDate>Mon, 24 May 2010 08:48:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Bekerja dengan FlashDevelop, Flex SDK, dan Flash</title>
		<link>http://masputih.com/2009/07/flashdevelop-flex-sdk-flash</link>
		<comments>http://masputih.com/2009/07/flashdevelop-flex-sdk-flash#comments</comments>
		<pubDate>Wed, 15 Jul 2009 06:59:25 +0000</pubDate>
		<dc:creator>Anggie Bratadinata</dc:creator>
				<category><![CDATA[ActionScript 3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[practice]]></category>

		<guid isPermaLink="false">http://masputih.com/?p=482</guid>
		<description><![CDATA[Dalam artikel kali ini saya jelaskan cara bekerja dengan FlashDevelop, Flex SDK, dan Flash CS3/4. Flex SDK saya pakai untuk kompilasi proyek karena jauh lebih cepat daripada compiler bawaan Flash IDE. Di sini, Flash IDE saya gunakan untuk membuat library berisi objek visual, atau biasa disebut asset library. SWF yg saya buat dengan Flash IDE [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Dalam artikel kali ini saya jelaskan cara bekerja dengan FlashDevelop, Flex SDK, dan Flash CS3/4. Flex SDK saya pakai untuk kompilasi proyek karena jauh lebih cepat daripada <em>compiler</em> bawaan Flash IDE.</p>
<p>Di sini, Flash IDE saya gunakan untuk membuat <em>library</em> berisi objek visual, atau biasa disebut <em>asset library</em>. SWF yg saya buat dengan Flash IDE hanya berisi sedikit kode atau malah nggak ada kode sama sekali. Kode program utama saya buat dengan FlashDevelop dan saya kompilasi dengan Flex <em>compiler</em>.</p>
<p>Ada 2 cara untuk menggabungkan <em>asset library</em> dengan program utama yaitu:</p>
<p><span id="more-482"></span></p>
<ol>
<li>Dengan teknik <em>embedding</em> dimana SWF yang berisi aset dikompilasi jadi satu dengan program utama</li>
<li><em>Runtime asset</em> dimana SWF yang berisi aset dibuat terpisah dari program utama dan nanti dimuat pada saat program dijalankan.</li>
</ol>
<p>Kalo Anda ingin nyoba sendiri, pastikan dulu instalasi FlashDevelop sudah benar &amp; <em>path</em> Flex SDK sudah diset melalui menu Tools-&gt;Program Settings-&gt;AS3 Context.</p>
<p>Berikut ini direktori project yang saya buat di FlashDevelop.</p>
<p><a href="http://masputih.com/uploads/2009/07/proj-folder.jpg"><img src="http://masputih.com/uploads/2009/07/proj-folder.jpg" alt="proj-folder.jpg" title="proj-folder.jpg" width="281" height="228" class="aligncenter size-full wp-image-479" /></a></p>
<h3>Embedding</h3>
<p>Di dalam direktori /embedded/ saya buat sebuah file .fla yang berisi asset yang akan saya gunakan.</p>
<p>Ada dua MovieClip di dalamnya, masing-masing punya dynamic textfield dengan nama instance labelTxt. Keduanya juga saya beri linkage name sesuai dengan nama symbolnya.</p>
<p><a href="http://masputih.com/uploads/2009/07/symbols-1.jpg"><img src="http://masputih.com/uploads/2009/07/symbols-1.jpg" alt="symbols-1.jpg" title="symbols-1.jpg" width="353" height="244" class="aligncenter size-full wp-image-480" /></a></p>
<p>Setelah saya publish file embed-library.fla, FlashDevelop bisa mengenali <em>linkage</em> kedua symbol tersebut.</p>
<p><a href="http://masputih.com/uploads/2009/07/linkage.jpg"><img src="http://masputih.com/uploads/2009/07/linkage.jpg" alt="linkage.jpg" title="linkage.jpg" width="459" height="214" class="aligncenter size-full wp-image-481" /></a></p>
<p>Kemudian saya buat class <code>BlueSquare</code> dengan <code>labelTxt</code> bertipe <code>flash.text.TextField</code>, sama persis dengan instance yang saya buat di Flash. </p>
<p>Saya letakkan cursor di atas baris <code>public class ...</code> , lalu saya klik kanan simbol <code>Blue</code> di project folder dan klik <em>Insert into document</em>. Hasilnya seperti berikut:</p>
<div id="attachment_488" class="wp-caption aligncenter" style="width: 528px">
	<a href="http://masputih.com/2009/07/flashdevelop-flex-sdk-flash/embed-symbol" rel="attachment wp-att-488"><img src="http://masputih.com/uploads/2009/07/embed-symbol.jpg" alt="Insert into Document" title="embed-symbol" width="528" height="471" class="size-full wp-image-488" /></a>
	<p class="wp-caption-text">Insert into Document</p>
</div>
<p>Kemudian saya buat juga class <code>GreenSquare</code> dengan langkah-langkah sama seperti di atas, tapi yang di–<em>embed</em> adalah simbol <code>Green</code>. </p>
<p>Saya buat instance kedua class tersebut di Main.as.</p>
<pre class="brush:as3">
package
{
	import flash.display.Sprite;
	import flash.events.Event;

	public class Main extends Sprite{

		public function Main():void{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}

		private function init(e:Event = null):void {
			removeEventListener(Event.ADDED_TO_STAGE, init);
			// entry point

			var blue:BlueSquare = new BlueSquare();
			blue.labelTxt.text = "I'm blue";
			addChild(blue);

			var green:GreenSquare = new GreenSquare();
			green.x = blue.width + 10;
			green.labelTxt.text = "I'm green";
			addChild(green);

		}
	}
}
</pre>
<p>Hasilnya:</p>
<div id="attachment_497" class="wp-caption aligncenter" style="width: 369px">
	<a href="http://masputih.com/2009/07/flashdevelop-flex-sdk-flash/embed-output" rel="attachment wp-att-497"><img src="http://masputih.com/uploads/2009/07/embed-output.jpg" alt="Test Movie di FD" title="Hasil Test Movie " width="369" height="141" class="size-full wp-image-497" /></a>
	<p class="wp-caption-text">Test Movie di FD</p>
</div>
<h3>Runtime Asset</h3>
<p>Saya buat file xtlibrary.fla di dalam folder /src/ di FD. SWF hasil kompilasi file ini berisi aset yang akan saya muat pada saat runtime. </p>
<p>Di dalam file ini ada dua simbol mirip dengan file embed-library.fla, tapi berwarna merah dan hitam. Masing-masing simbol saya hubungkan dengan class di dalam folder /flashlib/ — sering disebut <em>Bound Class</em>. Karena kedua class ini berhubungan dengan simbol di .fla, maka saya nggak perlu menggunakan <em>tag</em> <code>[Embed ...]</code> seperti contoh sebelumnya. </p>
<p>Berikut ini seting linkage dari kedua simbol tersebut.</p>
<div id="attachment_502" class="wp-caption aligncenter" style="width: 331px">
	<a href="http://masputih.com/2009/07/flashdevelop-flex-sdk-flash/flashlib-export" rel="attachment wp-att-502"><img src="http://masputih.com/uploads/2009/07/flashlib-export.jpg" alt="Export Setting" title="flashlib-export" width="331" height="260" class="size-full wp-image-502" /></a>
	<p class="wp-caption-text">Export Setting</p>
</div>
<div id="attachment_503" class="wp-caption aligncenter" style="width: 500px">
	<a href="http://masputih.com/2009/07/flashdevelop-flex-sdk-flash/flashlib-linkage" rel="attachment wp-att-503"><img src="http://masputih.com/uploads/2009/07/flashlib-linkage.jpg" alt="Linkage dan Bound Class" title="flashlib-linkage" width="500" height="178" class="size-full wp-image-503" /></a>
	<p class="wp-caption-text">Linkage dan Bound Class</p>
</div>
<p>Supaya simbol tersebut bisa dikenali oleh SWF utama, saya harus meletakkan keduanya di stage dan memberinya nama instance seperti ini:</p>
<div id="attachment_506" class="wp-caption aligncenter" style="width: 457px">
	<a href="http://masputih.com/2009/07/flashdevelop-flex-sdk-flash/flashlib-instance-name" rel="attachment wp-att-506"><img src="http://masputih.com/uploads/2009/07/flashlib-instance-name.jpg" alt="Stage Instance" title="flashlib-instance-name" width="457" height="143" class="size-full wp-image-506" /></a>
	<p class="wp-caption-text">Stage Instance</p>
</div>
<p>File xtlibrary.fla saya publish ke dalam folder di mana SWF utama dari project ini ( fd.swf ) berada yaitu di folder /bin/. Hasilnya seperti gambar berikut:</p>
<div id="attachment_505" class="wp-caption aligncenter" style="width: 247px">
	<a href="http://masputih.com/2009/07/flashdevelop-flex-sdk-flash/xtlibarary-publish" rel="attachment wp-att-505"><img src="http://masputih.com/uploads/2009/07/xtlibarary-publish.jpg" alt="Library SWF" title="xtlibarary-publish" width="247" height="384" class="size-full wp-image-505" /></a>
	<p class="wp-caption-text">Library SWF</p>
</div>
<p>Saya tambahkan beberapa baris kode ke dalam Main class untuk memuat file xtlibrary.swf dan mengakses simbol di atas serta membuat objek Black &amp; Red lalu menampilkannya ( mulai baris 36 ).</p>
<pre class="brush:as3">
package
{
	import flash.display.Loader;
	import flash.display.LoaderInfo;
	import flash.display.MovieClip;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.net.URLRequest;
	import flash.system.ApplicationDomain;
	import flash.system.LoaderContext;
	import flash.utils.getDefinitionByName;
	import flash.utils.getQualifiedClassName;
	import flashlib.BlackSquare;
	import flashlib.RedSquare;

	public class Main extends Sprite{

		public function Main():void{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}

		private function init(e:Event = null):void {
			removeEventListener(Event.ADDED_TO_STAGE, init);
			// entry point

			var blue:BlueSquare = new BlueSquare();
			blue.labelTxt.text = "I'm blue";
			addChild(blue);

			var green:GreenSquare = new GreenSquare();
			green.x = blue.width + 10;
			green.labelTxt.text = "I'm green";
			addChild(green);

			var ctx:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain);

			var ldr:Loader = new Loader();
			ldr.contentLoaderInfo.addEventListener(Event.INIT, onLoadInit);
			ldr.load(new URLRequest("xtlibrary.swf"), ctx);

		}

		private function onLoadInit(e:Event):void {

			var assetLib:MovieClip = LoaderInfo(e.target).content as MovieClip;

			var redClassName:String = getQualifiedClassName(assetLib['red']);
			var redClassRef:* = getDefinitionByName(redClassName);

			var red:RedSquare = new redClassRef() as RedSquare;
			red.labelTxt.text = "I'm red";
			red.y = 100;
			addChild(red);

			var blackClassName:String = getQualifiedClassName(assetLib['black']);
			var blackClassRef:* = getDefinitionByName(blackClassName);

			var black:BlackSquare = new blackClassRef() as BlackSquare;
			black.labelTxt.text = "I'm black";
			black.y = 100;
			black.x = red.width + 10;
			addChild(black);
		}
	}
}
</pre>
<p>Di dalam kode di atas, saya mengakses instance kedua simbol melalui nama stage instance mereka seperti ini :</p>
<pre class="codeblock"><code>assetLib['red']
assetLib['black']
</code></pre>
<p>Hasil test movie :</p>
<div id="attachment_507" class="wp-caption aligncenter" style="width: 369px">
	<a href="http://masputih.com/2009/07/flashdevelop-flex-sdk-flash/xt-output" rel="attachment wp-att-507"><img src="http://masputih.com/uploads/2009/07/xt-output.jpg" alt="Test Movie dgn library eksternal" title="xt-output" width="369" height="141" class="size-full wp-image-507" /></a>
	<p class="wp-caption-text">Test Movie dgn library eksternal</p>
</div>
<p>Oke, gitu cara saya kerja kalo saya perlu pakai aset yang dibuat dengan Flash.<br />
Semoga bermanfaat. Contoh projectnya bisa diunduh di bawah ini :</p>
<div class="box dl_box"><a href="http://masputih.com/wordpress/wp-content/plugins/download-monitor/download.php?id=fd.rar" title="Downloaded 158 times">→ FD-library.rar</a></div>
]]></content:encoded>
			<wfw:commentRss>http://masputih.com/2009/07/flashdevelop-flex-sdk-flash/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
