<?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; Function</title>
	<atom:link href="http://blog.iflashlord.com/tag/function/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>اعمال افکت blur به BitmapData در اکشن اسکریپت ۳</title>
		<link>http://blog.iflashlord.com/1390/08/%d8%a7%d8%b9%d9%85%d8%a7%d9%84-%d8%a7%d9%81%da%a9%d8%aa-blur-%d8%a8%d9%87-bitmapdata-%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%a7%d8%b9%d9%85%d8%a7%d9%84-%d8%a7%d9%81%da%a9%d8%aa-blur-%d8%a8%d9%87-bitmapdata-%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>Mon, 21 Nov 2011 00:51:47 +0000</pubDate>
		<dc:creator>بهروز پولادرگ</dc:creator>
				<category><![CDATA[ادوبی فلش]]></category>
		<category><![CDATA[اکشن اسکریپت]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[actionscript 3]]></category>
		<category><![CDATA[addChild]]></category>
		<category><![CDATA[applyFilter]]></category>
		<category><![CDATA[AS Linkage]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[bitmap]]></category>
		<category><![CDATA[BitmapData]]></category>
		<category><![CDATA[blur]]></category>
		<category><![CDATA[blurApply]]></category>
		<category><![CDATA[BlurFilter]]></category>
		<category><![CDATA[blur_effect_bitmapdata_iflashlord]]></category>
		<category><![CDATA[bmd]]></category>
		<category><![CDATA[Ctrl+R]]></category>
		<category><![CDATA[DisplayObject]]></category>
		<category><![CDATA[effect]]></category>
		<category><![CDATA[effectBlur]]></category>
		<category><![CDATA[flash.display.Bitmap]]></category>
		<category><![CDATA[flash.display.BitmapData]]></category>
		<category><![CDATA[flash.geom.Point]]></category>
		<category><![CDATA[flash.geom.Rectangle]]></category>
		<category><![CDATA[Function]]></category>
		<category><![CDATA[Import]]></category>
		<category><![CDATA[Library]]></category>
		<category><![CDATA[MovieClip]]></category>
		<category><![CDATA[MyPic]]></category>
		<category><![CDATA[Point]]></category>
		<category><![CDATA[rect]]></category>
		<category><![CDATA[rect.topLeft]]></category>
		<category><![CDATA[Rectangle]]></category>
		<category><![CDATA[return]]></category>
		<category><![CDATA[stage]]></category>
		<category><![CDATA[آرگمان]]></category>
		<category><![CDATA[ادوبی]]></category>
		<category><![CDATA[افکت]]></category>
		<category><![CDATA[افکت بلور]]></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=1658</guid>
		<description><![CDATA[در این مطلب می خواهیم به روشی ساده برای اعمال افکت blur به یک شی از نوع BitmapData بپردازیم. توجه داشته باشید این نوع اعمال افکت با افکت ها و Filterهای معمول فلش متفاوت هست و بر روی خود BitmapData اعمال می شود و نه بر روی MovieClip ی که تصویری در آن قرار دارد. [...]]]></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/blur_effect_bitmapdata_as3_iflashlord.jpg" alt="iflashlord.com" />
	</p><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در این مطلب می خواهیم به روشی ساده برای اعمال افکت blur به یک شی از نوع BitmapData بپردازیم. توجه داشته باشید این نوع اعمال افکت با افکت ها و Filterهای معمول فلش متفاوت هست و بر روی خود BitmapData اعمال می شود و نه بر روی MovieClip ی که تصویری در آن قرار دارد.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><span id="more-1658"></span></p>
