<?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; for</title>
	<atom:link href="http://blog.iflashlord.com/tag/for/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>فشرده سازی فایل‌ها و استخراج فایل 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>روشی ساده برای کدگذاری روی String</title>
		<link>http://blog.iflashlord.com/1390/08/%d8%b1%d9%88%d8%b4%db%8c-%d8%b3%d8%a7%d8%af%d9%87-%d8%a8%d8%b1%d8%a7%db%8c-%da%a9%d8%af%da%af%d8%b0%d8%a7%d8%b1%db%8c-%d8%b1%d9%88%db%8c-string/</link>
		<comments>http://blog.iflashlord.com/1390/08/%d8%b1%d9%88%d8%b4%db%8c-%d8%b3%d8%a7%d8%af%d9%87-%d8%a8%d8%b1%d8%a7%db%8c-%da%a9%d8%af%da%af%d8%b0%d8%a7%d8%b1%db%8c-%d8%b1%d9%88%db%8c-string/#comments</comments>
		<pubDate>Fri, 28 Oct 2011 00:40:20 +0000</pubDate>
		<dc:creator>بهروز پولادرگ</dc:creator>
				<category><![CDATA[ادوبی فلش]]></category>
		<category><![CDATA[اکشن اسکریپت]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[actionscript 3]]></category>
		<category><![CDATA[Array]]></category>
		<category><![CDATA[Decode]]></category>
		<category><![CDATA[Encode]]></category>
		<category><![CDATA[encrypt]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[for]]></category>
		<category><![CDATA[indexOf]]></category>
		<category><![CDATA[length]]></category>
		<category><![CDATA[slice]]></category>
		<category><![CDATA[String]]></category>
		<category><![CDATA[اکشن اسکریپت 3]]></category>
		<category><![CDATA[دیکد]]></category>
		<category><![CDATA[فلش]]></category>
		<category><![CDATA[کدگذاری]]></category>

		<guid isPermaLink="false">http://blog.iflashlord.com/?p=1441</guid>
		<description><![CDATA[در این مطلب نحوه encrypt کردن مقادیر String آموزش داده می‌شود. در این روش دو آرایه از حروف و مقادیر معادل حروف تعریف می‌شود. به این صورت که یک مقدار String گرفته می‌شود و سپس حروف آن جدا می‌شوند و به ازای هر حرف مقدار معادل آن قرار داده می‌شود. ۱- برای شروع یک پروژه [...]]]></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/encription_string_iflashlord.jpg" alt="iflashlord.com" />
	</p><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در این مطلب نحوه encrypt کردن مقادیر String آموزش داده می‌شود. در این روش دو آرایه از حروف و مقادیر معادل حروف تعریف می‌شود. به این صورت که یک مقدار String گرفته می‌شود و سپس حروف آن جدا می‌شوند و به ازای هر حرف مقدار معادل آن قرار داده می‌شود.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><span id="more-1441"></span></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">۱- برای شروع یک پروژه Action Script 3 بسازید.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">۲- ابتدا آرایه حروف را تعریف می‌کنیم، برای مثال در این جا فقط ۱۰ کاراکتر در این آرایه قرار گرفته است. برای کامل شدن کاراکترها باید همه حروف کوچک و بزرگ انگلیسی، اعداد، حروف فارسی و نمادها نیز اضافه شوند.</p>
