<?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>پادشاه فلش &#187; URLRequest</title>
	<atom:link href="http://blog.iflashlord.com/tag/urlrequest/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.iflashlord.com</link>
	<description>دست نوشته های یک پادشاه فلش</description>
	<lastBuildDate>Wed, 11 Jan 2012 12:09:13 +0000</lastBuildDate>
	<language>fa</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>ساخت تابع getURL در اکشن اسکریپت ۳</title>
		<link>http://blog.iflashlord.com/1390/08/%d8%b3%d8%a7%d8%ae%d8%aa-%d8%aa%d8%a7%d8%a8%d8%b9-geturl-%d8%af%d8%b1-%d8%a7%da%a9%d8%b4%d9%86-%d8%a7%d8%b3%da%a9%d8%b1%db%8c%d9%be%d8%aa-3/</link>
		<comments>http://blog.iflashlord.com/1390/08/%d8%b3%d8%a7%d8%ae%d8%aa-%d8%aa%d8%a7%d8%a8%d8%b9-geturl-%d8%af%d8%b1-%d8%a7%da%a9%d8%b4%d9%86-%d8%a7%d8%b3%da%a9%d8%b1%db%8c%d9%be%d8%aa-3/#comments</comments>
		<pubDate>Fri, 18 Nov 2011 06:54:14 +0000</pubDate>
		<dc:creator>بهروز پولادرگ</dc:creator>
				<category><![CDATA[ادوبی فلش]]></category>
		<category><![CDATA[اکشن اسکریپت]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[actionscript 3]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[catch]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[flash.net.navigateToURL]]></category>
		<category><![CDATA[flash.net.URLRequest]]></category>
		<category><![CDATA[getURL]]></category>
		<category><![CDATA[navigateToURL]]></category>
		<category><![CDATA[target]]></category>
		<category><![CDATA[try]]></category>
		<category><![CDATA[URI]]></category>
		<category><![CDATA[URL]]></category>
		<category><![CDATA[URLRequest]]></category>
		<category><![CDATA[آرگمان]]></category>
		<category><![CDATA[اکشن اسکریپت 2]]></category>
		<category><![CDATA[اکشن اسکریپت 3]]></category>
		<category><![CDATA[فلش]]></category>

		<guid isPermaLink="false">http://blog.iflashlord.com/?p=1638</guid>
		<description><![CDATA[اگر با اکشن اسکریپت ۲ کار کرده باشید حتما می دانید ،برای درخواست های بازکردن لینک ها و آدرس های وب و درخواست های وب از فرمان getURL استفاده می شود. البته این تابع به این شکل دیگر در اکشن اسکریپت ۳ پشتیبانی نمی شود. در این مطلب می خواهیم این تابع را با همان [...]]]></description>
			<content:encoded><![CDATA[<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">
	<img src="http://blog.iflashlord.com/wp-content/uploads/2011/11/geturl_iflashlord.jpg" alt="iflashlord.com" />
	</p><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">اگر با اکشن اسکریپت ۲ کار کرده باشید حتما می دانید ،برای درخواست های بازکردن لینک ها و آدرس های وب و درخواست های وب از فرمان getURL استفاده می شود. البته این تابع به این شکل دیگر در اکشن اسکریپت ۳ پشتیبانی نمی شود. در این مطلب می خواهیم این تابع را با همان نام قدیمی و آرگمان های قدیمی برای اکشن اسکریپت ۳ آماده کنیم.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><span id="more-1638"></span></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">ابتدا کلاس های مورد نیاز را import می کنیم</p>
<pre class="brush: as3; title: ; notranslate">
import flash.net.URLRequest;
import flash.net.navigateToURL;
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در مرحله بعد ما تابعی با همان نام (getURL) تعریف می کنیم و آرگمان ها را نیز به همان صورت معرفی می کنیم ، آرگمان اول در getURL مربوطه به آدرس (URL) و آرگمان دوم target که به نوع باز شدن مربوطه می شد.</p>
<pre class="brush: as3; title: ; notranslate">
function getURL(url:String, target:String = null)
{
	try
	{
		navigateToURL(new URLRequest(url), target);
	}
	catch (error:Error)
	{
		trace(&quot;[getURL] &quot;+error);
	}
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در نهایت بخش اصلی کد ما که آن را درون try می نویسیم تا بتوانیم خطای احتمالی آن را catch کنیم. در این بخش طبق استاندارد جدید اکشن اسکرپیت ۳ برای بازکردن لینک ها از کلاس های navigateToURL و URLRequest استفاده می کنیم. که نقش URLRequest مشخص کردن محتوای متنی به عنوان درخواست URL می باشد و نقش navigateToURL باز کردن پیوند (link) طبق آرگمان های ورودی می باشد.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">حال می توانید با سرعت بیشتر و مثل تابع getURL درخواست های مربوطه به پیوند های خودتان را اجرا نمایید.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iflashlord.com/1390/08/%d8%b3%d8%a7%d8%ae%d8%aa-%d8%aa%d8%a7%d8%a8%d8%b9-geturl-%d8%af%d8%b1-%d8%a7%da%a9%d8%b4%d9%86-%d8%a7%d8%b3%da%a9%d8%b1%db%8c%d9%be%d8%aa-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>بررسی وجود و یا عدم وجود فایل در AS3</title>
		<link>http://blog.iflashlord.com/1390/08/%d8%a8%d8%b1%d8%b1%d8%b3%db%8c-%d9%88%d8%ac%d9%88%d8%af-%d9%88-%db%8c%d8%a7-%d8%b9%d8%af%d9%85-%d9%88%d8%ac%d9%88%d8%af-%d9%81%d8%a7%db%8c%d9%84-%d8%af%d8%b1-as3/</link>
		<comments>http://blog.iflashlord.com/1390/08/%d8%a8%d8%b1%d8%b1%d8%b3%db%8c-%d9%88%d8%ac%d9%88%d8%af-%d9%88-%db%8c%d8%a7-%d8%b9%d8%af%d9%85-%d9%88%d8%ac%d9%88%d8%af-%d9%81%d8%a7%db%8c%d9%84-%d8%af%d8%b1-as3/#comments</comments>
		<pubDate>Tue, 01 Nov 2011 01:20:42 +0000</pubDate>
		<dc:creator>بهروز پولادرگ</dc:creator>
				<category><![CDATA[ادوبی فلش]]></category>
		<category><![CDATA[اکشن اسکریپت]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[actionscript 3]]></category>
		<category><![CDATA[addEventListener]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Event.COMPLETE]]></category>
		<category><![CDATA[IOErrorEvent]]></category>
		<category><![CDATA[IO_ERROR]]></category>
		<category><![CDATA[load]]></category>
		<category><![CDATA[removeEventListener]]></category>
		<category><![CDATA[URLLoader]]></category>
		<category><![CDATA[URLRequest]]></category>
		<category><![CDATA[اکشن اسکریپت 3]]></category>
		<category><![CDATA[رویداد]]></category>
		<category><![CDATA[فلش]]></category>
		<category><![CDATA[وجود نداشتن فایل]]></category>
		<category><![CDATA[چک کردن وجود فایل]]></category>

		<guid isPermaLink="false">http://blog.iflashlord.com/?p=1486</guid>
		<description><![CDATA[در این مطلب با یک ترفند ساده و با استفاده از کلاس‌های URLLoader و URLRequest وجود و یا عدم وجود یک فایل در ActionScript 3.0 بررسی می‌شود. بدیهی است که کاربرد اصلی این کلاس‌ها بررسی وجود و یا عدم وجود فایل نیست، اما می‌توان از آنها برای این مقصود استفاده کرد. ۱- برای این منظور ابتدا کلاس‌های [...]]]></description>
			<content:encoded><![CDATA[<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">
	<img src="http://blog.iflashlord.com/wp-content/uploads/2011/11/file_exists_as3_iflashlord.jpg" alt="iflashlord.com" />
	</p><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در این مطلب با یک ترفند ساده و با استفاده از کلاس‌های URLLoader و URLRequest وجود و یا عدم وجود یک فایل در ActionScript 3.0 بررسی می‌شود. بدیهی است که کاربرد اصلی این کلاس‌ها بررسی وجود و یا عدم وجود فایل نیست، اما می‌توان از آنها برای این مقصود استفاده کرد.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><span id="more-1486"></span></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">۱- برای این منظور ابتدا کلاس‌های مورد نیاز را import کنید.</p>
<pre class="brush: as3; title: ; notranslate">
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.IOErrorEvent;
import flash.events.Event;
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">2- حالا باید یک متغیر از نوع URLLoader تعریف کنیم تا فایل مورد نظر را load کند. در این جا با تعریف دو Event Listener وضعیت لود شدن یا لود نشدن فایل را بررسی می‌کنیم.</p>
<pre class="brush: as3; title: ; notranslate">
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, loaded);
loader.addEventListener(IOErrorEvent.IO_ERROR, exit);

loader.load(new URLRequest(&quot;D:/Programs/Test.exe&quot;));
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">دقت کنید که در معرفی آدرس فایل از / به جای \ استفاده شده است.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">۳- حالا تابعی را می‌نویسیم که بعد از لود موفق فایل فراخوانی می‌شود.</p>
<pre class="brush: as3; title: ; notranslate">
function loaded(e:Event):void
{
	trace(&quot;File Exists.&quot;);
	loader.removeEventListener(Event.COMPLETE, loaded);
	loader.removeEventListener(IOErrorEvent.IO_ERROR, exit);
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">دو دستور removeEventListener برای بهینه سازی پروژه اضافه شده اند.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">۴- در نهایت تابعی را می‌نویسیم که در صورت عدم لود شدن فایل فراخوانی می‌شود.</p>
<pre class="brush: as3; title: ; notranslate">
function exit(e:IOErrorEvent):void
{
	trace(&quot;File not Found.&quot;);
	loader.removeEventListener(Event.COMPLETE, loaded);
	loader.removeEventListener(IOErrorEvent.IO_ERROR, exit);
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">لازم به ذکر است که تنها عدم وجود فایل موجب فراخوانی تابع بالا نمی‌شود و ممکن است دلایل دیگری (به جز عدم وجود فایل) موجب بروز خطا شود.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iflashlord.com/1390/08/%d8%a8%d8%b1%d8%b1%d8%b3%db%8c-%d9%88%d8%ac%d9%88%d8%af-%d9%88-%db%8c%d8%a7-%d8%b9%d8%af%d9%85-%d9%88%d8%ac%d9%88%d8%af-%d9%81%d8%a7%db%8c%d9%84-%d8%af%d8%b1-as3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>فشرده سازی فایل‌ها و استخراج فایل Zip در پروژه Air</title>
		<link>http://blog.iflashlord.com/1390/08/%d9%81%d8%b4%d8%b1%d8%af%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-%d9%81%d8%a7%db%8c%d9%84%e2%80%8c%d9%87%d8%a7-%d9%88-%d8%a7%d8%b3%d8%aa%d8%ae%d8%b1%d8%a7%d8%ac-%d9%81%d8%a7%db%8c%d9%84-zip/</link>
		<comments>http://blog.iflashlord.com/1390/08/%d9%81%d8%b4%d8%b1%d8%af%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-%d9%81%d8%a7%db%8c%d9%84%e2%80%8c%d9%87%d8%a7-%d9%88-%d8%a7%d8%b3%d8%aa%d8%ae%d8%b1%d8%a7%d8%ac-%d9%81%d8%a7%db%8c%d9%84-zip/#comments</comments>
		<pubDate>Mon, 31 Oct 2011 01:08:15 +0000</pubDate>
		<dc:creator>بهروز پولادرگ</dc:creator>
				<category><![CDATA[ادوبی ایر]]></category>
		<category><![CDATA[ادوبی فلش]]></category>
		<category><![CDATA[اکشن اسکریپت]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[addEventListener]]></category>
		<category><![CDATA[addFile]]></category>
		<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[browseForDirectory]]></category>
		<category><![CDATA[browseForOpen]]></category>
		<category><![CDATA[ByteArray]]></category>
		<category><![CDATA[ChecksumUtil]]></category>
		<category><![CDATA[close]]></category>
		<category><![CDATA[Components]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Create Zip file]]></category>
		<category><![CDATA[deng.fzip]]></category>
		<category><![CDATA[desktopDirectory]]></category>
		<category><![CDATA[enabled]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Event.SELECT]]></category>
		<category><![CDATA[Extract zip file]]></category>
		<category><![CDATA[FileFilter]]></category>
		<category><![CDATA[FileMode.WRITE]]></category>
		<category><![CDATA[FileStream]]></category>
		<category><![CDATA[filesystem]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[for]]></category>
		<category><![CDATA[FZip]]></category>
		<category><![CDATA[FZipEvent.FILE_LOADED]]></category>
		<category><![CDATA[libs]]></category>
		<category><![CDATA[List data Zip File]]></category>
		<category><![CDATA[make zip file with adobe air]]></category>
		<category><![CDATA[open]]></category>
		<category><![CDATA[position]]></category>
		<category><![CDATA[resolvePath]]></category>
		<category><![CDATA[serialize]]></category>
		<category><![CDATA[source_extract_zip_list]]></category>
		<category><![CDATA[URLRequest]]></category>
		<category><![CDATA[writeBytes]]></category>
		<category><![CDATA[Zip]]></category>
		<category><![CDATA[zipEntry]]></category>
		<category><![CDATA[استخراج]]></category>
		<category><![CDATA[استخراج فایل Zip]]></category>
		<category><![CDATA[اکشن اسکریپت 3]]></category>
		<category><![CDATA[ایر]]></category>
		<category><![CDATA[زیپ]]></category>
		<category><![CDATA[ساخت فایل Zip]]></category>
		<category><![CDATA[ساخت فایل زیپ]]></category>
		<category><![CDATA[فایل زیپ]]></category>
		<category><![CDATA[فشرده سازی]]></category>
		<category><![CDATA[فلش]]></category>
		<category><![CDATA[نمایش فهرست]]></category>

		<guid isPermaLink="false">http://blog.iflashlord.com/?p=1466</guid>
		<description><![CDATA[در این مطلب نحوه فشرده سازی فایل‌ها به صورت zip و استخراج فایل‌های فشرده شده با فرمت zip و نمایش لیست محتویات فایل zip آموزش داده می‌شود. همچنین در این درس استفاده از کلاسه‌های swc آموزش داده می‌شود. دانلود : components.zip &#124; source_extract_zip_list.zip قبل از شروع فایل components.zip را دانلود کنید و فایل‌های داخل آنرا [...]]]></description>
			<content:encoded><![CDATA[<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">
	<img src="http://blog.iflashlord.com/wp-content/uploads/2011/10/extract_zip_list_iflashlord.jpg" alt="iflashlord.com" />
	</p><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در این مطلب نحوه فشرده سازی فایل‌ها به صورت zip و استخراج فایل‌های فشرده شده با فرمت zip و نمایش لیست محتویات فایل zip آموزش داده می‌شود. همچنین در این درس استفاده از کلاسه‌های swc آموزش داده می‌شود.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><span id="more-1466"></span></p>
<blockquote><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">دانلود : <a href="http://blog.iflashlord.com/wp-content/uploads/2011/10/components.zip">components.zip</a> | <a href="http://blog.iflashlord.com/wp-content/uploads/2011/10/source_extract_zip_list.zip">source_extract_zip_list.zip</a></p></blockquote>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">قبل از شروع فایل <a href="http://blog.iflashlord.com/wp-content/uploads/2011/10/components.zip">components.zip</a> را دانلود کنید و فایل‌های داخل آنرا با توجه به محل نصب Flash در پوشه libs کپی کنید.</p>
<blockquote>
<pre>install Path:
\Adobe\Adobe Flash CS5\Common\Configuration\ActionScript 3.0\libs</pre>
</blockquote>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><strong>فشرده سازی فایل‌ها</strong></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">۱- برنامه Flash را اجرا کنید.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">۲-  یک پروژه جدید Air ایجاد کنید.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">۳- حال کلاسه‌های مورد نظر را import کنید.</p>
<pre class="brush: as3; title: ; notranslate">
import deng.fzip.*;
import deng.utils.ChecksumUtil;
import flash.filesystem.File;
import flash.utils.ByteArray;
import flash.filesystem.FileStream;
import flash.filesystem.FileMode;
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">4- در ادامه باید ۳ متغیر ایجاد کنید و فایل مورد نظر را که می‌خواهید فشرده شود تعریف نمایید.</p>
<pre class="brush: as3; title: ; notranslate">
var zip:FZip = new FZip();
var ba:ByteArray = new ByteArray();
var file:File = new File();
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">5- با کد resolvePath فایل مورد نظر را به کلاسه File معرفی کنید. (به جای c:/test.txt آدرس فایل مورد نظرتان را بنویسید. دقت کنید که به جای “\” از “/” استفاده نمایید.)</p>
<pre class="brush: as3; title: ; notranslate">
file = file.resolvePath(&quot;c:/test.txt&quot;);
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">6- حال باید فایل مورد نظر و محتویات آنرا به متغیر zip معرفی کنید. همچنین واسطه ByteArray را هم باید به zip معرفی کنید.</p>
<pre class="brush: as3; title: ; notranslate">
zip.addFile(file.name,file.data);
zip.serialize(ba);
ba.position = 0;
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">7- در نهایت نیاز است که آدرس فایل خروجی (با فرمت zip) را تعریف کرده و به وسیله یک FileStream اطلاعات تبدیل شده را روی آن دخیره کرد.</p>
<pre class="brush: as3; title: ; notranslate">
var finalZip:File = File.desktopDirectory.resolvePath(“test.zip”);
var fs:FileStream = new FileStream();
fs.open(finalZip,FileMode.WRITE);
fs.writeBytes(ba);
fs.close();
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><strong>استخراج فایل Zip</strong></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">1- یک پروژه جدید Air ایجاد کنید.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">۲- از منوی Window پنل Components را فعال کنید.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">۳- از دسته User Interface گزینه Button را انتخاب کنید و ۲ بار آنرا به داخل صفحه Drag کنید.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">۴- در پنل Properties، نام Instance دکمه‌ها را به ترتیب load_btn و extract بگذارید و تنظیمات مربوطه را به صورت زیر انجام دهید.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><img class="alignnone size-full wp-image-1468" title="buttons_load_extract_iflashlord" src="http://blog.iflashlord.com/wp-content/uploads/2011/10/buttons_load_extract_iflashlord.jpg" alt="" width="472" height="220" /></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">۵- حال کلاسه‌های مورد نظر را import کنید و متغیرهای مورد نیاز را برای تعریف فایل zip ایجاد کنید.</p>
<pre class="brush: as3; title: ; notranslate">
import flash.filesystem.*;
import flash.net.FileFilter;
import nochump.util.zip.*;
import flash.events.Event;
var zipInput:File = new File();
var zipOutput:File = new File();
var zipFile:ZipFile;
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">6- در ادامه برای هر دکمه یک Event Listener تعریف کنید تا در هر بار کلیک توابع مربوطه اجرا شود.</p>
<pre class="brush: as3; title: ; notranslate">
load_btn.addEventListener(&quot;click&quot;, loadZIP);
extract.addEventListener(&quot;click&quot;, extractZIP);
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">7- تابع loadZip را که بعد از کلیک روی دکمه load_btn فراخوانی می‌شود، به صورت زیر تعریف کنید. بعد از کلیک روی این دکمه یک پنجره برای انتخاب فایل zip اجرا می‌شود.</p>
<pre class="brush: as3; title: ; notranslate">
function loadZIP(e:Event):void
{
	var filter:FileFilter = new FileFilter(&quot;ZIP&quot;,&quot;*.zip&quot;);
	zipInput.browseForOpen(&quot;Open ZIP file&quot;,[filter]);
	zipInput.addEventListener(Event.SELECT, onSelect);
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">اجزای مختلف این تابع به صورت زیر است:</p>
<ul>
<li>filter: یک متغیر از نوع FileFilter برای تعریف فرمت Zip که بعد از کلیک روی دکمه مربوطه در پنجره انتخاب فایل نمایش داده می‌شود.</li>
<li>browseForOpen: پنجره انتخاب فایل را نشان می‌دهد و عنوان آن در اینجا برای مثال “Open Zip file” و فرمت فایل‌های انتخابی filter می‌باشد.</li>
</ul>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">۸- حال باید تابع onSelect را که بعد از انتخاب فایل فراخوانی می‌شود، تعریف کنید.</p>
<pre class="brush: as3; title: ; notranslate">
function onSelect(e:Event):void
{
	var stream:FileStream = new FileStream();
	stream.open(zipInput,FileMode.READ);
	zipFile = new ZipFile(stream);
	extract.enabled = true;
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در این تابع:</p>
<ul>
<li>stream: متغیری از نوع FileStream است که فایل zip انتخاب شده را در برنامه به جریان می‌اندازد.</li>
<li>zipFile: متغیری است که در ابتدا ایجاد شد و در اینجا stream به آن معرفی می‌شود.</li>
</ul>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">۹- تابع extractZIP که بعد از کلیک روی دکمه extract فراخوانی می‌شود، به صورت زیر تعریف می‌شود. در این تابع یک پنجره برای انتخاب پوشه مقصد (جایی که فایل zip باید استخراج شود) نمایش داده می‌شود.</p>
<pre class="brush: as3; title: ; notranslate">
function extractZIP(e:Event):void
{
	zipOutput.browseForDirectory(&quot;Select Directory for extract&quot;);
	zipOutput.addEventListener(Event.SELECT, onDirSelect);
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">10- درنهایت تابع onDirSelect را که بعد از انتخاب پوشه مقصد فراخوانی می‌شود، به صورت زیر تعریف کنید.</p>
<pre class="brush: as3; title: ; notranslate">
function onDirSelect(e:Event):void
{
	for (var i:uint = 0; i&lt;zipFile.entries.length; i++)
	{
		var zipEntry:ZipEntry = zipFile.entries[i] as ZipEntry;
		if (! zipEntry.isDirectory())
		{
			var targetDir:File = e.target as File;
			var entryFile:File = new File();
			entryFile = targetDir.resolvePath(zipEntry.name);
			var entry:FileStream = new FileStream();
			entry.open(entryFile, FileMode.WRITE);
			entry.writeBytes(zipFile.getInput(zipEntry));
			entry.close();
		}
		trace(&quot;Finished.&quot;);
	}
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در این تابع:</p>
<ul>
<li>یک حلقه for ایجاد شده است که به تعداد فایل‌های داخل فایل zip تکرار می‌شود.</li>
<li>در داخل حلقه یک متغیر از نوع ZipEntry تعریف شده است که محتویات فایل zip را یکی یکی معرفی می‌کند.</li>
<li>همچنین در داخل حلقه، یک دستور if وجود دارد که مطمئن می‌شود، فایل ورودی از zipEntry یک پوشه نباشد.</li>
<li>در ادامه فایل ورودی به وسیله یک FileStream در پوشه مقصد ذخیره می‌شود.</li>
<li>در نهایت بعد از تکمیل استخراج فایل zip، عبارت Finished نشان داده می‌شود.</li>
</ul>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><strong>نمایش فهرست فایل‌های داخل Zip</strong></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">با استفاده از کلاسه‌های swc نصب شده در ابتدای این درس می‌توانید فهرست فایل ‌های داخل Zip را نمایش دهید. بدین منظور از کدهای زیر استفاده کنید.</p>
<pre class="brush: as3; title: ; notranslate">
import deng.fzip.*;
import deng.utils.ChecksumUtil;
import flash.filesystem.File;
import flash.utils.ByteArray;
import flash.events.Event;
import flash.net.URLRequest;

var zip:FZip = new FZip();
zip.addEventListener(FZipEvent.FILE_LOADED, fileLoaded);
zip.load(new URLRequest(&quot;d:/test.zip&quot;));

function fileLoaded(e:FZipEvent):void
{
	var file:FZipFile = e.file;
	trace(&quot;File Loaded: &quot; + file.filename);
	trace(&quot; &quot; + file.sizeCompressed);
	trace(&quot; &quot; + file.sizeUncompressed);
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.iflashlord.com/1390/08/%d9%81%d8%b4%d8%b1%d8%af%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-%d9%81%d8%a7%db%8c%d9%84%e2%80%8c%d9%87%d8%a7-%d9%88-%d8%a7%d8%b3%d8%aa%d8%ae%d8%b1%d8%a7%d8%ac-%d9%81%d8%a7%db%8c%d9%84-zip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>اعمال یک StyleSheet خارجی به فیلد متنی</title>
		<link>http://blog.iflashlord.com/1390/08/%d8%a7%d8%b9%d9%85%d8%a7%d9%84-%db%8c%da%a9-stylesheet-%d8%ae%d8%a7%d8%b1%d8%ac%db%8c-%d8%a8%d9%87-%d9%81%db%8c%d9%84%d8%af-%d9%85%d8%aa%d9%86%db%8c/</link>
		<comments>http://blog.iflashlord.com/1390/08/%d8%a7%d8%b9%d9%85%d8%a7%d9%84-%db%8c%da%a9-stylesheet-%d8%ae%d8%a7%d8%b1%d8%ac%db%8c-%d8%a8%d9%87-%d9%81%db%8c%d9%84%d8%af-%d9%85%d8%aa%d9%86%db%8c/#comments</comments>
		<pubDate>Sun, 30 Oct 2011 01:58:05 +0000</pubDate>
		<dc:creator>بهروز پولادرگ</dc:creator>
				<category><![CDATA[ادوبی فلش]]></category>
		<category><![CDATA[اکشن اسکریپت]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[سی اس اس]]></category>
		<category><![CDATA[actionscript 3]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[COMPLETE]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[External]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[load]]></category>
		<category><![CDATA[parseCSS]]></category>
		<category><![CDATA[StyleSheet]]></category>
		<category><![CDATA[text]]></category>
		<category><![CDATA[URLLoader]]></category>
		<category><![CDATA[URLRequest]]></category>
		<category><![CDATA[اکشن اسکریپت 3]]></category>
		<category><![CDATA[بارگزاری]]></category>
		<category><![CDATA[فلش]]></category>
		<category><![CDATA[لود]]></category>

		<guid isPermaLink="false">http://blog.iflashlord.com/?p=1493</guid>
		<description><![CDATA[در این مطلب به روش بارگزاری یک فایل قالب بندی CSS و اعمال آن به یک فیلد متنی (Text Fild) می پردازیم ، فایل Css ما خارج از پروژه می باشد (External) ما بعد از بارگزاری آن و آماده سازی ،آن را به باکس متنی خود اعمال می کنیم. این روش برای محتوای HTML بارگزاری [...]]]></description>
			<content:encoded><![CDATA[<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">
	<img src="http://blog.iflashlord.com/wp-content/uploads/2011/10/css_external_as3_iflashlord.jpg" alt="iflashlord.com" />
	</p><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در این مطلب به روش بارگزاری یک فایل قالب بندی CSS و اعمال آن به یک فیلد متنی (Text Fild) می پردازیم ، فایل Css ما خارج از پروژه می باشد (External) ما بعد از بارگزاری آن و آماده سازی ،آن را به باکس متنی خود اعمال می کنیم. این روش برای محتوای HTML بارگزاری شده در تکست فیلد های کاربرد زیادی دارد و می توانید توسط این روش بعد از اتمام پروژه بدون تغییر در فایل فلش تغییرات مورد نیاز خود را روی متون و قالب بندی آنها سایز ، رنگ و دیگر خصوصیات که توسط CSS قابل تنظیم هست ،به روز رسانی کنید.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><span id="more-1493"></span></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">ابتدا ما فایل ساده ای را به عنوان فایل CSS خود ایجاد می کنیم می توانید این فایل را توسط هر ویرایشگر متنی ایجاد نمایید ، نام فایل را  content.css قرار می دهیم. فایل را در کنار فایل فلش خود قرار دهید.</p>
<pre class="brush: css; title: ; notranslate">
p {

font-size: 40px;
color: #ff0000;

}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">حال در برنامه فلش پروژه ای جدید ایجاد می کنیم و کلاس های مورد نیاز را در بخش اکشن وارد می کنیم</p>
<pre class="brush: as3; title: ; notranslate">
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.text.StyleSheet;
import flash.events.Event;
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">حال توسط کدهای زیر فایل را بارگزاری می کنیم تا بتوانیم آن را در مراحل بعد استفاده کنیم</p>
<pre class="brush: as3; title: ; notranslate">
//css تعریف بارگزارنده فایل قالب بندی
var cssLoader:URLLoader = new URLLoader();

//مشخص کردن آدرس و نام فایل خارجی
var cssRequest:URLRequest = new URLRequest(&quot;content.css&quot;);

//فراخوانی متد مربوطه به بارگزاری فایل تعیین شده
cssLoader.load(cssRequest);

//تعریف رویداد برای زمان کامل شدن بارگزاری
cssLoader.addEventListener(Event.COMPLETE, cssLoadComplete);
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در مرحله بعد یک نمونه از کلاس StyleSheet را برای دریافت و آماده سازی محتوای قالب بندی تعریف می کنیم و سپس تابع  cssLoadComplete را برای کنترل کردن رویداد کامل شدن بارگزاری تعریف می کنیم</p>
<pre class="brush: as3; title: ; notranslate">

//StyleSheet تعریف کلاس
var sheet:StyleSheet = new StyleSheet();

//تعریف تابعی برای زمان کامل شدن بارگزاری
function cssLoadComplete(event:Event):void
{

	// چاپ محتوای بارگزاری شده برای تست
	//trace(cssLoader.data);

	//افزودن محتوای بارگزاری شده به کلاس استایل شیت و تبدیل محتوای متنی برای پردازش قالب بندی
	sheet.parseCSS(cssLoader.data);

	// حال می توانیم استایل شیت آماده شده را به تکست فیلد خود اعمال کنیم
	// مربوطه به تکست فیلد مربوطه استفاده می کنیم styleSheetبرای این کار از متد
	textBox.styleSheet = sheet;

	//

	//برای مثال
	textBox.text = &quot;&lt;p&gt;test css iflashlord&lt;/p&gt;&quot;;

}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">همان طور که در کد تابع  مشاهده می کنید بعد از بارگزاری کامل محتوای بارگزاری شده که توسط cssLoader.data قابل دریافت هست را توسط متد parseCSS به sheet تعریف شده اعمال می کنیم ،و در مرحله بعد sheet را به خصوصیت styleSheet تکست فیلدمان (در این مثال textBox) اختصاص می دهیم.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">حال می توانیم محتوای خود را به تکست فیلد اعمال کنیم و یا محتوای خارجی External خود را بارگزاری کرده و به تکست فیلد اعمال کنیم.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در این حالت محتوای تکست فیلد از قالب بندی تعریف شده استفاده می کند برای مثال متن نمونه به صورت قرمز و سایز ۴۰  نمایش داده خواهد شد.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">توجه داشته باشد که خصوصیت html مربوطه تکست فیلد برای آنلالیز محتوای HTML می بایست فعال شده باشد.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iflashlord.com/1390/08/%d8%a7%d8%b9%d9%85%d8%a7%d9%84-%db%8c%da%a9-stylesheet-%d8%ae%d8%a7%d8%b1%d8%ac%db%8c-%d8%a8%d9%87-%d9%81%db%8c%d9%84%d8%af-%d9%85%d8%aa%d9%86%db%8c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>دسترسی به اطلاعات RSS یک وب سایت</title>
		<link>http://blog.iflashlord.com/1390/08/%d8%af%d8%b3%d8%aa%d8%b1%d8%b3%db%8c-%d8%a8%d9%87-%d8%a7%d8%b7%d9%84%d8%a7%d8%b9%d8%a7%d8%aa-rss-%db%8c%da%a9-%d9%88%d8%a8%d8%b3%d8%a7%db%8c%d8%aa/</link>
		<comments>http://blog.iflashlord.com/1390/08/%d8%af%d8%b3%d8%aa%d8%b1%d8%b3%db%8c-%d8%a8%d9%87-%d8%a7%d8%b7%d9%84%d8%a7%d8%b9%d8%a7%d8%aa-rss-%db%8c%da%a9-%d9%88%d8%a8%d8%b3%d8%a7%db%8c%d8%aa/#comments</comments>
		<pubDate>Wed, 26 Oct 2011 01:21:29 +0000</pubDate>
		<dc:creator>بهروز پولادرگ</dc:creator>
				<category><![CDATA[ادوبی فلش]]></category>
		<category><![CDATA[اکشن اسکریپت]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[actionscript 3]]></category>
		<category><![CDATA[addEventListener]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[elements]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Event.COMPLETE]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Function]]></category>
		<category><![CDATA[length]]></category>
		<category><![CDATA[Loader]]></category>
		<category><![CDATA[RSS]]></category>
		<category><![CDATA[target]]></category>
		<category><![CDATA[trace]]></category>
		<category><![CDATA[URLLoader]]></category>
		<category><![CDATA[URLRequest]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[XMLList]]></category>
		<category><![CDATA[آر اس اس]]></category>
		<category><![CDATA[اکشن اسکریپت 3]]></category>
		<category><![CDATA[ایکس ام ال]]></category>
		<category><![CDATA[فلش]]></category>

		<guid isPermaLink="false">http://blog.iflashlord.com/?p=1430</guid>
		<description><![CDATA[در این مطلب نحوه برقراری ارتباط با RSS یک وبسایت و دریافت اطلاعات آن به صورت XML آموزش داده می‌شود. بعد از دریافت اطلاعات به راحتی می‌توانید به کمک کدهای XML از این اطلاعات استفاده کنید. ۱- برای شروع لازم است که کلاسه‌های مورد نیاز را import کنید. ۲- حالا یک متغیر از نوع URLLoader می‌سازیم، [...]]]></description>
			<content:encoded><![CDATA[<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">
	<img src="http://blog.iflashlord.com/wp-content/uploads/2011/10/read_rss_xml_iflashlord.jpg" alt="iflashlord.com" />
	</p><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در این مطلب نحوه برقراری ارتباط با RSS یک وبسایت و دریافت اطلاعات آن به صورت XML آموزش داده می‌شود. بعد از دریافت اطلاعات به راحتی می‌توانید به کمک کدهای XML از این اطلاعات استفاده کنید.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><span id="more-1430"></span></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">۱- برای شروع لازم است که کلاسه‌های مورد نیاز را import کنید.</p>
<pre class="brush: as3; title: ; notranslate">
import flash.net.URLLoader;
import flash.events.Event;
import flash.net.URLRequest;
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">2- حالا یک متغیر از نوع URLLoader می‌سازیم، یک Event Listener برای آن تعریف می‌کنیم تا از کامل شدن دریافت اطلاعات آگاه شویم. سپس آدرس مورد نظر را Load می‌کنیم.</p>
<pre class="brush: as3; title: ; notranslate">
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, loaded);
loader.load(new URLRequest(&quot;http://blog.iflashlord.com/feed/&quot;));
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">3- در نهایت تابع loaded را که بعد از کامل شدن دریافت اطلاعات فراخوانی می‌شود، تعریف می‌کنیم.</p>
<pre class="brush: as3; title: ; notranslate">
function loaded(e:Event):void
{
	var xml:XML = XML(e.target.data);

	// Method 1:
	var xmlList:XMLList = xml.channel..item;

	// Method 2:
	//var xmlL:XMLList = xml.channel.elements(&quot;item&quot;);

	trace(xmlList.length());
	trace(xmlList[2]);
}
</pre>
<p style="text-align: justify;"><span style="color: #333333;">در این تابع:</span></p>
<ul>
<li style="text-align: justify;"><span style="color: #333333;">ابتدا اطلاعات دریافت شده به صورت XML تبدیل شده و در یک متغیر از نوع XML قرار می‌گیرند.</span></li>
<li style="text-align: justify;"><span style="color: #333333;">در بین اطلاعات دریافت شده، element‌های item شامل اطلاعات هر پست هستند. برای جداسازی آنها از دو روش می‌توان استفاده کرد. بعد از جداسازی آنها را در یک متغیر از نوع XMLList ذخیره می‌کنیم.</span></li>
<li style="text-align: justify;"><span style="color: #333333;">در نهایت نحوه استفاده از اطلاعات در دو مثال آمده است. (دستورات trace)</span></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.iflashlord.com/1390/08/%d8%af%d8%b3%d8%aa%d8%b1%d8%b3%db%8c-%d8%a8%d9%87-%d8%a7%d8%b7%d9%84%d8%a7%d8%b9%d8%a7%d8%aa-rss-%db%8c%da%a9-%d9%88%d8%a8%d8%b3%d8%a7%db%8c%d8%aa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>دانلود فایل از روی Server به کمک File Reference</title>
		<link>http://blog.iflashlord.com/1390/08/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d9%81%d8%a7%db%8c%d9%84-%d8%a7%d8%b2-%d8%b1%d9%88%db%8c-server-%d8%a8%d9%87-%da%a9%d9%85%da%a9-file-reference/</link>
		<comments>http://blog.iflashlord.com/1390/08/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d9%81%d8%a7%db%8c%d9%84-%d8%a7%d8%b2-%d8%b1%d9%88%db%8c-server-%d8%a8%d9%87-%da%a9%d9%85%da%a9-file-reference/#comments</comments>
		<pubDate>Mon, 24 Oct 2011 01:23:28 +0000</pubDate>
		<dc:creator>بهروز پولادرگ</dc:creator>
				<category><![CDATA[ادوبی ایر]]></category>
		<category><![CDATA[ادوبی فلش]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[Action Script 3.0]]></category>
		<category><![CDATA[actionscript 3]]></category>
		<category><![CDATA[addEventListener]]></category>
		<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[bytesLoaded]]></category>
		<category><![CDATA[bytesTotal]]></category>
		<category><![CDATA[Desktop]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[File Reference]]></category>
		<category><![CDATA[FileReference]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[ProgressEvent]]></category>
		<category><![CDATA[scaleX]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[URLRequest]]></category>
		<category><![CDATA[اکشن اسکریپت 3]]></category>
		<category><![CDATA[ایر]]></category>
		<category><![CDATA[دانلود]]></category>
		<category><![CDATA[دانلود از روی سرور]]></category>
		<category><![CDATA[دانلود فایل توسط ادوبی ایر]]></category>
		<category><![CDATA[فلش]]></category>

		<guid isPermaLink="false">http://blog.iflashlord.com/?p=1401</guid>
		<description><![CDATA[در این درس نحوه دانلود فایل از روی Server و ذخیره سازی آن آموزش داده می‌شود. در صورتی که قرار باشد پروژه روی Desktop کار کند باید از پروژه Air استفاده شود، در غیر اینصورت می‌توانید از پروژه Action Script 3.0 استفاده کنید. در هر دو حالت عملیات دانلود توسط FileReference و بدون نیاز به [...]]]></description>
			<content:encoded><![CDATA[<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">
	<img src="http://blog.iflashlord.com/wp-content/uploads/2011/10/php_download_air_iflashlord.jpg" alt="iflashlord.com" />
	</p><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در این درس نحوه دانلود فایل از روی Server و ذخیره سازی آن آموزش داده می‌شود. در صورتی که قرار باشد پروژه روی Desktop کار کند باید از پروژه Air استفاده شود، در غیر اینصورت می‌توانید از پروژه Action Script 3.0 استفاده کنید. در هر دو حالت عملیات دانلود توسط FileReference و بدون نیاز به هیچ واسطه PHP انجام می‌شود.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><span id="more-1401"></span></p>
<blockquote><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">دانلود سورس: <a href="http://blog.iflashlord.com/wp-content/uploads/2011/10/upload_file_air_source.zip">sourceCS5.zip</a></p></blockquote>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">1- با توجه به نیاز خود یک پروژه Air و یا AS3 بسازید.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">۲- ابتدا لازم است که فرم زیر را طراحی کنید.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><img class="alignnone size-full wp-image-1402" title="download_air_gui_iflashlord" src="http://blog.iflashlord.com/wp-content/uploads/2011/10/download_air_gui_iflashlord.jpg" alt="" width="368" height="137" /></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">۳- برای ادامه کلاسه‌های مورد نیاز را import کنید.</p>
<pre class="brush: as3; title: ; notranslate">
import flash.events.Event;
import flash.net.FileReference;
import flash.net.URLRequest;
import flash.events.ProgressEvent;
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">4- حالا به دو متغیر از نوع FileReference و URLRequest نیاز داریم. به کمک متغیر URLRequest آدرس فایل مورد نظر را برای دانلود به متغیر FileReference  معرفی خواهیم کرد.</p>
<pre class="brush: as3; title: ; notranslate">
var downloader:FileReference;
var Request:URLRequest;
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">5- قصد داریم در این مثال بعد از کلیک روی download_mc عملیات دانلود شروع شود. پس Event Listener مربوطه را به صورت زیر تعریف می‌کنیم، همچنین این MovieClip در حالت Button قرار گرفته است (البته این کار ضروری نیست).</p>
<pre class="brush: as3; title: ; notranslate">
download_mc.buttonMode = true;
download_mc.addEventListener(&quot;click&quot;, Start);
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">6- حالا تابع Start را که بعد از کلیک روی download_mc فراخوانی می‌شود، تعریف می‌کنیم.</p>
<pre class="brush: as3; title: ; notranslate">
function Start(e:Event):void
{
	download_mc.removeEventListener(&quot;click&quot;, Start);
	mc_loaded.scaleX = 0;
	downloader = new FileReference();
	Request = new URLRequest();
	downloader.addEventListener(ProgressEvent.PROGRESS, Progress);
	downloader.addEventListener(Event.COMPLETE, Complete);
	downloader.addEventListener(Event.CANCEL, Cancel);
	Request.url = url_txt.text;
	downloader.download(Request);
	url_txt.text = &quot;Downloading ...&quot;;
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><strong>در این تابع:</strong></p>
<ul>
<li>ابتدا Event Listener مربوط به کلیک حذف می‌شود تا کاربر قبل از تکمیل دانلود نتواند دوباره این تابع را فراخوانی کند.</li>
<li>mc_loaded در حالت آماده برای نشان دادن مقدار پیشرفت دانلود قرار می‌گیرد.</li>
<li>یک شیء جدید برای FileReference و URLRequest ساخته می‌شود.</li>
<li>سه Event Listener برای FileReference به منظور نشان دادن تکمیل و حین و لغو دانلود تعریف می‌شود.</li>
<li>آدرسی که کاربر در فیلد متنی url_txt نوشته است به URLRequest منتقل می‌شود.</li>
<li>آدرس فایل توسط URLRequest به FileReference معرفی می‌شود و کاربر پنجره ذخیره فایل را خواهد دید.</li>
</ul>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">۷- حالا باید توابع مربوط به سه وضعیت لغو، حین و تکمیل دانلود که در زمان‌های مختلف توسط FileReference فراخوانی می‌شوند را تعریف کنیم.</p>
<pre class="brush: as3; title: ; notranslate">
function Cancel(e:Event):void
{
	url_txt.text = &quot;&quot;;
	download_mc.addEventListener(&quot;click&quot;, Start);
	downloader.removeEventListener(Event.CANCEL, Cancel);
	downloader.removeEventListener(ProgressEvent.PROGRESS, Progress);
	downloader.removeEventListener(Event.COMPLETE, Complete);
}

function Progress(e:ProgressEvent):void
{
	mc_loaded.scaleX = (e.bytesLoaded / e.bytesTotal) ;
}

function Complete(e:Event):void
{
	url_txt.text = &quot;Download Finished.&quot;;
	download_mc.addEventListener(&quot;click&quot;, Start);
	downloader.removeEventListener(Event.CANCEL, Cancel);
	downloader.removeEventListener(ProgressEvent.PROGRESS, Progress);
	downloader.removeEventListener(Event.COMPLETE, Complete);
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">همانطور که مشخص است بعد از لغو و یا تکمیل دانلود دوباره وضعیت کلیک برای download_mc فعال می‌شود و Event Listener‌های مربوط به FileReference حذف می‌شوند. در حین دانلود هم mc_loaded درصد پیشرفت دانلود را نشان می‌دهد.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><a href="http://flashcenter.ir/?p=598" target="_blank">+ منبع</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iflashlord.com/1390/08/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d9%81%d8%a7%db%8c%d9%84-%d8%a7%d8%b2-%d8%b1%d9%88%db%8c-server-%d8%a8%d9%87-%da%a9%d9%85%da%a9-file-reference/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>آپلود فایل به کمک Air و PHP بر روی Server</title>
		<link>http://blog.iflashlord.com/1390/08/%d8%a2%d9%be%d9%84%d9%88%d8%af-%d9%81%d8%a7%db%8c%d9%84-%d8%a8%d9%87-%da%a9%d9%85%da%a9-air-%d9%88-php-%d8%a8%d8%b1-%d8%b1%d9%88%db%8c-server/</link>
		<comments>http://blog.iflashlord.com/1390/08/%d8%a2%d9%be%d9%84%d9%88%d8%af-%d9%81%d8%a7%db%8c%d9%84-%d8%a8%d9%87-%da%a9%d9%85%da%a9-air-%d9%88-php-%d8%a8%d8%b1-%d8%b1%d9%88%db%8c-server/#comments</comments>
		<pubDate>Sun, 23 Oct 2011 01:20:30 +0000</pubDate>
		<dc:creator>بهروز پولادرگ</dc:creator>
				<category><![CDATA[ادوبی ایر]]></category>
		<category><![CDATA[ادوبی فلش]]></category>
		<category><![CDATA[اکشن اسکریپت]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[پی اچ پی]]></category>
		<category><![CDATA[$_FILES]]></category>
		<category><![CDATA[$_POST]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Desktop]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[event.bytesLoaded]]></category>
		<category><![CDATA[event.bytesTotal]]></category>
		<category><![CDATA[fclose]]></category>
		<category><![CDATA[FileFilter]]></category>
		<category><![CDATA[FileReference]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[fopen]]></category>
		<category><![CDATA[fwrite]]></category>
		<category><![CDATA[move_uploaded_file]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ProgressEvent]]></category>
		<category><![CDATA[swf]]></category>
		<category><![CDATA[upload]]></category>
		<category><![CDATA[uploader_script.php]]></category>
		<category><![CDATA[URLRequest]]></category>
		<category><![CDATA[URLRequestMethod]]></category>
		<category><![CDATA[URLRequestMethod.POST]]></category>
		<category><![CDATA[URLVariables]]></category>
		<category><![CDATA[آپلود]]></category>
		<category><![CDATA[آپلود فایل]]></category>
		<category><![CDATA[ایر]]></category>
		<category><![CDATA[فلش]]></category>

		<guid isPermaLink="false">http://blog.iflashlord.com/?p=1394</guid>
		<description><![CDATA[در این مطلب نحوه برقراری ارتباط بین Air و PHP به منظور Upload فایل روی Server آموزش داده می‌شود. ابتدا یک فرم مخصوص آپلود می‌سازیم، سپس کدهای مربوط به PHP را نوشته و فایل‌های مورد نیاز را روی Server قرار می‌دهیم. در نهایت کدهای مربوط به نرم افزار را در Flash اضافه می‌کنیم. برای آپلود [...]]]></description>
			<content:encoded><![CDATA[<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">
	<img src="http://blog.iflashlord.com/wp-content/uploads/2011/10/php_upload_air_iflashlord.jpg" alt="iflashlord.com" />
	</p><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در این مطلب نحوه برقراری ارتباط بین Air و PHP به منظور Upload فایل روی Server آموزش داده می‌شود. ابتدا یک فرم مخصوص آپلود می‌سازیم، سپس کدهای مربوط به PHP را نوشته و فایل‌های مورد نیاز را روی Server قرار می‌دهیم. در نهایت کدهای مربوط به نرم افزار را در Flash اضافه می‌کنیم. برای آپلود فایل‌ها از FileReference، URLRequest و URLVariables استفاده می‌کنیم.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><span id="more-1394"></span></p>
<blockquote><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">دانلود سورس : <a href="http://flashcenter.ir/wp-content/uploads/2011/07/source1.zip">Source CS5.5.zip</a></p></blockquote>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">1- برای شروع یک پروژه جدید Air ایجاد کنید.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">۲- به کمک کامپوننت‌های Button , Text Input و به کمک ابزار Rectangle این فرم را بسازید.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><img class="alignnone size-full wp-image-1395" title="upload_gui_iflashlord" src="http://blog.iflashlord.com/wp-content/uploads/2011/10/upload_gui_iflashlord.jpg" alt="" width="346" height="158" /></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">۳- یک برنامه Editor باز کنید و این کدها را در آن بنویسید، سپس فایل را با نام uploader_script.php ذخیره کنید.</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php $todayDate = $_POST['todayDate'];
$Name = $_POST['Name'];
$Email = $_POST['Email'];
$filename = $_FILES['Filedata']['name'];
$filetmpname = $_FILES['Filedata']['tmp_name'];
$fileType = $_FILES[&quot;Filedata&quot;][&quot;type&quot;];
$fileSizeMB = ($_FILES[&quot;Filedata&quot;][&quot;size&quot;] / 1024 / 1000);
move_uploaded_file($_FILES['Filedata']['tmp_name'], &quot;images/&quot;.$filename);
$myFile = &quot;logFile.txt&quot;;
$fh = fopen($myFile, ‘a’) or die(&quot;can’t open file&quot;);
$stringData = “\n\ntodayDate: $todayDate \n Name: $Name \n Email: $Email \n ssid: $ssid \n FileName: $filename \n TmpName: $filetmpname \n Type: $fileType \n Size: $fileSizeMB MegaBytes”;
fwrite($fh, $stringData);
fclose($fh);
?&gt;
</pre>
<ul>
<li>در این کدها ابتدا اطلاعات با متد POST دریافت می‌شود.</li>
<li>سپس فایل‌های آپلود شده به داخل فولدر images که در کنار همین فایل PHP باید بسازیم منتقل می‌شوند و نام اصلی فایل برای آن حفظ می‌شود.</li>
<li>در ادامه اطلاعات مربوط به فایل در یک فایل متنی به نام logFile.txt ذخیره می‌شود.</li>
</ul>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">۴- حالا فایل PHP را در Server خود آپلود کنید. در کنار این فایل یک فولدر به نام images و یک فایل متنی به نام logFile.txt ایجاد کنید و Permission آنها را ۷۷۷ قرار دهید.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">۵- پنل Actions را برای فریم اول پروژه فلش فعال کنید.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">۶- حالا باید کلاسه مورد نیاز را import کنید:</p>
<pre class="brush: as3; title: ; notranslate">
import flash.net.URLRequest;
import flash.net.FileFilter;
import flash.net.FileReference;
import flash.events.ProgressEvent;
import flash.events.Event;
import flash.net.URLRequestMethod;
import flash.net.URLVariables;
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">7- اطلاعات اولیه مربوط به دکمه‌ها و سایر قسمت‌هایی را که در فرم بالا قابل مشاهده هستند، به صورت زیر تعریف کنید:</p>
<pre class="brush: as3; title: ; notranslate">
upload_btn.enabled = false;
progressBar.width = 1;
uploadMsg.text = &quot;Select a File …&quot;;
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">۸- متغیر URLRequest را که به آدرس فایل PHP بر روی Server متصل می‌شود، به صورت زیر تعریف کنید:</p>
<pre class="brush: as3; title: ; notranslate">
var URLrequest:URLRequest = new URLRequest(&quot;uploader_script.php&quot;);
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">9- در این آموزش در نظر داریم که کاربر فقط بتواند فایل عکس و متن را با برنامه آپلود کند، بنابراین فیلتر فایل‌ها را به صورت زیر تعریف می‌کنیم و هر دو نوع فیلتر را در یک آرایه قرار می‌دهیم:</p>
<pre class="brush: as3; title: ; notranslate">
var imageTypes:FileFilter = new FileFilter(&quot;Images (*.jpg, *.jpeg, *.gif, *.png)&quot;, &quot;*.jpg; *.jpeg; *.gif; *.png”);
var textTypes:FileFilter = new FileFilter(&quot;Text Files (*.txt, *.rtf)&quot;, &quot;*.txt; *.rtf&quot;);
var allTypes:Array = new Array(imageTypes, textTypes);
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">10- یک FileReference جدید می‌سازیم و Event Listener‌های مربوط به انتخاب موفق فایل توسط کاربر، کامل شدن آپلود و حین پیشرفت آپلود را برای آن به صورت زیر تعریف می‌کنیم:</p>
<pre class="brush: as3; title: ; notranslate">
var fileRef:FileReference = new FileReference();
fileRef.addEventListener(Event.SELECT, syncVariables);
fileRef.addEventListener(Event.COMPLETE, completeHandler);
fileRef.addEventListener(ProgressEvent.PROGRESS, progressHandler);
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">11- حالا Event Listener‌های مربوط به کلیک روی دکمه‌ها را تعریف کنید.</p>
<pre class="brush: as3; title: ; notranslate">
browse_btn.addEventListener(MouseEvent.CLICK, browseBox);
upload_btn.addEventListener(MouseEvent.CLICK, uploadVars);
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">12- تابعی که بعد از کلیک روی دکمه Browse فراخوانی می‌شود، به صورت زیر تعریف می‌شود. بعد از کلیک روی این دکمه کاربر باید پنجره انتخاب فایل را با فیلترهایی که قبلا آماده شدند، ببیند.</p>
<pre class="brush: as3; title: ; notranslate">
function browseBox(event:MouseEvent):void
{
	fileRef.browse(allTypes);
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">13- تابعی که بعد از انتخاب موفق فایل توسط کاربر، فراخوانی می‌شود، به صورت زیر تعریف می‌شود. در این تابع ابتدا آدرس فایل در فیلد مربوطه نشان داده می‌شود. سپس دکمه آپلود فعال و ProgressBar آماده می‌شود، در ادامه اطلاعات مورد نیاز PHP به کمک URLVariables جمع آوری می‌شود و این اطلاعات توسط متد POST برای PHP آماده ارسال می‌شوند.</p>
<pre class="brush: as3; title: ; notranslate">
function syncVariables(event:Event):void
{
	fileDisplay_txt.text = &quot;&quot; + fileRef.name;
	upload_btn.enabled = true;
	progressBar.width = 1;
	var variables:URLVariables = new URLVariables();
	variables.todayDate = new Date();
	variables.Name = &quot;IFLashLord&quot;;
	variables.Email = &quot;test@gmail.com&quot;;
	URLrequest.method = URLRequestMethod.POST;
	URLrequest.data = variables;
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">14- حالا وقت آن رسیده است تابعی را تعریف کنیم که بعد از کلیک روی دکمه Upload فراخوانی می‌شود و اطلاعات را به PHP می‌فرستد. یکی از این اطلاعات، خود فایل انتخاب شده است که با دستور upload توسط FileReference ارسال می‌شود.</p>
<pre class="brush: as3; title: ; notranslate">
function uploadVars(event:MouseEvent):void
{
	uploadMsg.text = &quot;Uploading …&quot;;
	fileRef.upload(URLrequest);
	upload_btn.enabled = false;
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">15- توابع مربوط به کامل شدن و حین پیشرفت آپلود به صورت زیر تعریف می‌شوند.</p>
<pre class="brush: as3; title: ; notranslate">
function completeHandler(event:Event):void
{
	uploadMsg.text = fileRef.name + &quot; has been uploaded.&quot;;
	fileDisplay_txt.text = &quot;&quot;;
}

function progressHandler(event:ProgressEvent):void
{
	progressBar.width = Math.ceil(241 * (event.bytesLoaded / event.bytesTotal));
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در صورتی که نیاز داشتید می‌توانید این پروژه را به صورت swf و AS3 در کنار فایل PHP آپلود کنید. اما اگر قرار است این برنامه بر روی Desktop کار کند حتما باید از پروژه Air استفاده کنید.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iflashlord.com/1390/08/%d8%a2%d9%be%d9%84%d9%88%d8%af-%d9%81%d8%a7%db%8c%d9%84-%d8%a8%d9%87-%da%a9%d9%85%da%a9-air-%d9%88-php-%d8%a8%d8%b1-%d8%b1%d9%88%db%8c-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>فراخوانی تابع از فایل فلش بارگزاری شده</title>
		<link>http://blog.iflashlord.com/1390/07/%d9%81%d8%b1%d8%a7%d8%ae%d9%88%d8%a7%d9%86%db%8c-%d8%aa%d8%a7%d8%a8%d8%b9-%d8%a7%d8%b2-%d9%81%d8%a7%db%8c%d9%84-%d9%81%d9%84%d8%b4-%d8%a8%d8%a7%d8%b1%da%af%d8%b2%d8%a7%d8%b1%db%8c-%d8%b4%d8%af%d9%87/</link>
		<comments>http://blog.iflashlord.com/1390/07/%d9%81%d8%b1%d8%a7%d8%ae%d9%88%d8%a7%d9%86%db%8c-%d8%aa%d8%a7%d8%a8%d8%b9-%d8%a7%d8%b2-%d9%81%d8%a7%db%8c%d9%84-%d9%81%d9%84%d8%b4-%d8%a8%d8%a7%d8%b1%da%af%d8%b2%d8%a7%d8%b1%db%8c-%d8%b4%d8%af%d9%87/#comments</comments>
		<pubDate>Tue, 11 Oct 2011 08:07:59 +0000</pubDate>
		<dc:creator>بهروز پولادرگ</dc:creator>
				<category><![CDATA[ادوبی فلش]]></category>
		<category><![CDATA[اکشن اسکریپت]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[addEventListener]]></category>
		<category><![CDATA[contentLoaderInfo]]></category>
		<category><![CDATA[currentTarget]]></category>
		<category><![CDATA[IOErrorEvent]]></category>
		<category><![CDATA[IO_ERROR]]></category>
		<category><![CDATA[Loader]]></category>
		<category><![CDATA[MovieClip]]></category>
		<category><![CDATA[URLRequest]]></category>
		<category><![CDATA[فراخوانی تابع]]></category>
		<category><![CDATA[فلش]]></category>

		<guid isPermaLink="false">http://blog.iflashlord.com/?p=1299</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">
	<img src="http://blog.iflashlord.com/wp-content/uploads/2010/02/actionscript_iflashlord.jpg" alt="iflashlord.com" />
	</p><pre class="brush: as3; title: ; notranslate">

//ساخت یک شی از نوع کلاس بارگزارنده
var my_Loader:Loader = new Loader();

//تعریف متغییری از نوع مووی کلیپ
var my_loadedSwf:MovieClip;

//با تعریف رویداد برای بارگزارنده زمان پایان بارگزاری فایل فلش خارجی (خارج از پروژه) خود را متوجه می شویم
my_Loader.contentLoaderInfo.addEventListener(Event.COMPLETE, finishLoading);

//توسط این خط رویداد های مربوطه به خطا ها را دریافت می کنیم
my_Loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);

//سپس توسط فرمان زیر فایل مورد نظر خودمان را در بارگزارنده بارگزاری می کنیم
my_Loader.load(new URLRequest(&quot;test.swf&quot;));

// به طور ما درون فایل مربوطه تابعی با نام
//testing()
// تعریف کرده ایم و برای دریافت آن محتوای بارگزاری شده را به یک متغییر انتقال می دهیم.

//تابع مربوطه به زمان بارگزاری کامل
function finishLoading(loadEvent:Event) {
my_loadedSwf = loadEvent.currentTarget.content;

addChild(my_loadedSwf);

//توسط خط زیر تابع درون فایل خارجی ما فراخوانی می شود
my_loadedSwf.testing();
}

// هندل کردن رویدادهای خطا
function errorHandler(errorEvent:Event):void {
trace(&quot;فایل یافت نشد!&quot;);
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.iflashlord.com/1390/07/%d9%81%d8%b1%d8%a7%d8%ae%d9%88%d8%a7%d9%86%db%8c-%d8%aa%d8%a7%d8%a8%d8%b9-%d8%a7%d8%b2-%d9%81%d8%a7%db%8c%d9%84-%d9%81%d9%84%d8%b4-%d8%a8%d8%a7%d8%b1%da%af%d8%b2%d8%a7%d8%b1%db%8c-%d8%b4%d8%af%d9%87/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>بهینه سازی فلش &#8211; unloadAndStop در فلش پلیر ۱۰</title>
		<link>http://blog.iflashlord.com/1390/03/%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-%d9%81%d9%84%d8%b4-unloadandstop-in-flash-player-10/</link>
		<comments>http://blog.iflashlord.com/1390/03/%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-%d9%81%d9%84%d8%b4-unloadandstop-in-flash-player-10/#comments</comments>
		<pubDate>Tue, 31 May 2011 21:00:28 +0000</pubDate>
		<dc:creator>بهروز پولادرگ</dc:creator>
				<category><![CDATA[ادوبی ایر]]></category>
		<category><![CDATA[ادوبی فلش]]></category>
		<category><![CDATA[اکشن اسکریپت]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[actionscript3]]></category>
		<category><![CDATA[activeate]]></category>
		<category><![CDATA[addChild]]></category>
		<category><![CDATA[addEventListener]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[bitmap]]></category>
		<category><![CDATA[cacheAsBitmap]]></category>
		<category><![CDATA[Deactivate]]></category>
		<category><![CDATA[enterFrame]]></category>
		<category><![CDATA[exitFrame]]></category>
		<category><![CDATA[FileRefrence]]></category>
		<category><![CDATA[frameconstructed]]></category>
		<category><![CDATA[garbage collector]]></category>
		<category><![CDATA[grandchildren]]></category>
		<category><![CDATA[Loader]]></category>
		<category><![CDATA[loader.load]]></category>
		<category><![CDATA[loader.unloadAndStop]]></category>
		<category><![CDATA[memory]]></category>
		<category><![CDATA[MouseEvent.CLICK]]></category>
		<category><![CDATA[MovieClip]]></category>
		<category><![CDATA[nested]]></category>
		<category><![CDATA[socket]]></category>
		<category><![CDATA[Stream]]></category>
		<category><![CDATA[swf]]></category>
		<category><![CDATA[Timer]]></category>
		<category><![CDATA[unloadAndStop]]></category>
		<category><![CDATA[unloadSWF]]></category>
		<category><![CDATA[URLRequest]]></category>
		<category><![CDATA[xmlsocket]]></category>
		<category><![CDATA[اکشن اسکریپت 3]]></category>
		<category><![CDATA[بهینه سازی فلش]]></category>
		<category><![CDATA[جمع آورنده زباله]]></category>
		<category><![CDATA[جمع آوری زباله]]></category>
		<category><![CDATA[فلش]]></category>
		<category><![CDATA[فلش پلیر]]></category>

		<guid isPermaLink="false">http://blog.iflashlord.com/?p=1115</guid>
		<description><![CDATA[بهینه سازی در فلش یک اصل مهم به حساب می آید و افزایش و کار بر روی آن برای توسعه دهندگان فلش امری الزامی است. به عنوان یک توسعه دهنده فلش و به عنوان کسی که برای آینده این نرم افزار بزرگ احساس مسئولیت می کند ، ما وظیفه داریم در ساخت عناصر فلش که [...]]]></description>
			<content:encoded><![CDATA[<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">
	<img src="http://blog.iflashlord.com/wp-content/uploads/2011/04/optimaize_flash_iflashlord.jpg" alt="iflashlord.com" />
	</p><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">بهینه سازی در فلش یک اصل مهم به حساب می آید و افزایش و کار بر روی آن       برای توسعه دهندگان فلش امری الزامی است. به عنوان یک توسعه دهنده فلش و      به  عنوان کسی که برای آینده این نرم افزار بزرگ احساس مسئولیت می کند ،     ما   وظیفه داریم در ساخت عناصر فلش که کارایی بهتری دارند پیش گام  باشیم  و     همواره بهترین و بهینه ترین روش را استفاده کنیم. در این  مجموعه  آموزشی     بهینه سازی فلش به نکات مهم برای مدیریت بر عناصر و  حافظه ها …  می   پردازیم و   تلاش می کنیم که بتوانیم با استفاده از نکات  ارائه شده  خروجی   بهینه تر و   سبک تری از پروژه فلش خود داشته باشیم.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><strong>بخش ششم &#8211; unloadAndStop در فلش پلیر ۱۰</strong></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">متد unloadAndStop در پاسخ به چالش های پیش روی توسعه دهندگان اکشن اسکریپت برای توقف محتوای swf بارگزاری شده و حذف آن از حافظه (Memory) ، به اکشن اسکریپت در فلش پلیر ۱۰ افزوده شد.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">البته این مورد افزوده شده را نمی توان مانند گلوله ای جادویی برای حل همه مشکلاتی که در این زمینه وجود دارد دانست! ، برای روشن شدن بیشتر توضیح می دهیم که این مورد چه کاری انجام می دهد ، در مرحله اول این متد تلاش می کند محتوای بارگزاری شده را برای جمع آوری آماده کند ، و در مرحله بعد به جمع آورنده زباله (Garbage Collector) که می بایست عملیات جمع آوری زباله را انجام دهد ارجاع می شود. شما می توانید از مرحله دوم (که همان جمع آوری زباله gc می باشد)  با دادن مقدار false به عنوان آرگمان اول متد ، جلوگیری به عمل آورید.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><span id="more-1115"></span></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">با استفاده از این متد دریافت فایل swf باقی مانده در حافظه ساده می باشد ، اما انجام این کار به صورت تصادفی خیلی دشوار تر می باشد.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><strong>در زیر به فهرستی از مواردی که unloadAndStop آنها را برای فایل های swf بارگزاری شده آماده می کند را مشاهده می کنید :</strong></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><strong>*</strong> ایست کردن تمامی MovieClip ها<br />
<strong>*</strong> ایست کردن تمامی صداهای در حال پخش و Stream (پخش در جریان)<br />
<strong>*</strong> ایست و حذف همه تایمر (Timer) های استفاده شده<br />
<strong>*</strong> حذف همه شنونده های رویداد عمومی ، برای enterFrame , exitFrame , frameconstructed , activeate , deactivate<br />
<strong>*</strong> حدف همه شنونده های مربوطه به  stage که توسط فرزند (child) ایجاده شده است<br />
<strong>* </strong>بستن همه NetConnection ها و NetStream ها (Video.attachNetStream/attachCamera(0) &#8211; Microphone.setLoopback(0))<br />
<strong>*</strong> حدف فونت های AS3 از جدول فونت های عمومی<br />
<strong>*</strong> ایست ؛ socket ها ، xmlsocket ها ،دانلودهای filerefrence ، و دیگر اشاء مربوطه به دانلود (grandchildren (سطح نوه والد) ) و&#8230;<br />
<strong>* </strong>آزاد کردن bitmap های در ارتباط با cacheAsBitmap و filterها و&#8230;</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><strong>تذکر : </strong>تمامی موارد بالا به صورت بازگشتی اجرا می شوند ، به طوری که این موارد به هر یک از فرزندان تو در تو (nested) و فایل های swf بارگزاری شده در آن ها ، نیز اعمال می شود.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><strong>حال به مثالی در این زمینه می پردازیم :</strong></p>
<pre class="brush: as3; title: ; notranslate">

var loader:Loader = new Loader();

loader.load( new URLRequest ( &quot;sample_content.swf&quot; ) );

addChild( loader );

stage.addEventListener( MouseEvent.CLICK, unloadSWF );

function unloadSWF( e:MouseEvent ):void
{
	//unloadAndStop استفاده از متد
	loader.unloadAndStop();
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در کد بالا ابتدا یک شی Loader ساخته می شود و فایل نمونه آزمایشی ما را با نام sample_content.swf را بارگزاری می کند و سپس شی به DisplayObject افزوده (addChild) می شود.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در مرحله بعد با رویدادی که برای کلیک موس در stage در این مثال ایجاد می کنیم در زمان کلیک تابع unloadSWF را فراخوانی می کنیم</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در این تابع با استفاده از متد unloadAndStop عمل unload را انجام می دهیم.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">موفق و پیروز باشید.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iflashlord.com/1390/03/%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-%d9%81%d9%84%d8%b4-unloadandstop-in-flash-player-10/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>ذخیره کردن XML به صورت Binary</title>
		<link>http://blog.iflashlord.com/1389/11/%d8%b0%d8%ae%db%8c%d8%b1%d9%87-%da%a9%d8%b1%d8%af%d9%86-xml-%d8%a8%d9%87-%d8%b5%d9%88%d8%b1%d8%aa-binary/</link>
		<comments>http://blog.iflashlord.com/1389/11/%d8%b0%d8%ae%db%8c%d8%b1%d9%87-%da%a9%d8%b1%d8%af%d9%86-xml-%d8%a8%d9%87-%d8%b5%d9%88%d8%b1%d8%aa-binary/#comments</comments>
		<pubDate>Tue, 25 Jan 2011 15:54:46 +0000</pubDate>
		<dc:creator>بهروز پولادرگ</dc:creator>
				<category><![CDATA[ادوبی فلش]]></category>
		<category><![CDATA[امنیت و هک]]></category>
		<category><![CDATA[اکشن اسکریپت]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[actionscript 3]]></category>
		<category><![CDATA[addChild]]></category>
		<category><![CDATA[addEventListener]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Binary]]></category>
		<category><![CDATA[binary XML]]></category>
		<category><![CDATA[ByteArray]]></category>
		<category><![CDATA[catch]]></category>
		<category><![CDATA[compress]]></category>
		<category><![CDATA[dataFormat]]></category>
		<category><![CDATA[FileRefrence]]></category>
		<category><![CDATA[FileRefrence.save]]></category>
		<category><![CDATA[flash.net.FileReference]]></category>
		<category><![CDATA[MouseEvent]]></category>
		<category><![CDATA[uncompress]]></category>
		<category><![CDATA[URLLoader]]></category>
		<category><![CDATA[URLLoaderDataFormat]]></category>
		<category><![CDATA[URLLoaderDataFormat.BINARY]]></category>
		<category><![CDATA[URLRequest]]></category>
		<category><![CDATA[writeUTFBytes]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[ایکس ام ال]]></category>
		<category><![CDATA[بایت اری]]></category>
		<category><![CDATA[باینری]]></category>
		<category><![CDATA[دو دویی]]></category>
		<category><![CDATA[فلش]]></category>

		<guid isPermaLink="false">http://blog.iflashlord.com/?p=719</guid>
		<description><![CDATA[ذخیره کردن و بارگزاری و استفاده از فایل های متنی و XML در اکشن اسکریپت ۳ به صورت دو دویی (Binary) امکان جدیدی می باشد ، که برای فایل های خارجی با حجم بالا استفاده زیادی دارد. فایل های XML طولانی می بایست به صورت run-time بارگزاری شود ، با ذخیره XML به صورت Binary [...]]]></description>
			<content:encoded><![CDATA[<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">
	<img src="http://blog.iflashlord.com/wp-content/uploads/2011/01/xml2binary_iflashlord.jpg" alt="iflashlord.com" />
	</p><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">ذخیره کردن و بارگزاری و استفاده از فایل های متنی و XML در اکشن اسکریپت ۳ به صورت دو دویی (Binary) امکان جدیدی می باشد ، که برای فایل های خارجی با حجم بالا استفاده زیادی دارد.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">فایل های XML طولانی می بایست به صورت run-time بارگزاری شود ، با ذخیره XML به صورت Binary شما می توانید اطلاعات را فشرده سازی (compress) کنید و فایل با حجم کمتری دریافت نمایید.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">البته میزان فشرده سازی وابسته به پیچیدگی اطلاعات فایل شما می باشد ، اما این فشرده سازی به طور معمول بیشتر از ۵۰% انجام می شود.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">مسلما استفاده از اطلاعات XML به صورت فشرده شده و در قالب Binary با روشی که به صورت ساده و در قالب متنی ، برای XML استفاده می شود متفاوت است. بنابراین شما می بایست قبل از شروع به کار تصمیم خود را در مورد پروژه خود بگیرید. ممکن هست اطلاعات سری و امنیتی به صورت خارجی دارید و یا اطلاعات دارید که می خواهید بدون نیاز به کد گذاری دوباره بتوانید آن را تغییر دهید،  و در عین حال ترجیح می دهید که محتوا برای انسان غیر قابل درک باشد ، در مرحله بعد به تبدیل محتوای متنی به دودویی می پردازیم.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><span id="more-719"></span></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><em><strong><strong>تبدیل XML به دو دویی(Binary) توسط کلاس </strong></strong></em><em><strong><strong>ByteArray</strong></strong></em><em><strong><strong> :</strong></strong></em></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">ابتدا به این موضوع می پردازیم که چگونه اطلاعات XML را در یک ByteArray دخیره کنیم. در کد زیر ما قبلا اطلاعات XML را به صورت رشته متنی (String) در متغیری با نام xmlData قرار داده ایم. که می توانید این کار را یا توسط بارگزاری اطلاعات انجام دهید و یا از XML داخلی فلش استفاده نمایید.</p>
<pre class="brush: as3; title: ; notranslate">

var data:ByteArray = new ByteArray();
data.writeUTFBytes(xmlData); // xmlData فایل ایکس ام ال اصلی ما می باشد
data.compress();
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">با استفاده از این کدها ، هم اکنون متغیر data از نوع ByteArray شامل محتوای فشرده شده فایل XML به صورت دو دویی (Binary) می باشد.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><em><strong><strong>ذخیره به صورت یک فایل </strong></strong></em><em><strong><strong>:</strong></strong></em></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">حال شما اطلاعات Binary از نوع ByeArray را دارید ، شما می توانید آن را به صورت یک فایل خام ذخیره کنید ، برای این کار شما گزینه های زیر را پیش رو دارید:</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">۱ &#8211; ارسال به سرور و ذخیره اطلاعات توسط واسط سمت سرور.<br />
۲ &#8211; استفاده از امکاناتی که Adobe Air در اختیار شما قرار می دهد برای ذخیره بر روی دیسک سخت.<br />
۳ &#8211; استفاده از فلش پلیر ورژن ۱۰ برای ذخیره بر روی دیسک سخت.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در این آموزش ما گزینه ۳ را انتخاب می کنیم زیرا برای اکثر توسعه دهندگان فلش در دسترس می باشد و نیز با امکانات جدید فلش پلیر ۱۰ به بالا نیز بیشتر آشنا می شویم.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">کلاسی می بایست برای این امر از آن استفاده کنیم flash.net.FileReference می باشد، متد (method) مربوطه به ذخیره FileRefrence.save() می باشد و به کاربر امکان دادن مسیر ذخیره فایل را می دهد ، با این امکان شما می توانید اطلاعات خود را مانند یک فایل بر روی سیستم کاربر ذخیره کنید ، البته برای ذخیره کاربر امکان تغییر نام و مسیر فایل مورد نظر شما را خواهد داشت و البته یک مزیت این روش مناسب بودن برای نمونه های تحت وب است.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">به عنوان یک اقدام امنیتی فلش پلیر نتها در صورتی این دستور را اجرا می کند که شما آن را با تعیین یک رویداد به کاربر نمایش دهید مانند (رویداد <strong>MouseEvent.CLICK</strong>).  به هر حال شما نیاز دارید یک دکمه (button) ایجاد کنید و شنونده (listener) مربوطه به رویداد را به آن اضافه کنید و در تابع مربوطه متد <strong>save()</strong> را فراخوانی کنید</p>
<pre class="brush: as3; title: ; notranslate">

function on_buttonClick(evt:MouseEvent):void
{
	var data:ByteArray = new ByteArray();
	data.writeUTFBytes(xmlData);
	// xmlData فایل اصلی ایکس ام ال در قالب متنی;
	data.compress();
	new FileReference  .save(data, &quot;bindata.xml&quot;);
}//&quot;bindata.xml&quot; نام پیش فرض
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">فرمان save() کادر محاوره ای باز می کند که شما می توانید نام فایل و محل ذخیره سازی را به دلخواه مشخص نمایید و بر روی سیستم ذخیره نمایید ، توجه داشته باشید با این که در این مورد ما پسوند فایل را xml قرار دادیم ولی این فایل با فرمت (extension) دو دویی (binary) تبدیل شده است و محتوای آن عملا دیگر برای انسان قابل فهم نمی باشد و در صورتی که با یک ویرایشگر متنی فایل را مشاهده نمایید محتوای آن تشکیل شده است از متون در هم ریخته که مفهومی ندارد و دلیل این امر نیز فشرده شدن و تبدیل به دودویی (binary) می باشد.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">شما می توانید این فایل را در هر پسوند دیگری به صورت دلخواه نیز ذخیره کنید و از آن استفاده نمایید.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><em><strong>بارگزاری فایل XML دو دویی (Binary) </strong></em><em><strong><strong>:</strong></strong></em></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">حال شما فایلی دارید که به صورت دو دویی می باشد ولی محتوای آن فایل xml  شماست ، حال برای استفاده و بارگزاری آن شما می بایست از روش زیر استفاده کنید. در نهایت محتوای بارگزاری شده در فلش مانند فایل ساده ی xml بوده و تمامی دسترسی هایی که در زمان بارگزاری و استفاده از یک فایل xml ساده دارید را همچنان بدون هیچ محدودیتی در اختیار دارید.</p>
<pre class="brush: as3; highlight: [2]; title: ; notranslate">

var ldr:URLLoader = new URLLoader();
ldr.dataFormat = URLLoaderDataFormat.BINARY;// ** مطمئن شوید این خط کد را نوشته اید **
ldr.addEventListener(Event.COMPLETE, on_XML);
ldr.addEventListener(IOErrorEvent.IO_ERROR, on_XML);
ldr.load(new URLRequest(pathToXMLFile));
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">این کد برای بارگزاری فایل XML مانند یک فایل XML ساده می باشد ، تنها تفاوتی که وجود دارد در این می باشد که شما می بایست dataFormat را نیز تعیین نمایید و آن را برای فایل دو دویی به صورت URLLoaderDataFormat.BINARY مقدار دهی نمایید. حتی اگر شما این فایل را به صورت ساده بارگزاری کنید کد می بایست به درستی کار کند.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><em><strong><strong>تبدیل فایل دو دویی(Binary) به </strong></strong></em><em><strong><strong>XML </strong></strong></em><em><strong><strong>توسط کلاس </strong></strong></em><em><strong><strong>ByteArray</strong></strong></em><em><strong><strong> :</strong></strong></em></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">بعد از این که بارگزاری داده های binary فایل XML ما انجام شد می بایست اطلاعات دو دویی را به اطلاعات متنی XML تبدیل نماییم.</p>
<pre class="brush: as3; title: ; notranslate">

var xmlData:XML;

function on_XML(evt:Event):void
{
	if (evt.type == Event.COMPLETE)
	{
		var data:* = URLLoader(evt.target).data;
		if (data is ByteArray)
		{
			try
			{
				ByteArray(data).uncompress();
			}
			catch (e:Error)
			{
			}
		}
		xmlData = XML(data);
	}
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">با کد بالا برنامه شما می تواند هر دو نوع فایل text XML و binary XML را دریافت کند ،شما می توانید این کد را حتی در زمانی که فایل XML شما فشرده شده و به صورت دو دویی نمی باشد نیز استفاده کنید. با این کار در صورتی که شما در زمانی تصمیم گرفتید که از اطلاعات XML به صورت فشرده شده Binary در برنامه خود استفاده کنید می توانید این کار را به راحتی و بدون هیچ تغییری انجام دهید و برنامه به درستی این نوع فایل را دریافت خواهد کرد.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در پایان توجه داشته باشید این روش را می توانید برای هر فایل متنی استفاده کنید و تنها برای فایل های XML نمی باشد.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">موفق و پیروز باشید.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iflashlord.com/1389/11/%d8%b0%d8%ae%db%8c%d8%b1%d9%87-%da%a9%d8%b1%d8%af%d9%86-xml-%d8%a8%d9%87-%d8%b5%d9%88%d8%b1%d8%aa-binary/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic (Feed is rejected)
Page Caching using disk: enhanced
Database Caching 1/33 queries in 0.117 seconds using disk: basic
Object Caching 5093/5250 objects using disk: basic

Served from: blog.iflashlord.com @ 2012-02-09 16:31:57 -->