<blockquote><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">دانلود سورس : <a title="blur_effect_bitmapdata_iflashlord" href="http://blog.iflashlord.com/wp-content/uploads/2011/11/blur_effect_bitmapdata_iflashlord.zip">blur_effect_bitmapdata_iflashlord.zip  </a></p></blockquote>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">یک پروژه جدید در نرم افزار ادوبی فلش ایجاد نمایید و یک تصویر را وارد برنامه کنید (Ctrl+R) در این مثال ما از تصویر زیر استفاده کرده ایم.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><img class="alignnone size-full wp-image-1661" title="blur_bitmap_sample_image_iflashlord" src="http://blog.iflashlord.com/wp-content/uploads/2011/11/blur_bitmap_sample_image_iflashlord.jpg" alt="" width="469" height="349" /></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">و کلاس های مورد نیاز را import می کنیم :</p>
<pre class="brush: as3; title: ; notranslate">
import flash.display.BitmapData;
import flash.display.Bitmap;
import flash.geom.Rectangle;
import flash.geom.Point;
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در مرحله بعد تابعی با نام blurApply ایجاد می کنیم و آرگمان آن را bmd و از نوع BitmapData قرار می دهیم.</p>
<pre class="brush: as3; title: ; notranslate">
function blurApply(bmd:BitmapData):BitmapData
{
	var effectBlur:BlurFilter = new BlurFilter(4,4,3);
	var rect:Rectangle = new Rectangle(0,0,bmd.width ,bmd.height );
	var point:Point = new Point(0,0);

	bmd.applyFilter(bmd , rect , point , effectBlur);

	return bmd;
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در این تابع ابتدا یک متغیر با نام effectBlur می سازیم و نوع آن را BlurFilter قرار می دهیم و یک نمونه از کلاس BlurFilter را ایجاد می کنیم ، آرگمان های ورودی این کلاس سه مورد می باشد که دو مورد اول برای ایجاد افکت blur در طول و عرض می باشد و مورد سوم مربوطه به کیفیت این افکت که بر روی شی ما اعمال می شود.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در خط بعد ما یک متغیر از نوع Rectangle با نام rect ایجاد می کنیم ایم متغیر در واقع وظیفه مشخص کردن محدوده ای می باشد که قرار است افکت بر روی آن اعمال شود به همین دلیل دو مقدار اولیه که x, y می باشند و محل شروع را مشخص می کنند با ۰ و ۰ مقدار دهی شده اند و دو مقدار بعدی که مربوطه به عرض و طول می باشند با عرض و طول BitmapData که آرگمان ورودی این تابع می باشد مقدار دهی شده اند.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در خط بعد یک Point نیز با مقدار ۰,۰ ایجاد می کنیم که مشخص کننده گوشه سمت چپ و بالایی شی می باشد. به جای این بخش می توانیم از rect.topLeft نیز استفاده کنیم.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در خط بعد توسط applyFilter اقدام به اعمال افکت بر روی شی خود می نماییم، این متد مربوطه به BitmapData می باشد و آرگمان های ورودی آن به ترتیب مربوطه به شی BitmapData و محدوده مشخص کننده ، point و افکت تعریف شده ، می باشد.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">تغییرات مورد نظر ما در این تابع بر روی bmd انجام شده است ، حال bmd را به عنوان مقدار بازگشتی تابع در خط آخر تابع return می کنیم.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">تا این مرحله تابع مورد نظر ما ایجاد شد ، حال به نحوه استفاده آن می پردازیم. تصویری که در ابتدا در پروژه وارد کردیم را از stage حذف می کنیم به بخش Library می رویم و AS Linkage آن را با  MyPic مقدار دهی می کنیم.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><img class="alignnone size-full wp-image-1663" title="as_linkage_sample_image_iflashlord" src="http://blog.iflashlord.com/wp-content/uploads/2011/11/as_linkage_sample_image_iflashlord.png" alt="" width="357" height="346" /></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">حال یک متغیر با نام myPic و از نوع MyPic ایجاد می کنیم و آن را با یک نمونه از MyPic مقدار دهی می کنیم.</p>
<pre class="brush: as3; title: ; notranslate">
var myPic:MyPic = new MyPic();//دریافت تصویر از کتابخانه
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">سپس یک متغیر با نام bit می سازیم و آن را از نوع کلاس Bitmap قرار می دهیم و یک نمونه از کلاس Bitmap را به آن نسبت می دهیم در آرگمان اول مربوطه با کلاس Bitmap مقدار myPic را وارد می کنیم.</p>
<pre class="brush: as3; title: ; notranslate">
var bit:Bitmap = new Bitmap(myPic);
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در مرحله بعد نیز خصوصیت BitmapData مربوطه به متغیر bit را توسط تابع ایجاد شده مقدار دهی می کنیم.</p>
<pre class="brush: as3; title: ; notranslate">
bit.bitmapData = blurApply(bit.bitmapData);
addChild(bit);
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">و در آخر نیز bit را توسط <a title="توابع در اکشن اسکریپت ۳" href="http://blog.iflashlord.com/1388/08/%d8%aa%d9%88%d8%a7%d8%a8%d8%b9-%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/">addChild </a>به شی نمایشی (<a title="Display List و اکشن اسکریپت ۳" href="http://blog.iflashlord.com/1388/09/display-list-%d9%88-%d8%a7%da%a9%d8%b4%d9%86-%d8%a7%d8%b3%da%a9%d8%b1%db%8c%d9%be%d8%aa-3/">DisplayObject</a>) اضافه می کنیم تا در صفحه نمایش داده شود.</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-1664" title="blured_sample_image_iflashlord" src="http://blog.iflashlord.com/wp-content/uploads/2011/11/blured_sample_image_iflashlord.jpg" alt="" width="469" height="349" /></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">حال اگر در تابع در بخش rect که مربوطه به محدوده ای می باشد که افکت بر روی آن اعمال می شود ، مقدارهای عرض و طول را تقسیم بر ۲ کنیم در واقع افکت بر روی یک چهارم تصویر اعمال می شود.</p>
<pre class="brush: as3; highlight: [4]; title: ; notranslate">
function blurApply(bmd:BitmapData):BitmapData
{
	var effectBlur:BlurFilter = new BlurFilter(4,4,3);
	var rect:Rectangle = new Rectangle(0,0,bmd.width/2 ,bmd.height/2 );
	var point:Point = new Point(0,0);

	bmd.applyFilter(bmd , rect , point , effectBlur);

	return bmd;
}
</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"><img class="alignnone size-full wp-image-1665" title="blured_half_sample_image_iflashlord" src="http://blog.iflashlord.com/wp-content/uploads/2011/11/blured_half_sample_image_iflashlord.jpg" alt="" width="469" height="349" /></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">شما این امکان را دارید که با مقدار دهی دو آرگمان اول rectangle در بخش نمایشی تصویر جا به جایی ایجاد کنید و توسط مقدار دهی دو آرگمان point مختصات محل نمایش بخشی که افکت بر روی آن اعمال شده را تغییر دهید.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در پایان تمام کدهایی که برای این پروژه نیاز می باشد را در زیر قرار می دهیم:</p>
<pre class="brush: as3; title: ; notranslate">
import flash.display.BitmapData;
import flash.display.Bitmap;
import flash.geom.Rectangle;
import flash.geom.Point;

function blurApply(bmd:BitmapData):BitmapData
{
	var effectBlur:BlurFilter = new BlurFilter(4,4,3);
	var rect:Rectangle = new Rectangle(0,0,bmd.width ,bmd.height);
	var point:Point = new Point(0,0);

	bmd.applyFilter(bmd , rect , point , effectBlur);

	return bmd;
}

var myPic:MyPic = new MyPic();//دریافت تصویر از کتابخانه
var bit:Bitmap = new Bitmap(myPic);

bit.bitmapData = blurApply(bit.bitmapData);
addChild(bit);
</pre>
<blockquote><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">دانلود سورس : <a title="blur_effect_bitmapdata_iflashlord" href="http://blog.iflashlord.com/wp-content/uploads/2011/11/blur_effect_bitmapdata_iflashlord.zip">blur_effect_bitmapdata_iflashlord.zip  </a></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.iflashlord.com/1390/08/%d8%a7%d8%b9%d9%85%d8%a7%d9%84-%d8%a7%d9%81%da%a9%d8%aa-blur-%d8%a8%d9%87-bitmapdata-%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>11</slash:comments>
		</item>
		<item>
		<title>حذف http و www توسط اکشن اسکریپت ۳</title>
		<link>http://blog.iflashlord.com/1390/08/%d8%ad%d8%b0%d9%81-http-%d9%88-www-%d8%aa%d9%88%d8%b3%d8%b7-%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%ad%d8%b0%d9%81-http-%d9%88-www-%d8%aa%d9%88%d8%b3%d8%b7-%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, 11 Nov 2011 13:18:24 +0000</pubDate>
		<dc:creator>بهروز پولادرگ</dc:creator>
				<category><![CDATA[ادوبی فلش]]></category>
		<category><![CDATA[اکشن اسکریپت]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Boolean]]></category>
		<category><![CDATA[false]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Function]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[RegExp]]></category>
		<category><![CDATA[replace]]></category>
		<category><![CDATA[String]]></category>
		<category><![CDATA[stripHttp]]></category>
		<category><![CDATA[stripWWW]]></category>
		<category><![CDATA[true]]></category>
		<category><![CDATA[اکشن اسکریپت 3]]></category>
		<category><![CDATA[حذف http]]></category>
		<category><![CDATA[حذف www]]></category>
		<category><![CDATA[عبارات با قائده]]></category>
		<category><![CDATA[عبارات با قاعده]]></category>
		<category><![CDATA[فلش]]></category>

		<guid isPermaLink="false">http://blog.iflashlord.com/?p=1604</guid>
		<description><![CDATA[تابعی که ما در این مطلب اقدام به ساخت آن می کنیم ، یک محتوای متنی را دریافت می کند و تمامی http:// و https:// های موجود دار آن را حذف می کند و در صورتی که آرگمان دوم آن که stripWWW می باشد برابر با true قرار داده شود تمامی www ها را نیز [...]]]></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/strip_http_www_iflashlord.jpg" alt="iflashlord.com" />
	</p><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">تابعی که ما در این مطلب اقدام به ساخت آن می کنیم ، یک محتوای متنی را دریافت می کند و تمامی http:// و https:// های موجود دار آن را حذف می کند و در صورتی که آرگمان دوم آن که stripWWW می باشد برابر با true قرار داده شود تمامی www ها را نیز حذف می کند ، به طور پیش فرض ما این آرگمان را در تابعی که کد آن در زیر قرار داده شده است false قرار داده ایم.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><span id="more-1604"></span>برای بهتر متوجه شدن نتیجه این تابع به این مثال توجه کنید ، متن ورود ما که به عنوان آرگمان string در تابع تعریف شده است :</p>
<pre class="brush: plain; title: ; notranslate">
آخرین پروژه های اجرا شده را می توانید در http://www.iflashlord.com ببینید
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">متنی که بعد از استفاده این مقدار در تابع به عنوان آرگمان اول ، خروجی داده می شود به صورت زیر خواهد بود:</p>
<pre class="brush: plain; title: ; notranslate">
آخرین پروژه های اجرا شده را می توانید در www.iflashlord.com ببینید
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">و در صورتی که آرگمان دوم true باشد :</p>
<pre class="brush: plain; title: ; notranslate">
آخرین پروژه های اجرا شده را می توانید در iflashlord.com ببینید
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><strong>حال به کد تابع می پردازیم:</strong></p>
<pre class="brush: as3; title: ; notranslate">

function stripHttp(string:String, stripWWW:Boolean = false):String
{
	var s:String = string;
	var regexp:RegExp = new RegExp(! stripWWW ? &quot;https*:\/\/&quot;:&quot;https*:\/\/(www\.)*&quot;,&quot;ig&quot;);
	return s.replace(regexp, &quot;&quot;);
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">بعد از تعریف تابع و آرگمان های آن ، یک متغییر برای ذخیره سازی کپی از متن ورودی در آن با نام s می سازیم ، سپس با کمک گرفتن از <a title="حذف فاصله های موجود در یک نوشته توسط اکشن اسکریپت ۳" href="http://blog.iflashlord.com/1388/11/%d8%ad%d8%b0%d9%81-%d9%81%d8%a7%d8%b5%d9%84%d9%87-%d9%87%d8%a7%db%8c-%d9%85%d9%88%d8%ac%d9%88%d8%af-%d8%af%d8%b1-%db%8c%da%a9-%d9%86%d9%88%d8%b4%d8%aa%d9%87-%d8%aa%d9%88%d8%b3%d8%b7-%d8%a7%da%a9%d8%b4/">عبارات با قائده </a>و تابع <a title="slugify کردن متن در اکشن اسکریپت ۳" href="http://blog.iflashlord.com/1390/08/slugify-%da%a9%d8%b1%d8%af%d9%86-%d9%85%d8%aa%d9%86-%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/">RegExp </a>متغیر regexp را تعریف می کنیم ، این متغیر در واقع اشاره گری به تمامی http:// و https:// و www ها می باشد (در این مثال) و با استفاده از آن برای متد replace مربوطه به string ها و جا به جا کردن این مقادیر با مقدار &#8220;&#8221; که نشان گر مقدار پوچ می باشد ،این مقادیر را از رشته متنی خود حذف می کنیم</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در نهایت رشته متنی نهایی که محتوای بازگشتی s.<a title="حذف فاصله های موجود در یک نوشته توسط اکشن اسکریپت ۳" href="http://blog.iflashlord.com/1388/11/%d8%ad%d8%b0%d9%81-%d9%81%d8%a7%d8%b5%d9%84%d9%87-%d9%87%d8%a7%db%8c-%d9%85%d9%88%d8%ac%d9%88%d8%af-%d8%af%d8%b1-%db%8c%da%a9-%d9%86%d9%88%d8%b4%d8%aa%d9%87-%d8%aa%d9%88%d8%b3%d8%b7-%d8%a7%da%a9%d8%b4/">replace</a> می باشد را توسط return بازگشت می دهیم.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">برای استفاده از این تابع به شکل زیر اقدام می کنیم :</p>
<pre class="brush: as3; title: ; notranslate">

trace (stripHttp(&quot;آخرین پروژه های اجرا شده را می توانید در http://www.iflashlord.com ببینید&quot; , true));
//آخرین پروژه های اجرا شده را می توانید در iflashlord.com ببینید

trace (stripHttp(&quot;آخرین پروژه های اجرا شده را می توانید در http://www.iflashlord.com ببینید&quot; , false));
//آخرین پروژه های اجرا شده را می توانید در www.iflashlord.com ببینید
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.iflashlord.com/1390/08/%d8%ad%d8%b0%d9%81-http-%d9%88-www-%d8%aa%d9%88%d8%b3%d8%b7-%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>کلاس‌های Dynamic در اکشن اسکریپت ۳</title>
		<link>http://blog.iflashlord.com/1390/08/%da%a9%d9%84%d8%a7%d8%b3%e2%80%8c%d9%87%d8%a7%db%8c-dynamic-%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/%da%a9%d9%84%d8%a7%d8%b3%e2%80%8c%d9%87%d8%a7%db%8c-dynamic-%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, 04 Nov 2011 01:23:56 +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[AS3]]></category>
		<category><![CDATA[Class]]></category>
		<category><![CDATA[Container]]></category>
		<category><![CDATA[dynamic]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Function]]></category>
		<category><![CDATA[instance]]></category>
		<category><![CDATA[method]]></category>
		<category><![CDATA[new Object]]></category>
		<category><![CDATA[newProperty]]></category>
		<category><![CDATA[Object]]></category>
		<category><![CDATA[package]]></category>
		<category><![CDATA[property]]></category>
		<category><![CDATA[public dynamic class]]></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=1531</guid>
		<description><![CDATA[ویژگی پویایی، از جمله امکاناتی است که در گذشته در زبان اکشن اسکریپت وجود نداشت، اما از نسخه ۳ و FP9 به آن اضافه شد. تنها تفاوت یک کلاس پویا، با کلاس غیر پویا در این است که کلاس پویا می‌تواند در زمان اجرا، صفات جدیدی را بپذیرد. در واقع به سادگی مقدار دهی به [...]]]></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/dynamic_class_as3_iflashlord.jpg" alt="iflashlord.com" />
	</p><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">ویژگی پویایی، از جمله امکاناتی است که در گذشته در زبان اکشن اسکریپت وجود نداشت، اما از نسخه ۳ و FP9 به آن اضافه شد.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">تنها تفاوت یک کلاس پویا، با کلاس غیر پویا در این است که کلاس پویا می‌تواند در زمان اجرا، صفات جدیدی را بپذیرد. در واقع به سادگی مقدار دهی به یک متغیر، می‌توان یک صفت جدید (property یا function یا حتی object) را به اشیائی که از یک کلاس پویا ایجاد شده‌اند اضافه نمود.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><span id="more-1531"></span></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">این تفاوت کوچک در عمل، کار و تعامل با کلاس‌های پویا را تا حد زیادی ساده می‌کند. از آنجا که شئ‌گرایی در AS 3.0 حد و مرز ندارد، در حین طراحی یک برنامه واقعی به دفعات اتفاق می‌افتد که بخواهیم صفات جدیدی را در زمان اجرا و تحت شرایطی خاص، به یک شئ اضافه نموده و یا از آن به عنوان یک حامل یا ظرف (Container) استفاده کنیم.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><strong>تعریف کلاس پویا:</strong></p>
<pre class="brush: as3; title: ; notranslate">
package {
public dynamic class TestClass {
//defenition
}
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><strong>اضافه کردن صفت در زمان اجرا:</strong></p>
<pre class="brush: as3; title: ; notranslate">
var dynaObject: TestClass = new TestClass();

var obj:Object = new Object();
var idx:Array = new Array(1,2,3,4,5,6,7,8,9);

dynaObject.propTest = &quot;newProperty&quot;;
dynaObject.obj = obj;
dynaObject[&quot;idx&quot;] = idx;

trace(dynaObject.propTest, dynaObject.obj, dynaObject.idx);
//newProperty [object Object] 1,2,3,4,5,6,7,8,9
</pre>
<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">- صفات پویا به instance اضافه می‌شوند نه خود کلاس.</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>توضیح: مقصود از &#8220;صفت&#8221; در AS 3.0، هم property و هم function یا method است.</em></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><a href="http://blog.mshams.ir/2011/06/dynamic-actionscript-30.html" target="_blank">+منبع</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iflashlord.com/1390/08/%da%a9%d9%84%d8%a7%d8%b3%e2%80%8c%d9%87%d8%a7%db%8c-dynamic-%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>
		<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>slugify کردن متن در اکشن اسکریپت ۳</title>
		<link>http://blog.iflashlord.com/1390/08/slugify-%da%a9%d8%b1%d8%af%d9%86-%d9%85%d8%aa%d9%86-%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/slugify-%da%a9%d8%b1%d8%af%d9%86-%d9%85%d8%aa%d9%86-%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>Tue, 25 Oct 2011 01:51:50 +0000</pubDate>
		<dc:creator>بهروز پولادرگ</dc:creator>
				<category><![CDATA[ادوبی فلش]]></category>
		<category><![CDATA[اکشن اسکریپت]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[const]]></category>
		<category><![CDATA[Flash Builder]]></category>
		<category><![CDATA[Function]]></category>
		<category><![CDATA[pattern]]></category>
		<category><![CDATA[RegExp]]></category>
		<category><![CDATA[Regular-Expressions]]></category>
		<category><![CDATA[replace]]></category>
		<category><![CDATA[slug]]></category>
		<category><![CDATA[slugify]]></category>
		<category><![CDATA[String]]></category>
		<category><![CDATA[toLowerCase]]></category>
		<category><![CDATA[URL]]></category>
		<category><![CDATA[اکشن اسکریپت 3]]></category>
		<category><![CDATA[تابع]]></category>
		<category><![CDATA[حذف کاراکتر]]></category>
		<category><![CDATA[عبارات با قاعده]]></category>
		<category><![CDATA[فلش]]></category>
		<category><![CDATA[نام فایل]]></category>
		<category><![CDATA[پترن]]></category>

		<guid isPermaLink="false">http://blog.iflashlord.com/?p=1417</guid>
		<description><![CDATA[در این مطلب به slugify پرداخته می شود ، در کل به آماده کردن یک متن برای استفاده در URL و یا به عنوان نام یک فایل توسط حذف کاراکتر هایی که برای این موارد مجاز نمی باشد در استلاح slugify یا slug کردن نامیده می شود. در ادامه ما توسط عبارات با قاعده (Regular-Expressions) [...]]]></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/slugify_iflashlord.jpg" alt="iflashlord.com" />
	</p><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در این مطلب به slugify پرداخته می شود ، در کل به آماده کردن یک متن برای استفاده در URL و یا به عنوان نام یک فایل توسط حذف کاراکتر هایی که برای این موارد مجاز نمی باشد در استلاح slugify یا slug کردن نامیده می شود.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در ادامه ما توسط عبارات با قاعده (Regular-Expressions) و تابع replace در اکشن اسکریپت ۳ ، اقدام به ساخت تابعی می کنیم که این کار را برای ما انجام دهد.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><span id="more-1417"></span></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در ابتدا دو RegExp که دو پترن مورد نیاز ما می باشند را به عنوان ثابت (const) تعریف می کنیم، مورد اول pattern1 مربوطه به انتخاب همه حروف الفبا و علامت دش (-) یا همان خط تیره می باشد که در کد زیر توسط (\ا-ی) تمامی حروف الفبای فارسی نیز پشتیبانی می شود، و مورد دوم pattern2 می باشد که فاصله ها یا همان Space های موجود در متن توسط آن انتخاب می شوند.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در نهایت توسط تابع replace مربوطه به string ها در اکشن اسکریپت ۳ متون اضافی حذف  ،و فاصله ها با علامت (-) جا به جا می شوند و در نهایت متن توسط toLowerCase به حروف کوچک تبدیل می شود و بازگشت داده می شود.</p>
<pre class="brush: as3; title: ; notranslate">
function slugify(string:String):String
{
const pattern1:RegExp = /[^\w-\ا-ی ]/g;// همه حروف به جز فاصله و علامت دش (-) ؛
const pattern2:RegExp = / +/g;// یک یا بیش از یک فاصله
var s:String = string;
return s.replace(pattern1, &quot;&quot;).replace(pattern2, &quot;-&quot;).toLowerCase();
}
//مثال
trace(slugify(&quot;تست  متن با فاصله&quot;));
//تست-متن-با-فاصله

trace(slugify(&quot;test  text with space&quot;));
//test-text-with-space
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">اگر می خواهید که تنها کاراکتر های انگلیسی پشتیبانی شود و متون فارسی نیز از خروجی حدف شود تابع بالا را طبق کد زیر تغییر دهید:</p>
<pre class="brush: as3; highlight: [3]; title: ; notranslate">
function slugify(string:String):String
{
const pattern1:RegExp = /[^\w- ]/g;// همه حروف انگلیسی به جز فاصله و علامت دش (-) ؛
const pattern2:RegExp = / +/g;// یک یا بیش از یک فاصله
var s:String = string;
return s.replace(pattern1, &quot;&quot;).replace(pattern2, &quot;-&quot;).toLowerCase();
}
//مثال
trace(slugify(&quot;تست  متن با فاصله&quot;));//-
trace(slugify(&quot;test  text with space&quot;));//test-text-with-space
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">این تابع در مواردی که می خواهید متون را در آدرس های وب (URL) و یا به عنوان نام فایل مورد استفاده قرار دهید ،کاربرد دارد.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iflashlord.com/1390/08/slugify-%da%a9%d8%b1%d8%af%d9%86-%d9%85%d8%aa%d9%86-%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>بهینه سازی فلش &#8211; فعال سازی و غیر فعال سازی رویدادها</title>
		<link>http://blog.iflashlord.com/1390/02/%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-%d9%81%d9%84%d8%b4-%d9%81%d8%b9%d8%a7%d9%84-%d8%b3%d8%a7%d8%b2%db%8c-%d9%88-%d8%ba%db%8c%d8%b1-%d9%81%d8%b9%d8%a7%d9%84-%d8%b3%d8%a7%d8%b2/</link>
		<comments>http://blog.iflashlord.com/1390/02/%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-%d9%81%d9%84%d8%b4-%d9%81%d8%b9%d8%a7%d9%84-%d8%b3%d8%a7%d8%b2%db%8c-%d9%88-%d8%ba%db%8c%d8%b1-%d9%81%d8%b9%d8%a7%d9%84-%d8%b3%d8%a7%d8%b2/#comments</comments>
		<pubDate>Wed, 04 May 2011 20:24:15 +0000</pubDate>
		<dc:creator>بهروز پولادرگ</dc:creator>
				<category><![CDATA[ادوبی فلش]]></category>
		<category><![CDATA[اکشن اسکریپت]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[Activate]]></category>
		<category><![CDATA[addEventListener]]></category>
		<category><![CDATA[Deactivate]]></category>
		<category><![CDATA[ENTER_FRAME]]></category>
		<category><![CDATA[Event.ACTIVATE]]></category>
		<category><![CDATA[Event.DEACTIVATE]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Function]]></category>
		<category><![CDATA[Object]]></category>
		<category><![CDATA[stage]]></category>
		<category><![CDATA[stage.frameRate]]></category>
		<category><![CDATA[بهینه سازی]]></category>
		<category><![CDATA[رویدادها]]></category>
		<category><![CDATA[غیر فعال سازی]]></category>
		<category><![CDATA[فعال سازی]]></category>
		<category><![CDATA[فلش]]></category>

		<guid isPermaLink="false">http://blog.iflashlord.com/?p=955</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">بهینه سازی در فلش یک اصل مهم به حساب می آید و افزایش و کار بر روی آن     برای توسعه دهندگان فلش امری الزامی است. به عنوان یک توسعه دهنده فلش و    به  عنوان کسی که برای آینده این نرم افزار بزرگ احساس مسئولیت می کند ،   ما   وظیفه داریم در ساخت عناصر فلش که کارایی بهتری دارند پیش گام باشیم و     همواره بهترین و بهینه ترین روش را استفاده کنیم. در این مجموعه آموزشی     بهینه سازی فلش به نکات مهم برای مدیریت بر عناصر و حافظه ها … می   پردازیم و   تلاش می کنیم که بتوانیم با استفاده از نکات ارائه شده خروجی   بهینه تر و   سبک تری از پروژه فلش خود داشته باشیم.<strong> </strong></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><strong>بخش چهارم &#8211; فعال سازی(Activate) و غیر فعال سازی(Deactivate) رویدادها</strong></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">از زمان انتشار فلش پلیر ۹ (Flash Player 9) دو رویداد (Event) به فلش افزوده شد (رویداد <strong>Event.ACTIVATE</strong> و رویداد <strong>Event.DEACTIVATE</strong>) این رویداد ها می توانند برای شما امکان تنظیم برنامه خود برای استفاده از کمترین میزان سیکل پردازنده (CPU) را امکان پذیر سازند.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><span id="more-955"></span></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">این رویداد ها این امکان را به شما می دهند که زمانی که روی فلش شما تمرکز (فوکوس) می شود و یا زمانی که تمرکز (فوکوس) از روی آن خارج می شود را تشخیص دهید. در نتیجه ، می توان کد را برای نشان دادن واکنش به تغییرات فعال و غیر فعال شدن بهینه سازی نمود.</p>
<blockquote><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">نکته : استفاده از رویدادهای Event.ACTIVATE و Event.DEACTIVATE برای تشخص عدم فعالیت برنامه ای که در پس زمینه کاری قرار دارد و بهینه سازی برنامه شما مناسب می باشد.</p></blockquote>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در کد زیر از هر دو رویداد استفاده می کنیم و به صورت پویا نرخ فریم (Frame rate) را در زمانی که فوکوس (Focus) از برنامه خارج شود روی صفر تنظیم می کنیم. به عنوان مثال زمانی که شما به تب دیگر از مرورگر می روید و یا خارج از محیط قرار گیری فلش در صفحه کلیک می کنید و یا برنامه را در پس زمینه کاری قرار می دهید برنامه شما از فوکوس خارج می شود.</p>
<pre class="brush: as3; title: ; notranslate">
//تعریف متغییر نرخ فریم جاری و نرخ فریم حالت غیر فعال
var originalFrameRate:uint = stage.frameRate;
var standbyFrameRate:uint = 0;

stage.addEventListener( Event.ACTIVATE, onActivate );
stage.addEventListener( Event.DEACTIVATE, onDeactivate );

function onActivate( e:Event ):void
{
	// بازگرداندن نرخ فریم اصلی
	stage.frameRate = originalFrameRate;
}

function onDeactivate( e:Event ):void
{
	// تنظیم نرخ فریم بر روی صفر
	stage.frameRate = standbyFrameRate;
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">زمانی که روی برنامه شما دوباره فوکوس می شود ، نرخ فریم به حالت اصلی بازگردانده می شود و برنامه شما به کارش ادامه می دهد. در ضمن شما به جای استفاده از تغییر نرخ فریم به صورت پویا می توانید بهینه سازی های دیگر مانند فریز کردن اشاء ، دادن افکت بلور و&#8230; را درون برنامه خود در نظر بگیرید.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">این رویداد ها به شما این امکان را می دهد که مکانیزمی شبیه به Pause و Resume که در واقع امکان ایجاد مکث و وقفه در برنامه و امکان ادامه دادن آن در زمان دلخواه می باشد را ایجاد کنید. نمونه ی این ویژگی را شاید گاهی اوقات در برنامه های تلفن های همراه و یا نت بوک های دیده باشید ، شما هم می توانید به برنامه خود اینچنین امکانی را اضافه کنید.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">موفق و پیروز باشید.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iflashlord.com/1390/02/%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-%d9%81%d9%84%d8%b4-%d9%81%d8%b9%d8%a7%d9%84-%d8%b3%d8%a7%d8%b2%db%8c-%d9%88-%d8%ba%db%8c%d8%b1-%d9%81%d8%b9%d8%a7%d9%84-%d8%b3%d8%a7%d8%b2/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>تعیین امنیت رمز عبور در اکشن اسکریپت ۳</title>
		<link>http://blog.iflashlord.com/1389/11/%d8%aa%d8%b9%db%8c%db%8c%d9%86-%d8%a7%d9%85%d9%86%db%8c%d8%aa-%d8%b1%d9%85%d8%b2-%d8%b9%d8%a8%d9%88%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/1389/11/%d8%aa%d8%b9%db%8c%db%8c%d9%86-%d8%a7%d9%85%d9%86%db%8c%d8%aa-%d8%b1%d9%85%d8%b2-%d8%b9%d8%a8%d9%88%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>Sat, 19 Feb 2011 07:04:18 +0000</pubDate>
		<dc:creator>بهروز پولادرگ</dc:creator>
				<category><![CDATA[عمومی]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Function]]></category>
		<category><![CDATA[function در فلش]]></category>
		<category><![CDATA[gotoAndPlay]]></category>
		<category><![CDATA[length]]></category>
		<category><![CDATA[logo]]></category>
		<category><![CDATA[match]]></category>
		<category><![CDATA[molehill]]></category>
		<category><![CDATA[Password]]></category>
		<category><![CDATA[pdf]]></category>
		<category><![CDATA[return]]></category>
		<category><![CDATA[StrengthMeter]]></category>
		<category><![CDATA[String]]></category>
		<category><![CDATA[switch]]></category>
		<category><![CDATA[toLowerCase]]></category>
		<category><![CDATA[trace]]></category>
		<category><![CDATA[www.gsm.ir]]></category>
		<category><![CDATA[ارسال و دریافت داده با اکشن اسکریپت 3]]></category>
		<category><![CDATA[اسكريپ فلش]]></category>
		<category><![CDATA[اسکریپت]]></category>
		<category><![CDATA[اكشن اسكريپت]]></category>
		<category><![CDATA[امشن اسکریپت 3]]></category>
		<category><![CDATA[اکشن اسکریپ فلش]]></category>
		<category><![CDATA[اکشن اسکریپت]]></category>
		<category><![CDATA[اکشن اسکریپت 3]]></category>
		<category><![CDATA[اکشن اسکریپت فلش]]></category>
		<category><![CDATA[اکشن اسکریپت3]]></category>
		<category><![CDATA[اکشن‌اسکریپت]]></category>
		<category><![CDATA[ایجاد وقفه در action script]]></category>
		<category><![CDATA[تابع match]]></category>
		<category><![CDATA[تابع match function]]></category>
		<category><![CDATA[تاریخچه فلش]]></category>
		<category><![CDATA[تعیین استحکام]]></category>
		<category><![CDATA[تعیین امنیت]]></category>
		<category><![CDATA[توضيحات تابع match]]></category>
		<category><![CDATA[ذخیره اطلاعات توسط as3]]></category>
		<category><![CDATA[رمز عبور]]></category>
		<category><![CDATA[فلش اسکریپت]]></category>
		<category><![CDATA[قالب آماده وب فلش با اکشن اسکریپت 3]]></category>
		<category><![CDATA[وارد كردن فايل متني به فلش]]></category>
		<category><![CDATA[کام]]></category>

		<guid isPermaLink="false">http://blog.iflashlord.com/?p=805</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/02/strength_password_iflashlord.jpg" alt="iflashlord.com" />
	</p><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">همان طور که می دانید یکی از مواردی که برای بحث ثبت نام کاربران وجود دارد و در مواردی بسیار مهم است ، انتخاب رمز عبور امن  می باشد ، با توجه به این که یک رمز عبور امن شرایط خاصی را دارد ، این تابع به شما کمک می کند در هنگامی که کاربر در حال وارد کردن نام کاربر و رمز عبور است با توجه به این دو مقدار که به عنوان آرگمان های ورودی تابع وارد می شوند سطح امنیت و استحکام مربوطه به رمز عبور انتخاب شده را مشخص کنید<br />
و به کاربر اطلاع دهید در حال انتخاب رمز عبور با چه امنیت و استحکامی می باشد ، این مورد برای کاربرانی که از اهمیت انتخاب رمز عبور مناسب برای جلوگیری از هک شدن و قابل حدس بودن رمز عبور وارد شده ، اطلاعات کافی ندارند ، مناسب می باشد.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><span id="more-805"></span> همان طور که در اکثر موارد مثل هاستینگ ها و مواردی که امنیت برای آنها مهم هست این مورد را دیده اید.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در کد زیر نمونه هایی هم برای تست رمزهای عبور با استحکام بالا و پایین زده شده است.<br />
در حال حاضر این تابع ۳ سطح را مشخص می کند که عبارتند از Strong که نشانه استحکام و امنیت بالا می باشد ، Medium که استحکام و امنیت متوسط را نشان می دهد ، Weak که استحکام و امنیت پایین را نشان می دهد.</p>
<pre class="brush: as3; title: ; notranslate">

trace(StrengthMeter(&quot;iflashlord.com&quot; , &quot;#$_-+f@wa2Q1&quot;));//Strong
trace(StrengthMeter(&quot;iflashlord.com&quot; , &quot;12345&quot;));//Weak
trace(StrengthMeter(&quot;iflashlord.com&quot; , &quot;iflashlord.com&quot;));//Weak
trace(StrengthMeter(&quot;iflashlord.com&quot; , &quot;IFLashLord.com&quot;));//Medium
trace(StrengthMeter(&quot;iflashlord.com&quot; , &quot;24fd&quot;));//Weak
trace(StrengthMeter(&quot;iflashlord.com&quot; , &quot;24fd3&quot;));//Medium

//iflashlord.com - StrengthMeter Pro - 19-02-2011
function StrengthMeter(vUserName : String,vPassword : String):String
{
	var vScore:int = 0;
	var vHasLetters:Array = vPassword.match(/[a-zA-Z]+/);
	var vHasNumbers:Array = vPassword.match(/[0-9]+/g);
	var vHasPunctuation:Array = vPassword.match(/[^a-zA-Z0-9]+/);
	var vHasCasing:Array = vPassword.match(/[a-z]+.*[A-Z]+|[A-Z]+.*[a-z]+/);
	var vResult:String;

	if (vPassword.length == 0)
	{
		return &quot;It's blank!&quot;;
	}

	vScore += (vPassword.length &lt; 7 ? 0 : 1);
	vScore += (vPassword.length &gt;= 12 ? 1 : 0);
	vScore += (vPassword.toLowerCase() == vUserName.toLowerCase() ? 0 : 1);
	vScore += ((vHasNumbers == null || vHasNumbers.length==0 ) ? 0 : 1);
	vScore += (vHasNumbers != null &amp;&amp; vHasNumbers.length &lt;= 4 ? 0 : 1);
	vScore += ((vHasPunctuation == null || vHasPunctuation.length == 0) ? 0 : 1);
	vScore += (vHasPunctuation != null &amp;&amp; String(vHasPunctuation).length &lt;= 2 ? 0 : 1);
	vScore += (vHasCasing == null ? 0 : 1);
	vScore += (vHasCasing != null &amp;&amp; String(vHasCasing).length &lt;= 2 ? 0 : 1);

	vScore -= ((vHasLetters == null || vHasLetters.length==0 ) ? 1 : 0);
	vScore -= (vPassword == vUserName ? 1 : 0);
	vScore -= (vPassword.length &lt;= 4 ? 1 : 0);

	switch (vScore)
	{
		case -3 :
		case -2 :
		case -1 :
		case 0 :
		case 1 :
		case 2 :
		case 3 :
			vResult = &quot;Weak&quot;;
			break;
		case 4 :
		case 5 :
		case 6 :
		case 7 :
			vResult = &quot;Medium&quot;;
			break;
		case 8 :
		case 9 :
			vResult = &quot;Strong&quot;;
			break;
	}
	return vResult;
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در این تابع سعی شده مهم ترین موارد مد نظر قرار داده شود تا با دقت هر چه بیشتر این محاسبه انجام شود.</p>
<blockquote><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">آیا شما نظری برای بهبود دقت و عملکرد این تابع دارید؟</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.iflashlord.com/1389/11/%d8%aa%d8%b9%db%8c%db%8c%d9%86-%d8%a7%d9%85%d9%86%db%8c%d8%aa-%d8%b1%d9%85%d8%b2-%d8%b9%d8%a8%d9%88%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>0</slash:comments>
		</item>
		<item>
		<title>ایجاد وقفه زمانی در تایم لاین-اکشن اسکریپت ۳</title>
		<link>http://blog.iflashlord.com/1389/11/%d8%a7%db%8c%d8%ac%d8%a7%d8%af-%d9%88%d9%82%d9%81%d9%87-%d8%b2%d9%85%d8%a7%d9%86%db%8c-%d8%af%d8%b1-%d8%aa%d8%a7%db%8c%d9%85-%d9%84%d8%a7%db%8c%d9%86/</link>
		<comments>http://blog.iflashlord.com/1389/11/%d8%a7%db%8c%d8%ac%d8%a7%d8%af-%d9%88%d9%82%d9%81%d9%87-%d8%b2%d9%85%d8%a7%d9%86%db%8c-%d8%af%d8%b1-%d8%aa%d8%a7%db%8c%d9%85-%d9%84%d8%a7%db%8c%d9%86/#comments</comments>
		<pubDate>Mon, 07 Feb 2011 18:16:46 +0000</pubDate>
		<dc:creator>بهروز پولادرگ</dc:creator>
				<category><![CDATA[ادوبی فلش]]></category>
		<category><![CDATA[اکشن اسکریپت]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[actionscript ساخت تایمر]]></category>
		<category><![CDATA[addEventListener]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[continuePlayahead]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[flash اسکریپت تایمر]]></category>
		<category><![CDATA[Function]]></category>
		<category><![CDATA[stop]]></category>
		<category><![CDATA[stop timarنصب]]></category>
		<category><![CDATA[Time]]></category>
		<category><![CDATA[TimeLine]]></category>
		<category><![CDATA[Timer]]></category>
		<category><![CDATA[timer در فلش]]></category>
		<category><![CDATA[Timer(timeToHold]]></category>
		<category><![CDATA[Timer.reset]]></category>
		<category><![CDATA[Timer.start]]></category>
		<category><![CDATA[Timer.stop]]></category>
		<category><![CDATA[TimerEvent.TIMER]]></category>
		<category><![CDATA[wait]]></category>
		<category><![CDATA[xml اکشن اسکریپت و فلش]]></category>
		<category><![CDATA[xml فلش و اکشن اسکریپت]]></category>
		<category><![CDATA[آموزش آدرس دادن mp3 xmlدر actionscript]]></category>
		<category><![CDATA[اسکریپت]]></category>
		<category><![CDATA[اسکریپت delay فلش]]></category>
		<category><![CDATA[اکشن اسکریپت 3]]></category>
		<category><![CDATA[ایجاد وقفه زمانی در تایم لاین]]></category>
		<category><![CDATA[ایجاد وقفه زمانی در فلش]]></category>
		<category><![CDATA[برنامه نویسی یک تایم لاین]]></category>
		<category><![CDATA[تابع wait در اکشن اسکریپت فلش]]></category>
		<category><![CDATA[تايمر در اكش اسكريپ]]></category>
		<category><![CDATA[تایم لاین]]></category>
		<category><![CDATA[تایمر]]></category>
		<category><![CDATA[تایمر در اکشن اسکریپت]]></category>
		<category><![CDATA[خروجی عدد در فلش]]></category>
		<category><![CDATA[دانلود تایمر]]></category>
		<category><![CDATA[دانلود تایمر فلش]]></category>
		<category><![CDATA[دانلود فلش تایمر]]></category>
		<category><![CDATA[در مورد addeventlistener در اکشن های فلش]]></category>
		<category><![CDATA[زمان]]></category>
		<category><![CDATA[ساخت تایمر]]></category>
		<category><![CDATA[فلش]]></category>
		<category><![CDATA[فلش برنامه تایمر]]></category>
		<category><![CDATA[فلش تایم لاین]]></category>
		<category><![CDATA[فلش تایمر]]></category>
		<category><![CDATA[فلش ساخت تایمر]]></category>
		<category><![CDATA[قرار دادن mp3 در فلش]]></category>
		<category><![CDATA[نحوه تعريف تابع تايم]]></category>
		<category><![CDATA[نرمافزار ساخت تايمر]]></category>
		<category><![CDATA[وقفه]]></category>
		<category><![CDATA[وقفه زمانی در فلش]]></category>
		<category><![CDATA[چگونگی اجرا از تایم لاین دیگر در فلش]]></category>
		<category><![CDATA[کد نویسی در filetype:pdf]]></category>

		<guid isPermaLink="false">http://blog.iflashlord.com/?p=739</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/02/wait-timeline-iflashlord.jpg" alt="iflashlord.com" />
	</p><blockquote><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">این مطلب یکی از مجموعه آموزش های کوتاهی می باشد که از این به بعد مطالبی دیگر نیز با این سبک خواهیم داشت ، به صورت کوتاه به نکته ای کاربردی و مهم پرداخته می شود ، امیدوارم مورد توجه دوستداران فلش و اکشن اسکریپت قرار بگیرد.</p></blockquote>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><strong>توسط کدی که در پایان مطلب قرار داده شده است می توانیم وقفه زمانی در پخش Movie فلش در بخشی (فریمی) از تایم لاین (TimeLine) ایجاد کنیم.</strong></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><span id="more-739"></span><br />
این کد توسط تابع تعریف شده با نام wait بعد از فراخوانی در هر فریم از تایم لاین Movie حرکت را stop می کند <em>(خط ۵) </em>و بلافاصله با تعریف کلاس  Timer با توجه به مقداری که به عنوان آرگمان ورودی wait وارد شده  است<em> (خط ۶) </em> (این آرگمان بر مبنای millisecond می باشد ، <strong>به این معنا که ۱۰۰۰  برابر ۱ ثانیه است</strong>) ، رویدادی ایجاد می کند <em>(خط ۷)</em> که بعد از اتمام زمان وارد شده تابع  continuePlayhead را فراخوانی می کند ، که با اجرای فرمان play ادامه پخش Movie  انجام می شود (خط ۱۳)، بعد در مرحله اول تایمر stop می شود <em>(خط ۱۴)</em>و بعد تایمر reset می شود<em> (خط ۱۵)</em> (این امر برای بدون مشکل بودن استفاده های بعدی می باشد) و رویدادی که تایمر ایجاد شده بود نیز در این مرحله حذف می گردد <em>(خط ۱۶)</em>.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><strong>نکته : </strong>متغییر delayTimer که از نوع Timer می باشد در ابتدا و خارج از توابع تعریف شده است که دسترسی به آن در هر دو تابع وجود داشته باشد.</p>
<pre class="brush: as3; title: ; notranslate">
var delayTimer:Timer;

function wait(timeToHold:Number)
{
	stop();
	delayTimer = new Timer(timeToHold,0);
	delayTimer.addEventListener(TimerEvent.TIMER, continuePlayahead);
	delayTimer.start();
}

function continuePlayahead(e:Event):void
{
	play();
	delayTimer.stop();
	delayTimer.reset();
	delayTimer.removeEventListener(TimerEvent.TIMER, continuePlayahead);
}
</pre>
<blockquote><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">به نظر شما این روش ، روش مناسبی برای ایجاد وقفه زمانی در تایم لاین می باشد؟<br />
آیا روش دیگری برای این کار می شناسید؟</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.iflashlord.com/1389/11/%d8%a7%db%8c%d8%ac%d8%a7%d8%af-%d9%88%d9%82%d9%81%d9%87-%d8%b2%d9%85%d8%a7%d9%86%db%8c-%d8%af%d8%b1-%d8%aa%d8%a7%db%8c%d9%85-%d9%84%d8%a7%db%8c%d9%86/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>توابع در اکشن اسکریپت ۳</title>
		<link>http://blog.iflashlord.com/1388/08/%d8%aa%d9%88%d8%a7%d8%a8%d8%b9-%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%aa%d9%88%d8%a7%d8%a8%d8%b9-%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>Sat, 14 Nov 2009 06:53:31 +0000</pubDate>
		<dc:creator>بهروز پولادرگ</dc:creator>
				<category><![CDATA[اکشن اسکریپت]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[addChild]]></category>
		<category><![CDATA[Function]]></category>
		<category><![CDATA[starx فلش]]></category>
		<category><![CDATA[var mysquare:square = new square(); addchild(mysquare); یعنی]]></category>
		<category><![CDATA[اسكريپ exit flash]]></category>
		<category><![CDATA[اسکریپت]]></category>
		<category><![CDATA[اسکریپت نویسه در فلش]]></category>
		<category><![CDATA[اکشن اسکریپت 3]]></category>
		<category><![CDATA[تابع json_encode]]></category>
		<category><![CDATA[تابع چسیت exit]]></category>
		<category><![CDATA[تفاوت جاوا اسکریپت و فلش پلیر]]></category>
		<category><![CDATA[تفاوتهای اکشن اسکریپت و جاوا اسکریپت]]></category>
		<category><![CDATA[توابع]]></category>
		<category><![CDATA[توابع 3]]></category>
		<category><![CDATA[توابع در فلش]]></category>
		<category><![CDATA[توابه چیست]]></category>
		<category><![CDATA[دانلود توابع اکشن اسکریپت 3]]></category>
		<category><![CDATA[رویداد]]></category>
		<category><![CDATA[ساخت دکمه returnدر فلش]]></category>
		<category><![CDATA[فرق اکشن اسکریپت و جاوا اسکریپت]]></category>
		<category><![CDATA[فلش star-x]]></category>
		<category><![CDATA[كدهاي فلش]]></category>
		<category><![CDATA[مباحث مربوط به اسکریپت های فلش]]></category>
		<category><![CDATA[متن]]></category>
		<category><![CDATA[نرم افزار]]></category>
		<category><![CDATA[یعنی چه square]]></category>

		<guid isPermaLink="false">http://blog.iflashlord.com/?p=105</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><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">یکی از مواردی که در برنامه نویسی اکشن اسکریپت جایگاه مهمی دارد ، توابع می باشند. به طوری که نسخه جدید فلش بر پایه توابع نوشته شده است. مثالا شما بعد از تعیین رویدادی برای دکمه ای می بایست این رویداد را به تابعی ارسال نمایید تا دسترسی های رویداد را توسط آن کنترل نمایید ( در زمان وقوع رویداد)<br />
به همین دلیل سعی می کنیم با توابع و قواعد آن به صورتی سطحی آشنایی پیدا کنیم :</p>
<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">۱. تابع چیست ؟<br />
۲. مثالی در مورد کاربرد تابع.<br />
۳. توضیحات ساده در مورد تابع.<br />
۴. توضیحات پیشرفته در مورد تابع.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><span style="font-size: 14pt; line-height: 100%;">تابع چیست ؟</span><br />
اصولا توابع یک بلاک (بخش) از کد هستند که به عنوان تابع ایجاد می شوند و ما می توانید با تعریف تنها یک باره آنها ، آنها را در موارد متعدد مورد استفاده قرار دهیم و هم در حجم و هم در سرعت فراخوانی و هم در تمیزی و قابل فهم تر بودن کدی که می نویسم بسیار تاثیر گزار می باشد.<br />
یکی دیگر از فواید توابع این می باشد که شما در هر زمان می تواند کد مربوط به تابع خود را به روز رسانی نمایید و دیگر نیازی نیست که کدها را در تمامی بخش های استفاده شده تغییر دهید.<br />
در ادامه با مثال بیشتر با توابع آشنا خواهید شد.<br />
<span id="more-105"></span></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><span style="font-size: 14pt; line-height: 100%;">مثالی در مورد کاربرد تابع:</span></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">به کد زیر دقت نمایید ، توسط این کد ما شی Star را از درون کتابخانه فلش با مختصات x و y ی که تعریف می کنیم به استیج پروژه اضافه می کنیم</p>
<pre class="brush: as3; title: ; notranslate">
var myStar:Star;

myStar = new Star();
myStar.x = 100;
myStar.y = 150;
addChild(myStar);
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">توجه : کلاسStar یک MovieClip می باشد که ما آن را با Star در Library نام گزاری کرده ایم و یک کلاس ثابت از مجموعه کلاس های نرم افزار فلش نمی باشد.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">خوب حال به فرض ما نیاز داریم این شی را و یا شی دیگری را در جایی دیگر از صفحه و یا در همان مختصات دوباره اضافه کنیم ، برای این کار می بایست کد را دوبار تکرار کنیم!!!</p>
<pre class="brush: as3; title: ; notranslate">
var myStar:Star;

myStar = new Star();
myStar.x = 100;
myStar.y = 150;
addChild(myStar);

myStar = new Square();
myStar.x = 100;
myStar.y = 150;
addChild(myStar);
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">این کار در عمل مشکلی ندارد ولی باعث می شود کد پروژه شما بسیار حجیم و زیاد بشود در زمان ویرایش و &#8230; دچار مشکلات و سختی فراوان بشوید خوب حال همین کد را با کمک توابه می توانیم به صورت زیر استفاده کنیم :</p>
<pre class="brush: as3; title: ; notranslate">
function makeStar():void {
	myStar = new Star();
	myStar.x = 100;
	myStar.y = 150;
	addChild(myStar);
}

makeStar();
makeStar();
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">هر چند بار که بخواهیم می توانیم makeStar را فراخوانی کرده و با هر بار فراخوانی تمامی کدهای درون تابع را اجرا کنیم.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><span style="font-size: 14pt; line-height: 100%;">توضیحات ساده در مورد تابع:</span></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">ساختار کلی تابع به صورت زیر می باشد :</p>
<pre class="brush: as3; title: ; notranslate">
function functionName(argument):returnType{
	statements;
}
</pre>
<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"><strong>functionName :</strong> نام تابع می باشد که که توسط آن شما می توانید تابع را فراخوانی نمایید.<br />
argument : یا آرگومان های تابع ورودی های تابع می باشند که با کاما از هم جدا می شوند (در ادامه با مثال توضیح بیشتر داده می شود)</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><strong>returnType :</strong> نوع بازگشت تابع می باشد، در واقع برای تعیین نوع مقداری که قرار است درون تابع return شود در صورتی که تابع شما return ی نداشته باشد این مقدار بر روی void قرار می دهیم و این به این معنی می باشد که تابع مقداری را بر نمی گرداند، البته تعریف این مقدار الزامی نیست و در صورتی که نوع خروجی را ندانید می توانید با ستاره(*) به هر نوعی از اطلاعات اشاره نمایید.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><strong>statements :</strong> شامل کدی می شود که می بایست با هر بار فراخوانی تابع اجرا شود.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">حال تابعی ایجاد می کنیم که یک MovieClip ایجاد نماید و آن را در مختصات x و y مقدار دهی نماید<br />
توجه داشته باشید که کد مربوط به تابع می بایست بین دو براکت {} مربوط به تابع قرار گیرد و نکته دیگر این است که متغیری که درون تابعی تعریف شود از بیرون تابع یعنی بیرون محدوده {} تابع قابل فراخوانی نیست. (در ادامه توضحاتی در این مورد داده شده)</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><em>به مثال دقت بفرمایید :</em></p>
<pre class="brush: as3; title: ; notranslate">
function magicalFunction(){
	var myMovie:MovieClip = new MovieClip();
	myMovie.x=100;
	myMovie.y=150;
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در بالا تابعی با نام magicalFunction ایجاد کردیم.<br />
و حال برای فراخوانی تابع باید به این نکته توجه داشته باشیم که برای فراخوانی تابع صورت مجزا و نه درون رویدادها می بایست از دوپرانتز در آخر نام تابع استفاده کنیم ، این () در واقع محل آرگومان های تابع می باشد و در صورتی که تابع آرگمانی نداشته باشد به صورت زیر استفاده می شود.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><em>فراخوانی ساده :</em></p>
<pre class="brush: as3; title: ; notranslate">
magicalFunction();
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><em>فراخوانی در رویداد :</em></p>
<pre class="brush: as3; title: ; notranslate">
addEventListener(MouseEvent.CLICK ,magicalFunction );
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><em>باید توجه داشته باشید تا زمانی که تابع فراخوانی نشود(با کدهای بالا) کد تابع اجرا نخواهد شد.</em></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><span style="font-size: 14pt; line-height: 100%;">توضیحات پیشرفته در مورد تابع:</span></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">همان گونه که در مرحله قبل ذکر کردیم ساختار تابع به شکل زیر می باشد :</p>
<pre class="brush: as3; title: ; notranslate">
function functionName(argument):returnType{
	statements;
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">حال می خواهیم به arguments و با همان آرگمان های تابع بپرداریم ، توجه داشته باشد که بهتر است نوع هر آرگمان را مشخص کنید که مثلا عددی است و یا رشته متنی و&#8230;<br />
نکته دیگر این است که آرگمان ها با کاما (,) از هم جدا می شوند و به تعداد نامحدود شما می توانید آرگمان داشته باشید<br />
شما آرگمان خود را با نامی در () بعد از نام تابع تعریف می کنید و با همین نام می توانید از آن در تابع خود استفاده کنید ، در زمان فراخوانی تابع این آرگمان ها مقدار دهی می شود و مقدارها درون کد تابع مورد استفاده قرار می گیرد.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">کدی که در قبل استفاده کردیم امکان مقدار دهی به x و y را در زمان فراخوانی را ندارد!!</p>
<pre class="brush: as3; title: ; notranslate">
 var myStar:Star;

function makeStar():void {
	myStar = new Star();
	myStar.x = 100;
	myStar.y = 150;
	addChild(myStar);
}

makeStar();
makeStar();
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">حال کد را طبق تعاریفی که در بالا داشتیم به صورت زیر تغییر می دهیم :</p>
<pre class="brush: as3; title: ; notranslate">
var myStar:Star;

function makeStar(myX:Number, myY:Number):void {
	myStar = new Star();
	myStar.x = myX;
	myStar.y = myY;
	addChild(myStar);
}

makeStar(100,200);
makeStar(150,320);
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">همان طور که در کد مشاهده می کنید دو آرگمان myX:Number, myY:Number را تعریف کردیم و همین متغیرها را در کد به جای مقدارهای عددی قرار دادیم.</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">برای درک بیشتر return تابعی تعریف می کنیم که دو قدار را جمع کند و یک مقدار به عنوان خروجی بدهد:</p>
<pre class="brush: as3; title: ; notranslate">
function calculate(){
	var num1:Number = 50;
	var num2:Number = 100;
	var myResult:Number;

	myResult = num1+num2;
	return myResult;
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">و حال توسط کد زیر از آن استفاده می کنیم :</p>
<pre class="brush: as3; title: ; notranslate">
var myMC:MovieClip = new MovieClip();
myMC.x = calculate();
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">با این کار مختصات x مریوط به myMC به مقدار ۱۵۰ که جمع دو عددی که در تابع بود ، می باشد مقدار دهی می شود زیرا تابع calculate مقداری را که با return بر می گرداند مثل این است که ما myMC.x را برابر ۱۵۰ قرار داده باشیم.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در مثال بالا خروجی تابع مقداری عددی است پس بهتر است خروجی با Number مقدار دهی شود و کد را به صورت زیر بنویسیم:</p>
<pre class="brush: as3; title: ; notranslate">
function calculate():Number{
	var num1:Number = 50;
	var num2:Number = 100;
	var myResult:Number;

	myResult = num1+num2;
	return myResult;
}

var myMC:MovieClip = new MovieClip();
myMC.x = calculate();
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">همان طور که برای تابع makeStar نوع داده بازگشتی را بر روی void به این معنی که بازگشتی ندارد قرار دادیم</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">به صورت کلی تابعی که بازگشتی نداشته باشد و return در آن استفاده نشده باشد را با void تعیین می کنیم و در صورتی که نوع بازگشت نوعی ثابت و خاصی نباشد آن را با * تعیین می کنیم</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">به طور مثال کد زیر با خطا رو به رو خواهد شد :</p>
<pre class="brush: as3; title: ; notranslate">
function calculate ():Number {

	var num1:Number = 50;
	var num2:Number = 100;
	var myResult:Number;
	myResult = num1+num2;

}

trace(myResult);
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">زیرا myResult  قابل دسترسی از خارج تابع نمی باشد</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">برای حل این مشکل از روش زیر استفاده می کنیم و کد را به صورت زیر می نویسیم :</p>
<pre class="brush: as3; title: ; notranslate">
var myResult:Number;

function calculate ():Number {

	var num1:Number = 50;
	var num2:Number = 100;
	myResult = num1+num2;

}

trace(myResult);
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">تنها کاری که انجام دادیم این بود که متغییر myResult را خارج از محل تابع تعریف کردیم و درون تابع فقط مقدار دهی را انجام دادیم<br />
این موضوع در مورد حلقه ها هم یک بار توضیح داده شده است.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><span style="font-size: 14pt; line-height: 100%;">آرگمان نامحدود برای تابع (استفاده از امکان (&#8230;) در تابع):</span></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">این موضوع یک بحث جدید در مورد توابع می باشد که با یک مثال آن را توضیح می دهیم ، گاهی اوقات ما نیاز داریم تابع ما به تعداد نامحدودی آرگمان ورودی بپزید و تعداد ورودی را دقیق نمی دانیم تا برا آن مقداری را تعریف کنیم ، یک را این است که مقدارها را به صورت آرایه به تابع بدهیم و راه جدید در واقع ساده شده همان راه دادن داده ها به صورت تابع می باشد (با کمک تکنیک سه نقطه (&#8230;) )</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">به کد مربوطه  دقت نمایید :</p>
<pre class="brush: as3; title: ; notranslate">
function Sum (...arg:Array):Number {
	var sumNum:Number=0;
	for(var i:Number = 0; i&lt;arg.length; ++i) {
		sumNum +=arg[i];
	}
	return sumNum;
}

trace(Sum (2,2,3));
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در بالا ابتدا تابعی با نام Sum ایجاد می کنیم و برای آرگمان های آن قبل از نام آرگمان &#8230; اضافه می کنیم و بدون فاصله نام آرگمان خود را که در اینجا arg می باشد نام می نویسم و نوع آن را هم با : بر روی آرایه Array تنظیم می کنیم<br />
در این مثال خروجی ما از نوع عددی می باشد ( در واقع این تابع تمامی آرگمانهایی که به عنوان ورودی به آن داده شود را با هم جمع می کند )<br />
حال ما در تابع آرایه ای با مقدار تمامی آرگمان های ورودی تابع مربوطه داریم که با یک for و پیمایش تابع مقدارها را توسط += به sumNum می دهیم و مقدار آن را با تمامی عناصر آرایه ورودی ها اضافه می کنیم و در آخر توسط return مقدار sumNum را به عنوان خروجی تعیین می کنیم</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در آخر بعد از تکمیل تابع برای تست خروجی از تابع trace استفاده می کنیم و نتیجه جمع اعدادی که وارد کرده ایم را در Output نمایش می دهیم.</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%aa%d9%88%d8%a7%d8%a8%d8%b9-%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>
	</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/43 queries in 0.178 seconds using disk: basic
Object Caching 4394/4660 objects using disk: basic

Served from: blog.iflashlord.com @ 2012-02-09 16:26:34 -->