<pre class="brush: as3; title: ; notranslate">
var letters:Array = [&quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot;, &quot;e&quot;, &quot;f&quot;, &quot;g&quot;, &quot;A&quot;, &quot;B&quot;, &quot;C&quot;];
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">۳- حالا آرایه معادل حروف تعریف می‌شود. در این جا برای مثال به ازای هر حرف، از سه کاراکتر استفاده شده است. دقت کنید که برای همه کاراکترهایی که در آرایه حروف قرار گرفته اند باید یک معادل با ۳ کاراکتر (البته بستگی به انتخاب شما دارد) تعریف شود.</p>
<pre class="brush: as3; title: ; notranslate">
var codes:Array = [&quot;lI$&quot;, &quot;#@d&quot;, &quot;!dR&quot;, &quot;a~1&quot;, &quot;^Lg&quot;, &quot;lkd&quot;, &quot;^%(&quot;, &quot;()9&quot;, &quot;LB%&quot;, &quot;#!D&quot;];
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">4- حالا تابعی که برای کدگذاری استفاده می‌شود را تعریف می‌کنیم. در این تابع ابتدا حروف یک کلمه ورودی از هم جدا می‌شوند، سپس اندیس این کاراکتر در آرایه حروف با کد indexOf پیدا می‌شود و در ادامه معادل این اندیس در آرایه معادل یافت می‌شود.</p>
<pre class="brush: as3; title: ; notranslate">
function Encode(Word:String):String
{
	var temp:String = &quot;&quot;;
	for (var i:Number = 0; i &lt; Word.length; i++)
	{
		temp +=  codes[letters.indexOf(Word.slice(i,i + 1))];
	}
	return temp;
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">5- حالا نیاز به تابعی داریم که بتواند مقادیر کد شده را به حالت اول برگرداند، بنابراین در این تابع باید حروف کلمه ورودی را سه تا سه تا (یا هر تعدادی که در نظر گرفتید) جدا کرد، سپس اندیس این ۳ کاراکتر باید در آرایه معادل پیدا شود و در نهایت مقدار معادل اندیس در آرایه حروف یافت شود.</p>
<pre class="brush: as3; title: ; notranslate">
function Decode(Word:String):String
{
	var temp:String = &quot;&quot;;
	for (var i:Number=0; i &lt; Word.length-2; i +=3)
	{
		temp +=  letters[codes.indexOf(Word.slice(i,i + 3))];
	}
	return temp;
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">6- با توجه به این که هر دو تابع یک خروجی String دارند، بنابراین می‌توان از آنها به راحتی استفاده کرد. برای مثال:</p>
<pre class="brush: as3; title: ; notranslate">
trace(Encode(&quot;adA&quot;)); // Output: lI$a~1()9
trace(Decode(&quot;lI$a~1()9&quot;)); // Output: adA
trace(Decode(Encode(&quot;adA&quot;))); // Output: adA
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.iflashlord.com/1390/08/%d8%b1%d9%88%d8%b4%db%8c-%d8%b3%d8%a7%d8%af%d9%87-%d8%a8%d8%b1%d8%a7%db%8c-%da%a9%d8%af%da%af%d8%b0%d8%a7%d8%b1%db%8c-%d8%b1%d9%88%db%8c-string/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>حلقه های تکرار در اکشن اسکریپت ۳</title>
		<link>http://blog.iflashlord.com/1388/08/%d8%ad%d9%84%d9%82%d9%87-%d9%87%d8%a7%db%8c-%d8%aa%da%a9%d8%b1%d8%a7%d8%b1-%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/1388/08/%d8%ad%d9%84%d9%82%d9%87-%d9%87%d8%a7%db%8c-%d8%aa%da%a9%d8%b1%d8%a7%d8%b1-%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, 13 Nov 2009 07:03:51 +0000</pubDate>
		<dc:creator>بهروز پولادرگ</dc:creator>
				<category><![CDATA[ادوبی فلش]]></category>
		<category><![CDATA[اکشن اسکریپت]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[addChild]]></category>
		<category><![CDATA[for]]></category>
		<category><![CDATA[Object]]></category>
		<category><![CDATA[while]]></category>
		<category><![CDATA[اسکریپت]]></category>
		<category><![CDATA[اکشن اسکریپت 3]]></category>
		<category><![CDATA[حلقه do بی پایان در متلب]]></category>
		<category><![CDATA[حلقه for در مطلب]]></category>
		<category><![CDATA[حلقه تکرار while]]></category>
		<category><![CDATA[حلقه تکرار در متلب]]></category>
		<category><![CDATA[حلقه های تکرار]]></category>
		<category><![CDATA[حلقه های تکرار xml]]></category>
		<category><![CDATA[فلش]]></category>
		<category><![CDATA[متلب حلقه for]]></category>
		<category><![CDATA[پروژها]]></category>

		<guid isPermaLink="false">http://blog.iflashlord.com/?p=100</guid>
		<description><![CDATA[اصولا حلقه های تکرار همان طور که از نامشان معلوم می باشد ، کار و یا کارهای خاصی رو به تعدادی دفعاتی که با شرطی مشخص می شود انجام می دهند و کاربرد بسیار زیادی در برنامه نویسی دارند. حلقه تکرار for حلقه تکرار while در این مطلب به موارد زیر می پردازیم : یک [...]]]></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><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">اصولا حلقه های تکرار همان طور که از نامشان معلوم می باشد ، کار و یا کارهای خاصی رو به تعدادی دفعاتی که با شرطی مشخص می شود انجام می دهند و کاربرد بسیار زیادی در برنامه نویسی دارند.</p>
<ol type="1">
<li>حلقه تکرار for</li>
<li>حلقه تکرار while</li>
</ol>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در این مطلب به موارد زیر می پردازیم :</p>
<ol type="1">
<li>یک مثال ساده از حلقه</li>
<li>حلقه For</li>
<li>حلقه While</li>
<li>حلقه Do While</li>
<li>حلقه For Each In</li>
<li>حلقه For In</li>
</ol>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><span id="more-100"></span></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><span style="font-size: 14pt; line-height: 100%;">1- یک مثال ساده از حلقه</span></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">تصور کنید نیاز دارید یک movie Clip را ده بار بر روی پروژه خود اضافه کنید به صورت معمول از این روش استفاده می کنید</p>
<pre class="brush: as3; title: ; notranslate">
addChild(new MovieClip());
addChild(new MovieClip());
addChild(new MovieClip());
addChild(new MovieClip());
addChild(new MovieClip());
addChild(new MovieClip());
addChild(new MovieClip());
addChild(new MovieClip());
addChild(new MovieClip());
addChild(new MovieClip());
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">خوب توسط حلقه ها (در اینجا حلقه For) خواهید توانست با کد زیر همین کار را به راحتی و با کد کمتر انجام دهید</p>
<pre class="brush: as3; title: ; notranslate">
for (var i:Number=1; i &lt; 10; i++)
{
    addChild(new MovieClip());
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">addChild : توسط addChild یک شی بر روی صفحه در استیج افزوده می شود ، این گزینه برای افزودن اشاء بر روی صفحه با اکشن اسکریپت الزامی می باشد، در این مورد در بخش Display List ها توضیح بیشتری داده خواهد شد.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><span style="font-size: 14pt; line-height: 100%;">۲ &#8211; حلقه For</span></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">فرمت و قالب کلی حلقه for به صورت زیر می باشد</p>
<pre class="brush: as3; title: ; notranslate">
var i:Number;
for (i=0; condition, action)
{
	statements;
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">counter : شمارنده که در اول تعریف و مقدار دهی می شود</p>
<pre class="brush: as3; title: ; notranslate">
for (var i:Number=0; condition, action){
statements;
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">شما می توانید نوع شمارنده را جداگانه نیز مشخص نمایید :</p>
<pre class="brush: as3; title: ; notranslate">
var i:Number;
for (i=0; condition, action)
{
statements;
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">condition : شرطی که حلقه در زمان درست بود آن به کار خود ادامه می دهد.<br />
action : فرمانی که توسط آن به طور مثال شمارنده را کاهش و یا افزایش می دهیم.<br />
statements : کد مورد نظر شما که قصد دارید با هر چرخش حلقه اجرا شود.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">به عنوان مثال در کد زیر ابتدا my_mc را تعریف می کنید و سپس نام آن را mc به اضافه i که همان شمارنده است قرار می دهیم و سپس آن را توسط addChild به استیج پروژه می افزاییم.</p>
<pre class="brush: as3; title: ; notranslate">
for (var i:Number=0; i&lt;10 ; i++)
{
var my_mc = new MovieClip();
my_mc.name = &quot;mc&quot;+i;
addChild(my_mc);
}
</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"><span style="font-size: 14pt; line-height: 100%;">۳ &#8211; حلقه While</span></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">فرمت و قالب کلی حلقه Whileبه صورت زیر می باشد</p>
<pre class="brush: as3; title: ; notranslate">
while (condition)
{
statements;
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">condition : شرطی که حلقه در زملن درست بود آن به کار خود ادامه می دهد.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">statements : کد مورد نظر شما که قصد دارید با هر چرخش حلقه اجرا شود.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">برای استفاده از این نوع حلقه می بایست شمارهنده خود را به صورت مجزا بسازید و عمل افزایش را در پایان هر مرحله انجام دهید ، به مثال زیز توجه نمایید:</p>
<pre class="brush: as3; title: ; notranslate">
var i:Number = 0;
while (i &lt; 10)
{
new MovieClip();
i++;
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">ابتدا متغیر i از نوع عددی ایجاد می شود و بعد حلقه while با شرط کوچکتر بودن i از ۱۰ و بعد در پایان هر حلقه مقدار i توسط i++ یه واحد افزایش می یابد و این حلقه ۱۰ بار تکرار خواهد شد.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><strong>توصیه :</strong> اصولا اکثر کار های مورد نیاز حلقه را سعی نمایید با حلقه for انجام دهید ، زیرا انعتاف و سرعت بیشتری دارد</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><span style="font-size: 14pt; line-height: 100%;">۴ &#8211; حلقه Do While</span></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">نکته ای که در مورد این حلقه می بایست بگویم این است که این حلقه بدون توجه به شرط حلقه یک بار تمامی دستورات statements را اجرا خواهد کرد و سپس برای شرچخ دوم شرط را چک می کند در صورت درست بودن به چرخش ادامه می دهد.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">فرمت و قالب کلی حلقه Whileبه صورت زیر می باشد</p>
<pre class="brush: as3; title: ; notranslate">
do
{
statements;
}
while (condition);
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">condition : شرطی که حلقه در زملن درست بود آن به کار خود ادامه می دهد.<br />
statements : کد مورد نظر شما که قصد دارید با هر چرخش حلقه اجرا شود.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">برای درک بیشتر به مثال زیر توجه نمایید:</p>
<pre class="brush: as3; title: ; notranslate">
var i:Number = 0;
do
{
new MovieClip();
i++;
}
while (i &lt; 10);
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">ابتدا شمارنده را تعریف می کنیم و سپس حلقه do while در پایان بخش statements توسط i++ افزاینده را یک واحد افزایش می دهیم.</p>
<h2><strong><br />
</strong> ۵ &#8211; حلقه For Each In</h2>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">ساختار کلی حلقه for each in به صورت زیر می باشد :</p>
<pre class="brush: as3; title: ; notranslate">
for each (var prop in obj)
{
trace(prop);
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">obj همان شی مورد نظر که می خواهیم درون آن پیمایش نماییم، می باشد و prop  مقداری است که توسط آن به محتوای شی دسترسی پیدا می کنیم، برای مثال ابتدا یک آبجکت (Object) ایجاد می کنیم :</p>
<pre class="brush: as3; title: ; notranslate">
var myObject:Object = new Object();
myObject.myName = &quot;IFLashLord&quot;;
myObject.myAge = 5;
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">خوب اول myObject رو ایجاد کردیم بعد myAge ,myName را در Object ایجاد و مقدار دهی کردیم.وحالا حلقه :</p>
<pre class="brush: as3; title: ; notranslate">
for each (var prop in myObject)
{
trace(prop);
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">با تست این کد خروجی با مقدارهای IFLashLord و ۵ را در output فلش مشاهده خواهید نمود در واقع این نوع حلقه می تواند به شما در پیمایش object هایی که از properties های آن خبری ندارید و اصلا آنها را نمی دانید ،کمک نماید در مثال بدون اشاره به نام myName و myAge به این دو مقدار دسترسی پیدا کردیم.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><span style="font-size: 14pt; line-height: 100%;">۶ &#8211; حلقه For In</span></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">ساختار کلی حلقه for in به صورت زیر می باشد :</p>
<pre class="brush: as3; title: ; notranslate">
for (var prop in obj)
{
trace(prop);
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">obj = شی مورد نظر که می خواهیم درون آن پیمایش نماییم prop = مقداری که توسط آن به محتوای شی دسترسی پیدا می کنیمبرای مثال ابتدا یک آبجکت (Object) ایجاد می کنیم :</p>
<pre class="brush: as3; title: ; notranslate">
var myObject:Object = new Object();
myObject.myName = &quot;IFLashLord&quot;;
myObject.myAge = 5;
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">و حالا حلقه :</p>
<pre class="brush: as3; title: ; notranslate">
for  (var prop in myObject)
{
trace(prop);
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">با تست این کد خروجی با مقدارهای myName و myAge را در output فلش مشاهده خواهید نموداین دو حلقه آخر از حلقه های پیشرفته در اکشن اسکریپت می باشد که در پروژهای حرفه مورد نیاز قرار می گیرند ، در این مثال ها به صورت ابتدای و مثال ساده توضیح داده شده اند.در پایان این مبحث به مواردی درمورد حلقه های می پردازیم : گاهی اوقات شما می خواهید به مقدار شمارنده حلقه for دسترسی پیدا کنید و این کار عملا به صورت عادی قابل انجام نیست خوب حال برای این مشکل به مثال زیر توجه کنید : شاید در ابتدا این کد به نظر شما برسد :</p>
<pre class="brush: as3; title: ; notranslate">
for (var i:Number = 0; i&lt;10; i++)
{
var k:Number = i;
}
trace(k);
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">خوب با اجرای این کد با خطا رو به رو خواهید شدراه حل :</p>
<pre class="brush: as3; title: ; notranslate">
var k:Number;
for (var i:Number = 0; i&lt;10; i++)
{
     k= i;
}
trace(k);
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">همون طوری که در مثال مشاهده می کنید ابتدا متغیر k را می سازیم و فقط نوع آن را مشخص می کنیم در این مرحله می توانید مقدار خالی و یا صفر هم به متغیر بدهیمدر درون حلقه k را برابر با شمارنده i قرار می دهیمحالا بدون هیچ مشکلی به تعداد نهایی شمارنده که ۱۰ می باشد دسترسی پیدا میکنیمشاید بپرسید که این چه لزومی دارد ، این موضوع زمانی کاربرد دارد که شما توسط کدی درون حلقه بسته به شرایطی خاص عملکرد حلقه را پایان می دهید با این روش می توانید محل ایست شدن را به صورت یه متغیر داشته باشید.البته برای دسترسی به دیگر مقدارها هم مفید می باشد ، میتوانید آرایه ای ایجاد کنید و همه مقدارها را درون آن جمع اوری نمایید و صدها کار دیگر&#8230;.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">موفق و پیروز باشید</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iflashlord.com/1388/08/%d8%ad%d9%84%d9%82%d9%87-%d9%87%d8%a7%db%8c-%d8%aa%da%a9%d8%b1%d8%a7%d8%b1-%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>2</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/15 queries in 0.165 seconds using disk: basic
Object Caching 2204/2280 objects using disk: basic

Served from: blog.iflashlord.com @ 2012-02-09 16:08:18 -->
