<?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>Sat, 31 Jul 2010 05:55:09 +0000</lastBuildDate>
	<language>fa</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<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[for]]></category>
		<category><![CDATA[while]]></category>
		<category><![CDATA[اکشن اسکریپت 3]]></category>
		<category><![CDATA[حلقه های تکرار]]></category>
		<category><![CDATA[فلش]]></category>

		<guid isPermaLink="false">http://blog.iflashlord.com/?p=100</guid>
		<description><![CDATA[سلام ، خوب هستید ، شاد و پر انرژی و اکتیو&#8230;. بلاخره بعد از یک مدت کوتاه که نبودم دوباره اومدم و مقالاتی هم در مورد مسائل پایه ای و ساده و مطالبی هم در سطح حرفه ای ارائه خواهم نمود. بلاخره هم کاربرانی که تازه شروع به یادگیری کردن و هم کاربران حرفه ای [...]]]></description>
			<content:encoded><![CDATA[<p>سلام ، خوب هستید ، شاد و پر انرژی و اکتیو&#8230;. <img src='http://blog.iflashlord.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>بلاخره بعد از یک مدت کوتاه که نبودم دوباره اومدم و مقالاتی هم در مورد مسائل پایه ای و ساده و مطالبی هم در سطح حرفه ای ارائه خواهم نمود. بلاخره هم کاربرانی که تازه شروع به یادگیری کردن و هم کاربران حرفه ای برای ما عزیز هستند <img src='http://blog.iflashlord.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>اصولا حلقه های تکرار همون جوری که از اسمشون معلومه کار و یا کارهای خاصی رو به تعدادی دفعاتی که با شرطی مشخص می شود انجام می دهند و کاربرد بسیار زیادی در پروژ های فلش دارد.</p>
<ol type="1">
<li>حلقه تکرار for</li>
<li> حلقه تکرار while</li>
</ol>
<p>در این مطلب به موارد زیر می پردازیم :</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><!--sizeo:4--><span style="font-size: 14pt; line-height: 100%;"><!--/sizeo--></span></p>
<p><span id="more-100"></span></p>
<p><span style="font-size: 14pt; line-height: 100%;">1- یک مثال ساده از حلقه<!--sizec--></span></p>
<p><!--/sizec--></p>
<p>تصور کنید نیاز دارید یک movie Clip را ده بار بر روی پروژه خود اضافه کنید به صورت معمول از این روش استفاده می کنید</p>
<p><!--c1--></p>
<div dir="ltr"><!--ec1-->
<pre class="brush: as3;">
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><!--c2--></p>
</div>
<p><!--ec2-->خوب توسط حلقه ها (در اینجا حلقه For) خواهید توانست با کد زیر همین کار را به راحتی و با کد کمتر انجام دهید</p>
<p><!--c1--></p>
<div dir="ltr"><!--ec1-->
<pre class="brush: as3;">
for (var i:Number=1; i&lt;=10;i++){
addChild(new MovieClip());
}
</pre>
<p><!--c2--></p>
</div>
<p><!--ec2--></p>
<p>addChild : توسط addChild یک شی بر روی صفحه در استیج افزوده می شود ، این گذینه برای افزودن اشاء بر روی صفحه با اکشن اسکریپت الزامی می باشد، در این مورد در بخش Display List ها توضیح بیشتری داده خواهد شد.</p>
<p><!--sizeo:4--><span style="font-size: 14pt; line-height: 100%;"><!--/sizeo-->۲ &#8211; حلقه For<!--sizec--></span></p>
<p><!--/sizec--></p>
<p>فرمت و قالب کلی حلقه for به صورت زیر می باشد</p>
<p><!--c1--></p>
<div dir="ltr"><!--ec1-->
<pre class="brush: as3;">
for (counter; condition; action){
statements;
}
</pre>
<p><!--c2--></p>
</div>
<p><!--ec2--></p>
<p>counter : شمارنده که در اول تعریف و مقدار دهی می شود</p>
<p><!--c1--></p>
<div dir="ltr"><!--ec1-->
<pre class="brush: as3;">
for (var i:Number=0; condition, action){
statements;
}
</pre>
<p><!--c2--></p>
</div>
<p><!--ec2--></p>
<p>شما می توانید نوع شمارنده را جداگانه نیز مشخص نمایید :</p>
<p><!--c1--></p>
<div dir="ltr"><!--ec1--></p>
<pre class="brush: as3;">
var i:Number;
for (i=0; condition, action){
statements;
}
</pre>
<p><!--c2--></p>
</div>
<p><!--ec2--></p>
<p>condition :  شرطی که حلقه در زملن درست بود آن به کار خود ادامه می دهد.</p>
<p><!--c1--></p>
<div dir="ltr"><!--ec1-->
<pre class="brush: as3;">
for (var i:Number=0; i&lt;10 , action){
statements;
}
</pre>
<p><!--c2--></p>
</div>
<p><!--ec2--></p>
<p>action : فرمانی که توسط آن به طور مثال شمارنده را کاهش و یا افزایش می دهیم.</p>
<p><!--c1--></p>
<div dir="ltr"><!--ec1-->
<pre class="brush: as3;">
for (var i:Number=0; i&lt;10 , i++){
statements;
}
</pre>
<p><!--c2--></p>
</div>
<p><!--ec2--></p>
<p>statements : کد مورد نظر شما که قصد دارید با هر چرخش حلقه اجرا شود.</p>
<p><!--c1--></p>
<div dir="ltr"><!--ec1-->
<pre class="brush: as3;">
for (var i:Number=0; i&lt;10 , i++){
new MovieClip();
}
</pre>
<p><!--c2--></p>
</div>
<p><!--ec2--></p>
<p>به عنوان مثال در کد زیر ابتدا my_mc را تعریف می کنید و سپس نام آن را mc به اضافه i که همان شمارنده است قرار می دهیم و سپس آن را توسط addChild به استیج پروژه می افزاییم.</p>
<p><!--c1--></p>
<div dir="ltr"><!--ec1-->
<pre class="brush: as3;">
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><!--c2--></p>
</div>
<p><!--ec2--></p>
<p>نکته قابل توجه این است که شما نمی توانید از متغیر هایی مه درون حلقه ساخته ای بیرون از آن استفاده کنید ، در هر چرخش حلقه متغیرها با مقدارهای جدید مقدار دهی می شوند و شما نتها نتیجه پایانی را مشاهده می کنید.</p>
<p><!--sizeo:4--><span style="font-size: 14pt; line-height: 100%;"><!--/sizeo-->۳ &#8211; حلقه While<!--sizec--></span></p>
<p><!--/sizec--><br />
فرمت و قالب کلی حلقه Whileبه صورت زیر می باشد</p>
<p><!--c1--></p>
<div dir="ltr"><!--ec1-->
<pre class="brush: as3;">
while (condition){
statements;
}
</pre>
<p><!--c2--></p>
</div>
<p><!--ec2--></p>
<p>condition :  شرطی که حلقه در زملن درست بود آن به کار خود ادامه می دهد.</p>
<p>statements : کد مورد نظر شما که قصد دارید با هر چرخش حلقه اجرا شود.</p>
<p>برای استفاده از این نوع حلقه می بایست شمارهنده خود را به صورت مجزا بسازید و عمل افزایش را در پایان هر مرحله انجام دهید ، به مثال زیز توجه نمایید:</p>
<p><!--c1--></p>
<div dir="ltr"><!--ec1-->
<pre class="brush: as3;">
var i:Number = 0;
while (i &lt; 10){
new MovieClip();
i++;
}
</pre>
<p><!--c2--></p>
</div>
<p><!--ec2--></p>
<p>ابتدا متغیر i از نوع عددی ایجاد می شود و بعد حلقه while با شرط کوچکتر بودن i از ۱۰ و بعد در پایان هر حلقه مقدار i توسط i++ یه واحد افزایش می یابد و این حلقه ۱۰ بار تکرار خواهد شد.</p>
<p><strong>توصیه  :</strong> اصولا اکثر کار های مورد نیاز حلقه را سعی نمایید با حلقه for انجام دهید ، زیرا انعتاف و سرعت بیشتری دارد</p>
<p><!--sizeo:4--><span style="font-size: 14pt; line-height: 100%;"><!--/sizeo-->۴ &#8211; حلقه Do While<!--sizec--></span></p>
<p><!--/sizec--></p>
<p>نکته ای که در مورد این حلقه می بایست بگویم این است که این حلقه بدون توجه به شرط حلقه یک بار تمامی دستورات statements را اجرا خواهد کرد و سپس برای شرچخ دوم شرط را چک می کند در صورت درست بودن به چرخش ادامه می دهد.</p>
<p>فرمت و قالب کلی حلقه Whileبه صورت زیر می باشد</p>
<p><!--c1--></p>
<div dir="ltr"><!--ec1-->
<pre class="brush: as3;">
do {
statements;
} while (condition);
</pre>
<p><!--c2--></p>
</div>
<p><!--ec2--></p>
<p>condition :  شرطی که حلقه در زملن درست بود آن به کار خود ادامه می دهد.</p>
<p>statements : کد مورد نظر شما که قصد دارید با هر چرخش حلقه اجرا شود.</p>
<p>برای درک بیشتر به مثال زیر توجه نمایید:</p>
<p><!--c1--></p>
<div dir="ltr"><!--ec1-->
<pre class="brush: as3;">
var i:Number = 0;
do {
new MovieClip();
i++;
} while (i &lt; 10);
</pre>
<p><!--c2--></p>
</div>
<p><!--ec2--></p>
<p>ابتدا شمارنده را تعریف می کنیم  و سپس حلقه do while در پایان بخش statements توسط i++ افزاینده را یک واحد افزایش می دهیم.</p>
<h2><strong><br />
</strong> ۵ &#8211; حلقه For Each In</h2>
<p>ساختار کلی حلقه for each in  به صورت زیر می باشد  :<br />
<!--c1--></p>
<div dir="ltr"><!--ec1-->
<pre class="brush: as3;">
for each (var prop in obj){
trace(prop);
}
</pre>
<p><!--c2--></p>
</div>
<p><!--ec2-->obj = شی مورد نظر که می خواهیم درون آن پیمایش نماییمprop  = مقداری که توسط آن به محتوای شی دسترسی پیدا می کنیمبرای مثال ابتدا یک آبجکت (Object) ایجاد می کنیم :</p>
<p><!--c1--></p>
<div dir="ltr"><!--ec1-->
<pre class="brush: as3;">
var myObject:Object = new Object();
myObject.myName = &quot;IFLashLord&quot;;
myObject.myAge = 5;
</pre>
<p><!--c2--></p>
</div>
<p><!--ec2-->خوب اول myObject رو ایجاد کردیمبعد myAge ,myName  را در Object ایجاد و مقدار دهی کردیم.وحالا حلقه :</p>
<p><!--c1--></p>
<div dir="ltr"><!--ec1-->
<pre class="brush: as3;">
for each (var prop in myObject){
trace(prop);
}
</pre>
<p><!--c2--></p>
</div>
<p><!--ec2-->با تست این کد خروجی با مقدارهای PCSEVEN و ۵ را در output  فلش مشاهده خواهید نموددر واقع این نوع حلقه می تواند به شما در پیمایش object هایی که از properties های آن خبری ندارید و اصلا آنها را نمی دانید کمک نمایددر مثال بدون اشاره به نام myName و myAge به این دو مقدار دسترسی پیدا کردیم</p>
<p><!--sizeo:4--><span style="font-size: 14pt; line-height: 100%;"><!--/sizeo-->۶ &#8211; حلقه For In<!--sizec--></span></p>
<p><!--/sizec-->ساختار کلی حلقه for in  به صورت زیر می باشد  :</p>
<p><!--c1--></p>
<div dir="ltr"><!--ec1-->
<pre class="brush: as3;">
for (var prop in obj){
trace(prop);
}
</pre>
<p><!--c2--></div>
<p><!--ec2-->obj = شی مورد نظر که می خواهیم درون آن پیمایش نماییم  prop  = مقداری که توسط آن به محتوای شی دسترسی پیدا می کنیمبرای مثال ابتدا یک آبجکت (Object) ایجاد می کنیم :</p>
<p><!--c1--></p>
<div dir="ltr"><!--ec1-->
<pre class="brush: as3;">
var myObject:Object = new Object();
myObject.myName = &quot;IFLashLord&quot;;
myObject.myAge = 5;
</pre>
<p><!--c2--></p>
</div>
<p><!--ec2-->وحالا حلقه :</p>
<p><!--c1--></p>
<div dir="ltr"><!--ec1-->
<pre class="brush: as3;">
for  (var prop in myObject){
trace(prop);
}
</pre>
<p><!--c2--></p>
</div>
<p><!--ec2-->با تست این کد خروجی با مقدارهای myName و myAge  را در output  فلش مشاهده خواهید نموداین دو حلقه آخر از حلقه های پیشرفته در اکشن اسکریپت می باشد که در پروژهای حرفه مورد نیاز قرار می گیرند ، در این مثال ها به صورت ابتدای و مثال ساده توضیح داده شده اند.در پایان این مبحث به مواردی درمورد حلقه های می پردازیم : گاهی اوقات شما می خواهید به مقدار شمارنده حلقه for دسترسی پیدا کنید و این کار عملا به صورت عادی قابل انجام نیست خوب حال برای این مشکل به مثال زیر توجه کنید : شاید در ابتدا این کد به نظر شما برسد :</p>
<p><!--c1--></p>
<div dir="ltr"><!--ec1-->
<pre class="brush: as3;">
for (var i:Number = 0; i&lt;10; i++){
var k:Number = i;
}
trace(k);
</pre>
<p><!--c2--></p>
</div>
<p><!--ec2-->خوب با اجرای این کد با خطا رو به رو خواهید شدراه حل  :</p>
<p><!--c1--></p>
<div dir="ltr"><!--ec1-->
<pre class="brush: as3;">
var k:Number;
for (var i:Number = 0; i&lt;10; i++){
k = i;
}
trace(k);
</pre>
<p><!--c2--></p>
</div>
<p><!--ec2-->همون طوری که در مثال مشاهده می کنید ابتدا متغیر k را می سازیم و فقط نوع آن را مشخص می کنیم در این مرحله می توانید مقدار خالی و یا صفر هم به متغیر بدهیمدر درون حلقه k را برابر با شمارنده i قرار می دهیمحالا بدون هیچ مشکلی به تعداد نهایی شمارنده که ۱۰ می باشد دسترسی پیدا میکنیمشاید بپرسید که این چه لزومی دارد ، این موضوع زمانی کاربرد دارد که شما توسط کدی درون حلقه بسته به شرایطی خاص عملکرد حلقه را پایان می دهید با این روش می توانید محل ایست شدن را به صورت یه متغیر داشته باشید.البته برای دسترسی به دیگر مقدارها هم مفید می باشد ، میتوانید آرایه ای ایجاد کنید و همه مقدارها را درون آن جمع اوری نمایید و صدها کار دیگر&#8230;.</p>
<p>موفق و پیروز باشید</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>
