<?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; برنامه نویسی</title>
	<atom:link href="http://blog.iflashlord.com/tag/%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%86%d9%88%db%8c%d8%b3%db%8c/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>Adobe Flash CS5 Feature</title>
		<link>http://blog.iflashlord.com/1388/11/adobe-flash-cs5-feature/</link>
		<comments>http://blog.iflashlord.com/1388/11/adobe-flash-cs5-feature/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 03:33:10 +0000</pubDate>
		<dc:creator>بهروز پولادرگ</dc:creator>
				<category><![CDATA[اکشن اسکریپت]]></category>
		<category><![CDATA[عمومی]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash Builder]]></category>
		<category><![CDATA[اکشن اسکریپت 3]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[فلش]]></category>

		<guid isPermaLink="false">http://blog.iflashlord.com/?p=130</guid>
		<description><![CDATA[خروجی پک های IPhone &#8211; در این نسخه شما امکان دارید توسط اکشن اسکریپت ۳ پروژه فلش خود مثل یک نرم افزار برای آی فون خروجی بگیرید و از آن بر روی گوشی آی فون استفاده کنید ( که این موضوع تحولی ۱۰۰ درصد عظیم در این عرصه ایجاد خواهد کرد) اگر می خواهید در [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: right;"><strong>خروجی پک های IPhone </strong> &#8211; در این نسخه شما امکان دارید توسط اکشن اسکریپت ۳ پروژه فلش خود مثل یک نرم افزار برای آی فون خروجی بگیرید و از آن بر روی گوشی آی فون استفاده کنید ( که این موضوع تحولی ۱۰۰ درصد عظیم در این عرصه ایجاد خواهد کرد)</p>
<p><em> اگر می خواهید در این مورد بیشتر بدانید :</em></p>
<p><strong>http://labs.adobe.com/technologies/flashcs5/appsfor_iphone/</strong></p>
<p><strong>امکانات جدید برای متون با فریم ورک Text Layout </strong> &#8211; همان طور که می دانید این فریم ورک مشکل راست به چپ نوشتن و حتی فراتر از آن را حل کرده که با ایجاد امکانات بیشتر برای کنترل متون سطر و ستون ها بلاک های متنی و &#8230; در این نسخه فریم ورک می باشد</p>
<p><strong>فایل های FLA بر مبنای XML </strong>- سیستم برای مدیریت بر منابع پروژه و مناسب برای فعالیت های گروهی و کار گروهی بر روی فایل ها.</p>
<p><strong>کنترل بیشتر بر روی کد ها </strong>- امکان تزریق (وارد کردن) کد های پیش ساخته به پروژه با قابلیت توسعه پویا و ساده تر کردن یادگیری اکشن اسکریپت ۳.</p>
<p><strong>یکپارچگی با Flash Builder -</strong> که همان FLEX می باشد و شما می توانید شما Flash Builder را به عنوان ویرایش گر اکشن اسکریپت خود استفاده کنید.</p>
<p><strong>بهبود ویرایشگر اکشن اسکریپت</strong> &#8211; بهبود یافتن بخش کلاس ها و وارد کردن خودکار هر کلاسی که استفاده می شود و راهنمای کامل تر برای هر کد.<br />
اطلاعات بیشتر در :<br />
<strong>http://labs.adobe.com/technologies/flashcs5</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iflashlord.com/1388/11/adobe-flash-cs5-feature/feed/</wfw:commentRss>
		<slash:comments>4</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[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>
		<item>
		<title>تبدیل mysql به json به صورت مستقیم</title>
		<link>http://blog.iflashlord.com/1388/07/%d8%aa%d8%a8%d8%af%db%8c%d9%84-mysql-%d8%a8%d9%87-json-%d8%a8%d9%87-%d8%b5%d9%88%d8%b1%d8%aa-%d9%85%d8%b3%d8%aa%d9%82%db%8c%d9%85/</link>
		<comments>http://blog.iflashlord.com/1388/07/%d8%aa%d8%a8%d8%af%db%8c%d9%84-mysql-%d8%a8%d9%87-json-%d8%a8%d9%87-%d8%b5%d9%88%d8%b1%d8%aa-%d9%85%d8%b3%d8%aa%d9%82%db%8c%d9%85/#comments</comments>
		<pubDate>Sat, 26 Sep 2009 20:39:27 +0000</pubDate>
		<dc:creator>بهروز پولادرگ</dc:creator>
				<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[پی اچ پی]]></category>

		<guid isPermaLink="false">http://blog.iflashlord.com/?p=87</guid>
		<description><![CDATA[خوب این بار به تابعی می پردازیم که به صورت مستقیم نتیجه query مربوطه به Mysql ما را به Json تبدیل می کند ؛ حتما دوستانی که تکنولوژی های جدید سر روکار دارند (مثل آژاکس) به ارزش Json و کاربرد آن در جاوا اسکریپت و پشتیبانی از آن در فریم ورکهای قدرتمند و&#8230; واقف هستند [...]]]></description>
			<content:encoded><![CDATA[<p>خوب این بار به تابعی می پردازیم که به صورت مستقیم نتیجه query مربوطه به Mysql ما را به <a title="درباره json بیشتر بدانید" href="http://uk2.php.net/json" target="_blank">Json</a> تبدیل می کند ؛ حتما دوستانی که تکنولوژی های جدید سر روکار دارند (مثل آژاکس) به ارزش Json و کاربرد آن در جاوا اسکریپت و پشتیبانی از آن در فریم ورکهای قدرتمند و&#8230; واقف هستند ، در این مثال تابعی ایجاد شده که این عمل در آن ایجاد شده ، البته در نسخه های پی اچ پی ۵.۲+ امکان تبدیل سریع با تابع json_encode ایجاد شده که کار را ساده تر کرده است ، البته در این تابع از آن استفاده نشده است و همین موضوع میتواند نکته خوبی باشد برای آشنایی بیشتر شما با ساختار Json و نحوه ایجاد خروجی آن.<br />
نکته دیگر آن که شما از این روش برای ارتباط با فلش هم می توانید استفاده کنید ، زیرا کلاس هایی (Class) برای اکشن اسکریپت در نسخه های مختلف نوشته شده که به درستی و با سرعت بالا خروجی های JSON را پشتبانی می کند که انشاء الله در مقالات آینده به طور مفصل به این بحث خواهیم پرداخت.</p>
<p><span id="more-87"></span></p>
<p>تابع تبدیل مستقیم مای اس کیو ال به جی سان :</p>
<pre class="brush: php;">
function mysql2json($mysql_result,$name){
$json=&quot;{\n\&quot;$name\&quot;: [\n&quot;;
$field_names = array();
$fields = mysql_num_fields($mysql_result);
for($x=0;$x&lt;$fields;$x++){
$field_name = mysql_fetch_field($mysql_result, $x);
if($field_name){
$field_names[$x]=$field_name-&gt;name;
}
}
$rows = mysql_num_rows($mysql_result);
for($x=0;$x&lt;$rows;$x++){
$row = mysql_fetch_array($mysql_result);
$json.=&quot;{\n&quot;;
for($y=0;$y&lt;count($field_names);$y++) {
$json.=&quot;\&quot;$field_names[$y]\&quot; :    \&quot;$row[$y]\&quot;&quot;;
if($y==count($field_names)-1){
$json.=&quot;\n&quot;;
}
else{
$json.=&quot;,\n&quot;;
}
}
if($x==$rows-1){
$json.=&quot;\n}\n&quot;;
}
else{
$json.=&quot;\n},\n&quot;;
}
}
$json.=&quot;]\n};&quot;;
return($json);
}
</pre>
<p>کد استفاده شده ساده می باشد ، تنها کافیست شما چند خروجی از دیتابیس خود با query های مختلف بگیرید تا با نتیجه و ساختار تابع به درستی آشنا شوید.<br />
<span style="color: #808080;"><em>تابع از </em></span><a href="http://www.emanueleferonato.com/2009/09/23/mysql-to-json-with-php" target="_blank"><span style="color: #808080;"><em>امانوئل فرونتو</em></span></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iflashlord.com/1388/07/%d8%aa%d8%a8%d8%af%db%8c%d9%84-mysql-%d8%a8%d9%87-json-%d8%a8%d9%87-%d8%b5%d9%88%d8%b1%d8%aa-%d9%85%d8%b3%d8%aa%d9%82%db%8c%d9%85/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>تایید صحت ایمیل در اکشن اسکریپت ۳</title>
		<link>http://blog.iflashlord.com/1388/06/%d8%aa%d8%a7%db%8c%db%8c%d8%af-%d8%b5%d8%ad%d8%aa-%d8%a7%db%8c%d9%85%db%8c%d9%84-%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/06/%d8%aa%d8%a7%db%8c%db%8c%d8%af-%d8%b5%d8%ad%d8%aa-%d8%a7%db%8c%d9%85%db%8c%d9%84-%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, 12 Sep 2009 02:08:55 +0000</pubDate>
		<dc:creator>بهروز پولادرگ</dc:creator>
				<category><![CDATA[ادوبی فلش]]></category>
		<category><![CDATA[اکشن اسکریپت]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[RegExp]]></category>
		<category><![CDATA[ایمیل]]></category>
		<category><![CDATA[تایید صحت ایمیل]]></category>

		<guid isPermaLink="false">http://blog.iflashlord.com/?p=68</guid>
		<description><![CDATA[سلام ، قصد دارم مدتی مقالات کوتاه  و کاربردی رو برای دوستان قرار بدم امیدوارم که مورد استفاده قرار بگیره خوب توی اکشن اسکریپت ۳ بهتره سعی کنید بیشتر با کلاس ها کار کنید (برای این مثال هم از کلاس استفاده می کنیم) و در این مثال هم ما برای چک کردن این که ایمیل [...]]]></description>
			<content:encoded><![CDATA[<p>سلام ، قصد دارم مدتی مقالات کوتاه  و کاربردی رو برای دوستان قرار بدم امیدوارم که مورد استفاده قرار بگیره <img src='http://blog.iflashlord.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>خوب توی اکشن اسکریپت ۳ بهتره سعی کنید بیشتر با کلاس ها کار کنید (برای این مثال هم از کلاس استفاده می کنیم) و در این مثال هم ما برای چک کردن این که ایمیل درسته یا نه ، از عبارات  با قائده (Regular Expressions) می کنیم ، این یکی از روشها و بهترین روش برای تایید اعتبار اطلاعات می باشد که در اکثر زبان های برنامه نویسی نیز مورد استفاده قرار می گیرد.<br />
در ابتدا به متغیر emailExpression عبارت با قائده مربوط به ایمیل رو تعریف می کنیم<br />
و بعد با تابع test محتوای متنی آدرس ایمیل رو چک می کنیم و نتیجه رو بر می گردونیم.</p>
<p>کد پکیج کلاس مورد نظرمون :</p>
<pre class="brush: as3;">
package {
 public class EmailValidation {
 public static function check(email:String):Boolean {
 var emailExpression:RegExp = /^[a-z][\w.-]+@\w[\w.-]+\.[\w.-]*[a-z][a-z]$/i;
 return emailExpression.test(email);
 }
 }
}
</pre>
<p>و برای استفاده از این کلاس توی پروژهاتون به روش زیر عمل می کنید :</p>
<pre class="brush: as3;">
import EmailValidation;

trace(EmailValidation.check(&quot;iflashlord@yahoo.com&quot;));  // true نتیجه
trace(EmailValidation.check(&quot;iflashlordyahoo.com&quot;));    // false نتیجه
trace(EmailValidation.check(&quot;iflashlord@yahoo.c&quot;));     // false نتیجه
</pre>
<p>در کل عبارات با قائده همیشه کمک بسیار زیادی برای چک کردن ، پیدا کردن و &#8230; در مورد اطلاعات در اختیار کاربران قرار می دهد ، در ضمن تابع test تقریبا بر طبق تابع test در زبان برنامه نویسی جاوااسکریپت در اکشن اسکریپت ۳ تعریف شده است ، امیدوارم از این مطلب بهره کافی برده باشید.</p>
<p><a href="http://www.regular-expressions.info/email.html" target="_blank">توضیحات بیشتر درباره عبارات با قائده و معتبر سازی ایمیل از کتاب Regular Expressions Cookbook رادر اینجا بخوانید</a>.
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.iflashlord.com/1388/06/%d8%aa%d8%a7%db%8c%db%8c%d8%af-%d8%b5%d8%ad%d8%aa-%d8%a7%db%8c%d9%85%db%8c%d9%84-%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>12</slash:comments>
		</item>
		<item>
		<title>استفاده از کلاس تاریخ در اکشن اسکریپت ۳</title>
		<link>http://blog.iflashlord.com/1388/05/%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%d8%a7%d8%b2-%da%a9%d9%84%d8%a7%d8%b3-%d8%aa%d8%a7%d8%b1%db%8c%d8%ae-%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-%db%b3/</link>
		<comments>http://blog.iflashlord.com/1388/05/%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%d8%a7%d8%b2-%da%a9%d9%84%d8%a7%d8%b3-%d8%aa%d8%a7%d8%b1%db%8c%d8%ae-%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-%db%b3/#comments</comments>
		<pubDate>Sun, 09 Aug 2009 04:18:33 +0000</pubDate>
		<dc:creator>بهروز پولادرگ</dc:creator>
				<category><![CDATA[اکشن اسکریپت]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[فلش]]></category>

		<guid isPermaLink="false">http://174.142.91.140/~iflashlo/blog/?p=14</guid>
		<description><![CDATA[فلش CS4 &#124;  اکشن اسکریپت ۳/۰ &#124; سطح مقدماتی در این خودآموز شما به  نحوه استفاده از اطلاعات را در کلاس تاریخ اکشن اسکریپت ۳ (AS3)  و تمامی اطلاعات مربوط به زمان ، برای بازیابی (شامل تاریخ و روز) پرداخته می شود. در این خودآموز به تدریس اصول در مورد نحوه استفاده و دستکاری و [...]]]></description>
			<content:encoded><![CDATA[<p><small>فلش CS4 |  اکشن اسکریپت ۳/۰ | سطح مقدماتی<br />
</small></p>
<p>در این خودآموز شما به  نحوه استفاده از اطلاعات را در کلاس تاریخ اکشن اسکریپت ۳ (AS3)  و تمامی اطلاعات مربوط به زمان ، برای بازیابی (شامل تاریخ و روز) پرداخته می شود. در این خودآموز به تدریس اصول در مورد نحوه استفاده و دستکاری و بازیابی اطلاعات در کلاس تاریخ پرداخته می شود.<br />
این خودآموز در سطح مبتدی است و به هیچ گونه دانش پیشرفته در<a href="http://blog.iflashlord.com/1387/08/%d8%a7%da%a9%d8%b4%d9%86-%d8%a7%d8%b3%da%a9%d8%b1%db%8c%d9%be%d8%aa%db%b3-%d8%aa%d9%81%d8%a7%d9%88%d8%aa%d9%87%d8%a7-%d8%a8%d8%a7-%d8%a7%da%a9%d8%b4%d9%86-%d8%a7%d8%b3%da%a9%d8%b1%db%8c%d9%be%d8%aa/" target="_blank"> زبان برنامه نویسی اکشن اسکریپت</a> برای این مقاله پیش نیاز نمی باشد.</p>
<h2>در این آموزش به مباحث زیر پرداخته می شود :</h2>
<ol>
<li>استفاده مقدماتی از کلاس (class) تاریخ (Date).</li>
<li>بازیابی جزئیات تاریخ خاص.</li>
<li>بازیابی سال ، روز ، ماه ، ساعت ، دقیقه   و ثانیه.</li>
<li>بازیابی ماه و روز های هفته.</li>
<li>به روز رسانی زمان.</li>
</ol>
<h2><span id="more-14"></span></h2>
<h2>استفاده مقدماتی از کلاس (class) تاریخ (Date)</h2>
<p>ما برای شروع استفاده از کلاس تاریخ (date class) می خواهیم تاریخ را دریافت و در پنجره خروجی output  فلش به نمایش در بیاوریم.<br />
مانند دیگر کلاسهای <a href="http://blog.iflashlord.com/1388/01/%d8%a2%d9%be%d9%84%d9%88%d8%af-%d9%81%d8%a7%db%8c%d9%84-%d8%a8%d8%a7-%d9%81%d9%84%d8%b4-%db%b8-%d9%88-%d9%be%db%8c-%d8%a7%da%86-%d9%be%db%8c/" target="_blank">اکشن اسکریپت ۳</a> قبل از استفاده از class تاریخ شما می بایست ، آن را به عنوان یک کلاس تعریف کنید.<br />
ما می توانیم این کار را با ساخت یک متغییر (var) و استفاده از کلمه کلیدی new انجام دهیم:</p>
<pre class="brush: as3;">
var my_date:Date = new Date();
</pre>
<p>در صورتی که بخواهید فقط یک نمای ساده از تاریخ را دریافت نمایید ، شما می توانید متغییر <strong>my_date </strong>را به عنوان یک رشته متنی استفاده کنید.شما میتوانید از تابع trace() استفاده نماید و تاریخ را در پنجره خروجی output به نمایش بگزارید:</p>
<pre class="brush: as3; highlight: [2];">
var my_date:Date = new Date();
trace(my_date.hours);
</pre>
<p>مثال بالا می بایست نتیجه ای مشابه تصویر زیر داشته باشد:</p>
<p><img class="alignnone size-full wp-image-435" title="output-date_iflashlord" src="http://blog.iflashlord.com/wp-content/uploads/2009/08/output-date_iflashlord.gif" alt="" width="414" height="132" /></p>
<p><span id="more-640"> </span></p>
<p>به طبع در اکثر موارد نیاز شما برای نمایش یک تاریخ استفاده از آن به صورت یک رشته ساده نمی باشد.شما  این امکان را دارید که هر بخش از تاریخ را یه صورت مجزا با استفاده از خاصیتهای کلاس تاریخ  دریافت نمایید، در زیر موارد اصلی که شما می توانید دریافت نمایید را معرفی می نماییم :</p>
<ul>
<li><em>date</em> &#8211; باز یابی روز از ماه.</li>
<li><em>month</em> &#8211; بازیابی ماه.</li>
<li><em>fullYear</em> &#8211; بازیابی سال کامل.</li>
<li><em>day</em> &#8211; بازیابی روز از هفته.</li>
<li><em>hours</em> &#8211; باز یابی ساعت.</li>
<li><em>minutes</em> &#8211; بازیابی دقیقه.</li>
<li><em>seconds</em> &#8211; بازیابی ثانیه.</li>
</ul>
<p>این موارد تعدادی از تمام خاصیت های و متدهای کلاس تاریخ می باشد ، اما اکثر آنها عموما مورد استفاده قرار نمی گیرند.در این آموزش به تعدادی از خواص اصلی می پردازیم با یادگیری استفاده از این خواص استفاده از دیگر خواص برای شما مشکل نخواهد بود ، زیرا روش و نوع استفاده از خواص به یک ترتیب میباشد. شما برای اطلاعات از لیست تمامی خواص ها و توضیحات بیشتر درباره کاربرد آنها بهر میباشد که به راهنمای<a href="http://blog.iflashlord.com/1387/08/%d8%a7%da%a9%d8%b4%d9%86-%d8%a7%d8%b3%da%a9%d8%b1%db%8c%d9%be%d8%aa%db%b3-%d8%aa%d9%81%d8%a7%d9%88%d8%aa%d9%87%d8%a7-%d8%a8%d8%a7-%d8%a7%da%a9%d8%b4%d9%86-%d8%a7%d8%b3%da%a9%d8%b1%db%8c%d9%be%d8%aa/" target="_blank"> نرم افزار فلش </a>مراجعه نمایید و طبق روال استفاده از خواص در این آموزش از آنها استفاده نمایید.</p>
<h2>بازیابی جزئیات تاریخ خاص</h2>
<p>بعد از ایجاد یک متغییر از کلاس تاریخ شما با استفاده از این متغییر می توانید به خواص این کلاس دسترسی پیدا کنید به این صورت که مثلا در مثال زیر برای دریافت ساعت (hours) می بایست خاصیت hours را فراخوانی نمایید برای این کار کافیست طبق مثال با قرار دادن یم دات (.) و بعد از آن خاصیت مورد نظر آن را دریافت نمایید(مانند object ها) :</p>
<pre class="brush: as3; highlight: [2];">
var my_date:Date = new Date();
trace(my_date.hours);
</pre>
<p><em>تاریخ فعلی بر طبق ۲۴ ساعت می باشد و شما برای مثال طبق ساعت سیستم خود می بایست عدد ساعت را دریافت  نمایید مثلا <strong>۱۹</strong></em>.</p>
<p>اکثر خواص به صورتی عمل می کنند که برای اکثر موارد مقدار عددی بر می گردانند مثلا روز و ماه را با عدد برای ما نمایش می دهند ،در نتیجه ها به صورت کلی از یک مقدار معنی دار مثل نام روز و ماه و.. نمی باشند و برای این کار می بایست تنظیمات پیشرفته را انجام دهیم که در ادامه توضیح داده شده است.</p>
<h2>بازیابی سال ، روز از ماه ، ساعت ، دقیقه  ، و ثانیه</h2>
<p>بازگردانی سال کامل ، روز از ما ، ساعت ، دقیقه و ثانیه و همه فرایندهای دیگر… برای همه مقدار بازگشتی به صورت عددی می باشد. شما می توانید مقدار های عددی را  طبق نیاز خود به صورت های مختلف دریافت نمایید :</p>
<pre class="brush: as3; highlight: [2];">
var my_date:Date = new Date();
trace(my_date.fullYear);
</pre>
<p>خروجی دریافتی نتیجه می بایست سال جاری باشد به طور مثال :<strong> <em>۲۰۰۹</em></strong>.</p>
<p>شما می توانید از همان مفهوم برای بازیابی خصوصیات دیگرهم استفاده کنید:</p>
<ul>
<li><em>.date</em> &#8211; این خاصیت روز را در ماه به صورت عددی بر می گرداند. به طور مثال: <em>۲۰</em>.</li>
<li><em>.hours</em> &#8211; این خاصیت  ساعت را بر می گردند بر مبنای ۲۴ ساعت. به طور مثال: <em>۱۴</em>.</li>
<li><em>.minutes</em> -این خاصیت مقدار زمان دقیقه را بر می گرداند. به طور مثال: <em>۴۶</em>.</li>
<li><em>.seconds</em> این خاصیت مقدار زمان ثانیه را بر می گرداند. به طور مثال: <em>۵۵</em>.</li>
</ul>
<p>تعیین ماه و روز در هفته کمی پیچیده تر می باشد ، اما ما در این آموزش به شما توضیح می دهیم که روش انجام آنها چگونه خواهد بود.</p>
<h2>بازیابی ماه</h2>
<p>با استفاده از خصوصیت ماه (month) به صورت مستقیم از شی تاریخ مقداری عددی دریافت می کنید که نمایانگر عدد ماه میباشد که از صفر ۰ شرو می شود و تا یازده ۱۱ ادامه دارد به صورتی که صفر ماه January می باشد و ۱۱ ماه آهر یعنی December  می باشد ، به مثال دقت نمایید :</p>
<pre class="brush: as3; highlight: [2];">
var my_date:Date = new Date();
trace(my_date.month);
</pre>
<p>این مثال به عنوان خروجی عدد مربوط به ماه جاری را که بین ۰ تا ۱۱ می باشد به عنوان خروجی نمایش داده میشود ، برای مثال برای ماه July عدد ۶ به عنوان خروجی نمایش داده می شود.</p>
<p>برای تبدیل این عدد به نام هر ماه ما می توانیم یک<a href="http://blog.iflashlord.com/1388/05/%d8%a2%d8%b1%d8%a7%db%8c%d9%87-%d9%87%d8%a7-%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-%db%b3/" target="_blank"> آرایه</a> با محتوای نام ماه ها ایجاد کنیم و در اولین گزینه آرایه که اندیس صفر می باشد نام ماه اول و الا آخر نام ماه ها را وارد نماییم و بعد با استفاده از متغییری که آرایه را به آن نسبت داده ایم و دریافت عدد ماه جاری توسط کلاس تاریخ و قرار داده آن در بین دو براکت []  به راحتی ماه جاری را از دورن آرایه به نمایش بگذاریم (در زیر ابتدا آرایه مورد نظر را ایجاد می کنیم):</p>
<pre class="brush: as3;">
var months:Array = [&quot;January&quot;, &quot;February&quot;, &quot;March&quot;, &quot;April&quot;, &quot;May&quot;, &quot;June&quot;, &quot;July&quot;, &quot;August&quot;, &quot;September&quot;, &quot;October&quot;, &quot;November&quot;, &quot;December&quot;];
</pre>
<div>برای اطلاعات بیشتر در مورد<a href="http://blog.iflashlord.com/1388/05/%d8%a2%d8%b1%d8%a7%db%8c%d9%87-%d9%87%d8%a7-%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-%db%b3/" target="_blank"> آرایه ها در اکشن اسکریپت ۳</a> به مقاله دیگر ما در این موضوع نوشته شده مراجعه نمایید.</div>
<p>حال شما می توانید از عددی که از ماه جاری دریافت می کنید برای فراخوانی عنصر مورد نظر در آرایه استفاده کنید که همان نام ماه مورد نظر می باشد و برای این کار از روش فراخوانی با براکت ها استفاده می کنم :</p>
<pre class="brush: as3; highlight: [3,4];">
var months:Array = [&quot;January&quot;, &quot;February&quot;, &quot;March&quot;, &quot;April&quot;, &quot;May&quot;, &quot;June&quot;, &quot;July&quot;, &quot;August&quot;, &quot;September&quot;, &quot;October&quot;, &quot;November&quot;, &quot;December&quot;];

var my_date:Date = new Date();
trace(months[my_date.month]);
</pre>
<p>خروجی این مثال می بایست نام ماه جاری باشد مثلا در صورتی که در ماه July  می باشید می بایست خروجی July  باشد.</p>
<h2>باز یابی روز های هفته</h2>
<p>برای بازیابی نام روز های هفته از همان روشی که در بازیابی نام ماه ها استفاده نمودیم ، استفاده می کنیم ، با استفاده از خاصیت روز (day) مانند روزهای ماه ولی این بار عددی بین ۰ تا ۶ بر می گرداند که در واقع نمایانگر همان هفت روز هفته می باشد و با عدد ۰ روز Sunday و تا عدد ۶ که روز Saturday را نشان می دهد.</p>
<p>برای تبدیل این اعداد به نام روزهای هفته می بایست یک آرایه ایجاد کنید که عناصر آن نام های روزهای هفته باشد و به وسیله این آرایه مانند مثال ماه ها ، روزهای هفته را برگردانید.</p>
<p>برای برگرداندن مقدار رون آرایه از روش براکتها [] استفاده می کنیم (در زیر ابتدا آرایه مربوطه را می سازیم):</p>
<pre class="brush: as3; highlight: [1];">
var days:Array = [&quot;Sunday&quot;, &quot;Monday&quot;, &quot;Tuesday&quot;, &quot;Wednesday&quot;, &quot;Thursday&quot;, &quot;Friday&quot;];
</pre>
<div>برای اطلاعات بیشتر در مورد<a href="http://blog.iflashlord.com/1388/05/%d8%a2%d8%b1%d8%a7%db%8c%d9%87-%d9%87%d8%a7-%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-%db%b3/" target="_blank"> آرایه ها در اکشن اسکریپت ۳ </a>به مقاله دیگر ما در این موضوع نوشته شده مراجعه نمایید</div>
<p>شما حال می توانید با کد زیر نام روزهای هفته را با کمک این آرایه دریافت نمایید:</p>
<pre class="brush: as3; highlight: [2,3];">
var days:Array = [&quot;Sunday&quot;, &quot;Monday&quot;, &quot;Tuesday&quot;, &quot;Wednesday&quot;, &quot;Thursday&quot;, &quot;Friday&quot;];
var my_date:Date = new Date();
trace(days[my_date.day]);
</pre>
<p>خروجی این مثال می بایست نام یکی روزهای هفته باشد به طور مثال : <strong><em>Sunday</em></strong>.</p>
<h2>به روز رسانی زمان</h2>
<p>یکی دیگر از چیزهایی که نیاز می باشد در باره کلاس تاریخ بدانید ، در مورد این می باشد که شما وقتی که اقدام به دریافت مقداری از زمان می نمایید و از آن خروجی دریافت می کنید این مقدار ثابت میباشد شاید شما نیاز داشته باشید زمان و ثانیه ها و دقیقه و.. را به صورت زنده و پویا به روز رسانی کنید و نتیجه را دریافت کنید برای این کار شما یا می بایست یک رویداد ENTER_FRAME ایجاد نمایید و یا از کلاس تایمر Time Class استفاده کنید ، که به طبع استفاده از کلاس تایمر بهتر میباشد ، در مورد کلاس تایمر و خصوصیات آن در مقالات بعدی توضیح خواهیم داد فعلا به مثالی در این باره دقت نمایید ، با این مثال می توانید با بخش اصلی کلاس تایمر آشنا شوید ، نکته ای که قابل بیان میباشد عدد ۱۰۰۰ ی می باشد که در بخش تعریف کلاس تایمر مشخص می شود ، این عدد نمایانگر یک ثانیه میباشد که بر اساس میلی ثانیه ۱۰۰۰ می شود ، در واقع با این کار ما یک تایمر ایجاد می کنیم که هر ثانیه تابع onTimer را اجرا می کند و محتوای تابع برای دریافت زمان می باشد که با استفاده از کلاس تاریخ انجام می شود:</p>
<pre class="brush: as3; highlight: [2,3];">
var my_date:Date;var my_timer:Timer=new Timer(1000);
my_timer.addEventListener(TimerEvent.TIMER, onTimer);
my_timer.start();function onTimer(e:TimerEvent):void {
my_date = new Date();
trace(my_date.hours + “:” + my_date.minutes + “:” + my_date.seconds);
}
</pre>
<div>در باره کلاس تایمر در مقالات بعدی به صورت مفصل بحث خواهیم نمود.</div>
<p>این مثال می بایست خروجی شبیه به این را هر ثانیه نمایش دهد: <strong><em>۱۶:۲۲:۴۳</em></strong>.</p>
<p>پایان مقاله ، یا علی</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iflashlord.com/1388/05/%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%d8%a7%d8%b2-%da%a9%d9%84%d8%a7%d8%b3-%d8%aa%d8%a7%d8%b1%db%8c%d8%ae-%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-%db%b3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>آرایه ها در اکشن اسکریپت ۳</title>
		<link>http://blog.iflashlord.com/1388/05/%d8%a2%d8%b1%d8%a7%db%8c%d9%87-%d9%87%d8%a7-%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-%db%b3/</link>
		<comments>http://blog.iflashlord.com/1388/05/%d8%a2%d8%b1%d8%a7%db%8c%d9%87-%d9%87%d8%a7-%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-%db%b3/#comments</comments>
		<pubDate>Sat, 08 Aug 2009 03:19:53 +0000</pubDate>
		<dc:creator>بهروز پولادرگ</dc:creator>
				<category><![CDATA[ادوبی فلش]]></category>
		<category><![CDATA[اکشن اسکریپت]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[فلش]]></category>

		<guid isPermaLink="false">http://174.142.91.140/~iflashlo/blog/?p=16</guid>
		<description><![CDATA[با سلام و تبریک مجدد فرخنده میلاد با سعادت یگانه منجی عالم آقا امام زمان مهدی موعود ، خدمت تمامی دوستان عزیز در مطلب قبلی درباره تفاوت بین اکشن اسکریپت ۲ و ۳ پرداختیم و در آنجا امکان توضیح بخش به بخش وجود نداشت و به همین دلیل تصمیم گرفتم که در طی چندین مقاله [...]]]></description>
			<content:encoded><![CDATA[<p>با سلام و تبریک مجدد فرخنده میلاد با سعادت یگانه منجی عالم آقا امام زمان مهدی موعود ، خدمت تمامی دوستان عزیز <img src="http://wp.iflashlord.com/wp-content/plugins/smilies-themer/adiumicons/happy.png" alt=":)" /></p>
<p>در مطلب <a href="http://blog.iflashlord.com/1387/08/%D8%A7%DA%A9%D8%B4%D9%86-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA%DB%B3-%D8%AA%D9%81%D8%A7%D9%88%D8%AA%D9%87%D8%A7-%D8%A8%D8%A7-%D8%A7%DA%A9%D8%B4%D9%86-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/">قبلی درباره تفاوت بین اکشن اسکریپت ۲ و ۳ پرداختیم</a> و در آنجا امکان توضیح بخش به بخش وجود نداشت و به همین دلیل تصمیم گرفتم که در طی چندین مقاله به هر بخش به صورت دقیق تر بپردازم ، انشاء الله با یاری خدا و همکاری شما دوستان با انجام این مهم بتوانیم قدمی هر چند کوچک بردارم.</p>
<p>این بار می خواهیم در مورد یکی از بخشهای اکشن اسکریپت ۳ که نسبت به دیگر بخش های تغییر زیادی نداشته است ، در این مقاله به نکات مهم و متد ( توابعی) که کاربری تر هست می پردازیم.</p>
<p>در این آموزش به مبحث های زیر می پردازیم :</p>
<ol>
<li>ساخت یک آرایه</li>
<li>مشاهده عناصر دون یک آرایه</li>
<li>افزودن یک عنصر به آرایه</li>
<li>حذف یک عنصر از آرایه</li>
<li>روشها و خواص متفرقه آرایه</li>
</ol>
<p><span id="more-16"></span></p>
<p><strong>توضیح :</strong> تابع trace که در کد های زیر استفاده شده هر مقداری که به عنوان آرگمان (مقداری که بین دو پرانز قرار می گیرد) در یافت نمایید را در موقع اجرا  در خروجی output فلش به نمایش در می آورد.</p>
<h2>ساختن یک آرایه</h2>
<p>تفاوت اصلی که در کلاس های AS3  به وجود آمده است موضوع کلمات کلیدی می باشد که بعد از ( : ) می آیند و تعریفی از نوع داده هر متغییر می باشد در مثال های زیر دو رفش برای ایجاد یک آرایه نمایش داده شده که روش اول به وسیله تعریف کلاس جدید Array می باشد و روش دوم با استفاده از برکت که در روش دوم سعی نمایید حتما کلمه کلیدی :Array  را وارد نمایید  تا نوع متغییر شما معلوم باشد</p>
<div dir="ltr">
<pre class="brush: as3;">
var myArray:Array = new Array(”Flash”, “ActionScript”, “IFLashLord”);
</pre>
</div>
<p>فلش یک روش دیگر که کوتاه تر نیز می باشد برای این کار قرار داده که استفاده از براکت ها می باشد [] در زیر مثالی برای این موضوع قرار دارد :</p>
<div dir="ltr">
<pre class="brush: as3;">
var myArray:Array = [&quot;Flash&quot;, &quot;ActionScript&quot;, &quot;IFLashLord&quot;];
</pre>
<p><strong> </strong></p>
</div>
<p>هر دو روش یک کار را انجام می دهند ولی اکثر برنامه نویسان فلش ترجیح می دهند از روش دوم استفاده کنند.که البته به دلیل سادگی و انعطاف پذری این روش می باشد.</p>
<h2>مشاهده عناصر درون آرایه</h2>
<p>شما به راحتی میتوانید به تمامی عناصر یک آرایه دسترسی داشته باشید در زیر مثالی برای دستری سریع به تمامی عناصر در AS3 را مشاهده می نمایید :</p>
<div dir="ltr">
<pre class="brush: as3; highlight: [2];">
var myArray:Array = [&quot;Flash&quot;, &quot;ActionScript&quot;, &quot;IFLashLord&quot;];
trace(myArray);
</pre>
<p><strong> </strong></p>
</div>
<div><strong><br />
</strong></div>
<div>با آزمایش این مثال می بایست خروجی زیر را مشاهده نمایید :<br />
<strong>“Flash,ActionScript,</strong><strong>IFLashLord</strong><strong>“</strong>.</div>
<p>شما برای دسترسی به یک عنصر خواص از یک آرایه می بایست index (ایندکس) آن عنصر را وارد نمایید<br />
index  یک عنصر در آرایه محل قرار گیری<a href="http://blog.iflashlord.com/1387/08/%D8%A7%DA%A9%D8%B4%D9%86-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA%DB%B3-%D8%AA%D9%81%D8%A7%D9%88%D8%AA%D9%87%D8%A7-%D8%A8%D8%A7-%D8%A7%DA%A9%D8%B4%D9%86-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/"> عنصر مورد نظر شما</a> در آرایه می باشد باید توجه داشته باشید شمارش عناصر در آرایه ها ار صفر شروع می شود.<br />
به طور مثال عنصر اول یک آرایه index صفر و عنصر دوم آرایه index  یک را داراست و به همین ترتیب….</p>
<p>برای دریافت یک عنصر از آرایه کافیست عدد index  یک آرایه را بین دو براکت باز و بسته قرار دهید [] با این کار شما می توانید هر یک از عناصر آرایه را با عدد index  آن فراخوانی کنید در مثال زیر این موضوع را نشان داده ایم (نمایش عنصر اول یک آرایه)  :</p>
<div dir="ltr">
<pre class="brush: as3; highlight: [2];">
var myArray:Array = [&quot;Flash&quot;, &quot;ActionScript&quot;, &quot;IFLashLord&quot;];
trace(myArray[0]);
</pre>
<p><strong> </strong></p>
</div>
<div><strong><br />
</strong></div>
<div>با آزمایش این مثال می بایست خروجی زیر را مشاهده نمایید :<br />
<strong> “Flash”</strong>.</div>
<p>پس در نتیجه شما برای دریافت مقدار آخرین عنصر آرایه مثال می بایست از عدد ۲ استفاده نمایید نه عدد ۳ .</p>
<div dir="ltr">
<pre class="brush: as3; highlight: [2];">
var myArray:Array = [&quot;Flash&quot;, &quot;ActionScript&quot;, &quot;IFLashLord&quot;];
trace(myArray[2]);
</pre>
<p><strong> </strong></p>
</div>
<div><strong><br />
</strong></div>
<div>با آزمایش این مثال می بایست خروجی زیر را مشاهده نمایید :<br />
<strong>“</strong><strong>IFLashLord</strong><strong>“</strong>.</div>
<p>تا اینجا شما می توانید آرایه بسازید و عناصر آنها را مشاهد و دریافت نمایید در ادامه به چگونگی افزودن و حذف عناصر به فلش می پردازیم.<br />
<span id="more-616"> </span></p>
<h2>افزودن عناصر به آرایه</h2>
<p>ابتدا می بایست یک آرایه ایجاد کنید ، برای افزودن عنصر به آرایه چند راه وجود دارد که یکی از آنها که ساده ترین روش می باشد استفاده از براکت ها []  می باشد ، با این روش شما می توانید یک مقدار را یه یک شماره از عنصر مورد نظر خود بیافزایید ، برای مثال اگر شما بخواهید به index  (اندیس) شماره ۳ یک آرایه ، مقداری را بیافزایید مانند مثال زیر عمل می کنید :</p>
<div dir="ltr">
<pre class="brush: as3; highlight: [2,3];">
var myArray:Array = [&quot;Flash&quot;, &quot;ActionScript&quot;, &quot;IFLashLord&quot;];
myArray[3] = “Tutorial”;
trace(myArray);
</pre>
<p><strong> </strong></p>
</div>
<div><strong><br />
</strong></div>
<div>با آزمایش این مثال می بایست خروجی زیر را مشاهده نمایید :<br />
<strong>“Flash,ActionScript,</strong><strong>IFLashLord</strong><strong>,Tutorial”</strong>.</div>
<p>برای تغییر یک مقدار که قبلا در آرایه وجود داشته مثلا اندیس شماره ۲ آرایه مثال شما می توانید به راحتی مانند مثال بالا مقدار یک عنصر مورد نظر خود را تغییر دهید و مقداری جدید به آن اعمال نمایید برای این کار به مثال زیر دقت نمایید ، در مثال زیر مقدار IFLashLord را با مقدار Tutorial جا به جا می کنیم :</p>
<div dir="ltr">
<pre class="brush: as3; highlight: [2];">
var myArray:Array = [&quot;Flash&quot;, &quot;ActionScript&quot;, &quot;IFLashLord&quot;];
myArray[2] = “Tutorial”;
trace(myArray);
</pre>
</div>
<div>با آزمایش این مثال می بایست خروجی زیر را مشاهده نمایید :<br />
<strong>“Flash,ActionScript,Tutorial”</strong>.</div>
<p>در صورتی که عددی که شما به عنوان اندیس وارد می کنید عددی باشد که بیش از یک عنصر از آخرین عنصر فاصله داشته باشد باعث می شود به به صورت خود کار این فاصله مابین با عناصری با مقدار خالی پر شود، در مثال زیر به این موضوع می پردازیم :</p>
<div dir="ltr">
<pre class="brush: as3; highlight: [2];">
var myArray:Array = [&quot;Flash&quot;, &quot;ActionScript&quot;, &quot;IFLashLord&quot;];
myArray[6] = “Tutorial”;
trace(myArray);
</pre>
</div>
<div>با آزمایش این مثال می بایست خروجی زیر را مشاهده نمایید :<br />
<strong>“Flash,ActionScript,</strong><strong>IFLashLord</strong><strong>, , , ,Tutorial”</strong>.</div>
<p>به غیر از روشی که در بالا به آن پرداختیم روش دیگری نیز وجود دارد که توسط متد Push() می باشد این متد به صورت خودکار یک آیتم به آخر آرایه شما می افزاید ، با این روش نیازی به دانستن شماره جاری آخرین عنصر برای افزودن مقدار بعد از آن نمی باشد و به صورت خود کار عنصر به آخر آرایه افزوده می شود ، آرگمان ورودی مقدار عنصر می باشد :</p>
<div dir="ltr">
<pre class="brush: as3; highlight: [2];">
var myArray:Array = [&quot;Flash&quot;, &quot;ActionScript&quot;, &quot;IFLashLord&quot;];
myArray.push(”Tutorials”);
trace(myArray);
</pre>
</div>
<div>با آزمایش این مثال می بایست خروجی زیر را مشاهده نمایید :<br />
<strong>“Flash,ActionScript,</strong><strong>IFLashLord</strong><strong>,Tutorial”</strong>.</div>
<p>تکنیک براکتها [] و متد Push  کمک بسیار زیادی به شما مخصوصا در پروژه های پیچید خواهد نمود که با استفاده از این روش ها به راحتی می توانید با آرایه ها کار کنید.</p>
<h2>حذف کردن یک عنصر از یک آرایه</h2>
<p>شما در برخی مواقع به حذف کردن عناصر آرایه نیاز پیدا می کنید، برای حذف یک عنصر می بایست شماره اندیس آن را بدانیم تا بتوانیم آن را حذف نماییم.<br />
یک ابزار خوب برای حذف کرد عناصر یک آرایه متد splice() می باشد ، در این متد شما می توانید یک و یا چند عنصر دلخواه را از آرایه خود حذف نمایید ، تنها کافیست اندیس عنصری که می خواهید حذف از آن شروع شود و عنصری که می خواهید عمل حذف تا آن ادامه پیدا کند را وارد نمایید که به ترتیب به عنوان آرگمان های این متد می بایست وارد شود ، فرمت این متد را در زیر می بینید :</p>
<p dir="ltr">
<pre class="brush: as3;">
myArray.splice(اندیس پایان  , اندیس  شروع) ;
</pre>
<p>بنا بر این ، برای مثال در صورتی که شما بخواهید عنصر دوم آرایه را حذف نمایید می بایست از کد زیر استفاده نمایید :</p>
<div dir="ltr">
<pre class="brush: as3; highlight: [2];">
var myArray:Array = [&quot;Flash&quot;, &quot;ActionScript&quot;, &quot;IFLashLord&quot;];
myArray.splice(2,2);
trace(myArray);
</pre>
</div>
<div>با آزمایش این مثال می بایست خروجی زیر را مشاهده نمایید :<br />
<strong> “Flash,ActionScript”</strong>.</div>
<p>با این متد می توانید چند عنصر را نیز حذف نماییم برای مثال در زیر، ما در<a href="http://blog.iflashlord.com/1388/05/%d8%a2%d8%b1%d8%a7%db%8c%d9%87-%d9%87%d8%a7-%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-%db%b3/"> عنصر اول آرایه</a> را حذف می نماییم ، برای این کار به عنوان آرگمان اول ۰ و برای آرگمان دوم ۱ را وارد می نماییم و از اندیس ۰ تا ۱ را حذف می کنیم :</p>
<p dir="ltr">
<pre class="brush: as3; highlight: [2];">
var myArray:Array = [&quot;Flash&quot;, &quot;ActionScript&quot;, &quot;IFLashLord&quot;];
myArray.splice(0,1);
trace(myArray);
</pre>
<div>با آزمایش این مثال می بایست خروجی زیر را مشاهده نمایید :<br />
<strong>“</strong><strong>IFLashLord</strong><strong>“</strong>.</div>
<p>برای حذف عناصر متد دیگری نیز وجود دارد ، متد pop() می تواند آخرین عنصر یک آرایه را به صورت خودکار یافته و حذف نماید :</p>
<div dir="ltr">
<pre class="brush: as3; highlight: [2];">
var myArray:Array = [&quot;Flash&quot;, &quot;ActionScript&quot;, &quot;IFLashLord&quot;];
myArray.pop();
trace(myArray);
</pre>
</div>
<div>با آزمایش این مثال می بایست خروجی زیر را مشاهده نمایید :<br />
<strong>“Flash,ActionScript”</strong>.</div>
<p>متد pop() محدودیت داشته و فقط می تواند آخرین متد یک آرایه را حذف نمایید ، با این حال که با متد splice  نیز می توانید این کار را انجام دهید ولی استفاده از این روش های می تواند به شما در پروژه هایی که انجام می دهید کمک بسیاری بنماید.</p>
<h2>روشها و خواص متفرقه آرایه</h2>
<p>در آخر به مواردی مثل خواص و روشهای متفرقه ای می پردازیم که در بحث آرایه ها علاوه بر حذف و افزودن مورد نیاز شما می باشد :</p>
<ul>
<li>شما می توانید تعداد عناصر موجود در آرایه را توسط property (خاصیت) length دریاقت نمایید، این خاصیت در زمانی که می خواهید در یک آرایه پیمایش کنید به شما کمک می کند :</li>
</ul>
<div dir="ltr">
<pre class="brush: as3; highlight: [2];">
var myArray:Array = [&quot;Flash&quot;, &quot;ActionScript&quot;, &quot;IFLashLord&quot;];
trace(myArray.length);
</pre>
<p><strong> </strong></p>
</div>
<div><strong><br />
</strong></div>
<div>با آزمایش این مثال می بایست خروجی زیر را مشاهده نمایید :<br />
<strong>۳</strong>.</div>
<ul>
<li>متد بعدی متد reverse()  ( معکوس) می باشد که ترتیب عناصر را کاملا معکوس می نماید به صورتی که عنصر اول در آخرین عنصر قرار خواهد گرفت :</li>
</ul>
<div dir="ltr">
<pre class="brush: as3; highlight: [2];">
var myArray:Array = [&quot;Flash&quot;, &quot;ActionScript&quot;, &quot;IFLashLord&quot;];
myArray.reverse();
trace(myArray);
</pre>
</div>
<div>با آزمایش این مثال می بایست خروجی زیر را مشاهده نمایید :<br />
<strong>“</strong><strong>IFLashLord</strong><strong>,ActionScript,Flash”</strong>.</div>
<p>مواردی که ذکر شد تنها بخی از خواص و متد های موجود برای آرایه ها در<a href="http://blog.iflashlord.com/1387/08/%D8%A7%DA%A9%D8%B4%D9%86-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA%DB%B3-%D8%AA%D9%81%D8%A7%D9%88%D8%AA%D9%87%D8%A7-%D8%A8%D8%A7-%D8%A7%DA%A9%D8%B4%D9%86-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/"> فلش و اکشن اسکریپت ۳ </a>می باشد که شما با مراجعه به راهنمای موجود در نرم افزار فلش می توانید با دیگر موارد آشنا شده و از آنها استفاده نمایید موارد که در بالا ذکر با توجه به مهم و کاربردی بودن از بین چندین مورد موجود انتخاب شده اند ، که انشاء الله در آیند و در مقالات دیگر به دیگر موارد ئر مورد آرایه ها نیز اشاره خواهیم نمود.</p>
<p>پایان مقاله ، یا علی</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iflashlord.com/1388/05/%d8%a2%d8%b1%d8%a7%db%8c%d9%87-%d9%87%d8%a7-%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-%db%b3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>اکشن اسکریپت ۳ وتفاوتها با اکشن اسکریپت ۲</title>
		<link>http://blog.iflashlord.com/1387/08/%d8%a7%da%a9%d8%b4%d9%86-%d8%a7%d8%b3%da%a9%d8%b1%db%8c%d9%be%d8%aa%db%b3-%d8%aa%d9%81%d8%a7%d9%88%d8%aa%d9%87%d8%a7-%d8%a8%d8%a7-%d8%a7%da%a9%d8%b4%d9%86-%d8%a7%d8%b3%da%a9%d8%b1%db%8c%d9%be%d8%aa/</link>
		<comments>http://blog.iflashlord.com/1387/08/%d8%a7%da%a9%d8%b4%d9%86-%d8%a7%d8%b3%da%a9%d8%b1%db%8c%d9%be%d8%aa%db%b3-%d8%aa%d9%81%d8%a7%d9%88%d8%aa%d9%87%d8%a7-%d8%a8%d8%a7-%d8%a7%da%a9%d8%b4%d9%86-%d8%a7%d8%b3%da%a9%d8%b1%db%8c%d9%be%d8%aa/#comments</comments>
		<pubDate>Sat, 01 Nov 2008 13:22:46 +0000</pubDate>
		<dc:creator>بهروز پولادرگ</dc:creator>
				<category><![CDATA[اکشن اسکریپت]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[فلش]]></category>

		<guid isPermaLink="false">http://blog.iflashlord.com/?p=43</guid>
		<description><![CDATA[سلام این بار یک مقاله کامل که از نوشته دوستان در انجمن جمع آوری شده رو می زارم این ماله چندیدن روزه شما به صورت یک جا بخونید ، مربوط به اکشن اسکریپت ۳ می باشد خوندن و آزمایش و تمرین این مقاله رو برای اونایی که هنوز جرات نکردن وارد دنیای جدید برنامه نویسی [...]]]></description>
			<content:encoded><![CDATA[<blockquote>
<p style="text-align: right;">سلام این بار یک مقاله کامل که از نوشته دوستان در انجمن جمع آوری شده رو می زارم این ماله چندیدن روزه شما به صورت یک جا بخونید ، مربوط به اکشن اسکریپت ۳ می باشد<br />
خوندن و آزمایش و تمرین این مقاله رو برای اونایی که هنوز جرات نکردن وارد دنیای جدید برنامه نویسی قدرتمند فلش بشن بسیار بسیار توصیه میکنم اگه این مقاله رو بخونید حتما دیگه ترسی از سختی یا جدیدی این زبان نخواهید داشت<br />
خوب برای این مقاله می بایست از <em>سجاد </em>عزیز هم تشکر کنم :d</p>
</blockquote>
<p style="text-align: right;">اول از همه چیز اینه که AS3 از کد پایه دوباره نوشته شده و قاعدتا با AS2 تفاوت خواهد داشت . این باز سازی کد ها باعث افزایش چشمگیر سرعت اجرای دستورات شده و البته همین مزیت امکان ترکیبAS3 با ورژن های قبلی این زبان را در یک فایل سلب کرده است . قبل از شرع AS3 توجه داشته باشید که هر تغییری نیاز به صرف زمان داره همچنین از جدید بودن قالب این زبان نترسید چون تجربه نشون داده یادگیری اون برای افراد مبتدی از نسخه های قبلی آسون تر بوده.</p>
<p>بد نیست برای اینکه علت بوجود اومدن اون رو بفهمیم یه نگاه به تفاوت های این دوتا و قابلیت های جدید AS3 بندازیم :</p>
<ol style="text-align: right;">
<li>گزارش دقیقتر خطا ها</li>
<li>ارتقای دستور زبان</li>
<li>معماری جدید سیستم نمایش(display)</li>
<li>معماری جدید مدیریت اتفاقات (events)</li>
<li>ارتفای امکانات ارتباط با XML</li>
<li>قابلیت جدید کار با text ها</li>
<li>امکانات جدید مدیریت صدا ها</li>
<li>قابلیت جدید دسترسی به داده ها : می تونید به داده ها در حین دانلود دسترسی داشته باشید!</li>
<li>ارتقای برنامه نویس شی گرا</li>
<li>…</li>
</ol>
<p style="text-align: right;">کاربران AS3 علاوه بر کار در محیط فلش می تونند برای پلتفرم های جدید فلش مثل Flex و adobe AIR هم برنامه نویسی کنند . اگر چه یک پروژه AIR میتونه شامل HTML ، PDF و Java Script هم باشه اما AS3 ابزار اصلی و جامع این نوع اپلیکشن هاست.</p>
<p style="text-align: right;"><span id="more-43"></span></p>
<p style="text-align: right;">شروع :<br />
<strong> بخش اول :</strong></p>
<p style="text-align: right;">۱- تعریف متغیر ها به همون شکل AS2 است و تغییری نکرده :</p>
<p style="text-align: right;">کد:</p>
<p style="text-align: right;">
<pre dir="ltr">var myVariable:Number = 1;</pre>
<p style="text-align: right;"><span id="more-226"> </span><br />
2- همچنین عملگر های شرطی و کنترلی :</p>
<p>کد:</p>
<pre dir="ltr">if (a == 1 &amp;amp;&amp;amp; b == "goodbye") {
trace("options a and b");
}

for (var i:Number = 0; i &amp;lt; 3; i++) {
trace("hello");
}

switch (a) {
case 1 :
trace("one");
case 2 :
trace("two");
break;
}

while (num &amp;lt; .5) {
num = Math.random();
}</pre>
<p>3- آریه ها هم :</p>
<p>کد:</p>
<pre dir="ltr">var myArray:Array = new Array();
myArray.push(1);
trace(myArray)
// 1 appears in the Output panel
myArray.push(2);
// the array now has two items: 1, 2
trace(myArray.pop());
// the pop() method removes the last item, displaying its value of 2
trace(myArray)
// the lone remaining item in the array, 1, is displayed</pre>
<p>4- فانکشن ها هم:</p>
<p style="text-align: right;">کد:</p>
<pre dir="ltr">function showMsg(){
trace("hello");
}
showMsg();</pre>
<p>5- اشیا :</p>
<p style="text-align: right;">کد:</p>
<pre dir="ltr">var plane:Object = new Object();
plane.pitch = 0;
plane.roll = 5;
plane.yaw = 5;</pre>
<p>6- تریگر ها :</p>
<p style="text-align: right;">کد:</p>
<pre dir="ltr">this.mc.width;</pre>
<p>7-<strong> تعریف جدید تر مفاهیم Properties وMethods و Events:</strong></p>
<p style="text-align: right;"><strong>Properties:</strong> شامل ویژگی های یک شی است مثل طول ، عرض ، شفافیت .<br />
<strong>Methods:</strong> شامل کارهایی که یک شی می تونه انجام بده مثلا :play, stop,getUrl<br />
<strong> Events:</strong> شامل همه اتفاقاتی که ممکنه برای یک شی بیفته مثلا کلیک شدن ، لود شدن ، درگ شدن و… . این اتفاقات هنگام واقع شدن باعث اجرا شدن یک سری دستورات که ما تعیین می کنیم می شوند .<br />
EventHandlers واسته ای هست برای اینکه اتفاقات را به فانکشن ها مرتبط کنه . این ویژگی چند تا تغییر کوچولو با AS2 داره :</p>
<p style="text-align: right;">کد:</p>
<pre dir="ltr">rotate_right_btn.addEventListener(MouseEvent.MOUSE_UP,onRotateRight);
function onRotateRight(evt:MouseEvent):void {
box.rotation += 20;
}</pre>
<p>متود addEventListener()برای تعریف یک event به کار میره و شیئی را که قرار است listening کنه رو به یک function وصل می کنه . در مثال بالا دکمه rotate_right_btn قراره منتظر بمونه تا یه mouseUp (کلیک که می کنی نه وقتی ول می کنی می گن mouseUp ) اتفاق بیفته و وقتی این اتفاق می فته فانکشن onRotateRight اجرا می شود . addEventListener()دو تا پارامتر داره. پارامتر اول می گه که دکمه قراره منتظر چه event یی باشه . پارامتر دوم اسم فانکشنی هست که هنگام اتفاق افتادن event باید صدا زده بشه . مثال زیر هم کاربرد پارامتر ورودی فانکشن onStartDrag هست که می تونه خیلی کاربردی باشه . evt.target آبجکتی را که event در مورد اون اتفاق افتاده تریگر می کنه. evt یک شیئ MouseEvent هست که target یک Propertie از اون هست .</p>
<p style="text-align: right;">کد :</p>
<pre dir="ltr">myMovieClip.addEventListener(MouseEvent.MOUSE_DOWN, onStartDrag);
myMovieClip.addEventListener(MouseEvent.MOUSE_UP, onStopDrag);
function onStartDrag(evt:MouseEvent):void {
evt.target.startDrag();
} function onStopDrag(evt:MouseEvent):void {
evt.target.stopDrag();
}</pre>
<p>- <strong>Frame Events</strong> :مثال بدون شرح</p>
<p style="text-align: right;">کد :</p>
<pre dir="ltr">stage.addEventListener(Event.ENTER_FRAME,onFrameLoop);
function onFrameLoop(evt:Event):void {
cycle.x = mouseX;
cycle.wheel.rotation = mouseX;
}</pre>
<p>-<strong>Timer Events</strong> :<br />
همون طور که می دونید enterFrame به علت ثابت بودن فریم ریت در بازه های زمانی ثابت اتفاق می افته . Timer Eventاین اجازه رو میده تا یک فانکشن را در یک بازه زمانی دینامیک و دلخواه صدا بزنیم . این قابلیت در AS2 بوسیله تابع setInterval() قابل پیاده سازی بود .</p>
<p style="text-align: right;">کد :</p>
<pre dir="ltr">var timer:Timer = new Timer(1000);
timer.addEventListener(TimerEvent.TIMER, onTimer);
timer.start();
function onTimer(evt:TimerEvent):void {
watch.hand.rotation +=5;
}</pre>
<p><strong> بخش دوم :</strong><br />
یک مفهوم جدید واساسی :<strong> DisplayList</strong></p>
<p style="text-align: right;">سلام ماه رمضون مبارک اگه آنتن داد ما اموات رو هم یاد کنید .<br />
پیچیدگی ، پراکندگی و بی نظمی هایی که در AS2 برای ایجاد در حال اجرای (runTime ) اشیای گرافیکی (مثل متن ها ، عکس ها ، مووی کلیپ ها و … ) وجود داشت باعث شد تا تو AS3 یه حال اساسی به این مقوله داده بشه ، نتیجه این تغییرات بنیادی ، شده Display list .<br />
برای اینکه مفهوم Display list رو خوب بفهمید اول خوب به فایل فلش توجه کنید و دقیقا پیش خودتون مشخص کنید چه چیزایی رو میبینید و اون ها رو دسته بندی کنید . به قول این کتاب این همه نصف راهه .</p>
<p style="text-align: right;">Display list بخش نگهدارنده همه اشیاء بصری داخل فایل شماست . بوسیله Display list می تونید یک شیء گرافیکی را اضافه یا حذف کنید ، اون ها را کنار هم قرار بدید و ارتباط اونها رو با هم تعیین کنید . برای نمونه توی فایل مثلا زیر – شکل ۱ – ما یک shape داریم ، یک Text و یک Movie Clip که داخل اون یک تصویر بیت مپ قرار داره . اما AS3 فایل ما رو به شکلDisplay list متناظرش–شکل ۲- می بینه .<br />
<a rel="lightbox[226]" href="http://img.majidonline.com/pic/165407/displayList.gif" target="_blank"><img src="http://img.majidonline.com/pic/165407/displayList.gif" border="0" alt="" /></a></p>
<p style="text-align: right;">واضح و مبرهن است که Display list یک شیء است و هر شیئی را کلاسی اندر است . نوع داده های کلاس display object به صورت زیر است :</p>
<p><a rel="lightbox[226]" href="http://img.majidonline.com/pic/165359/displayObject.gif" target="_blank"><img id="ncode_imageresizer_container_1" src="http://img.majidonline.com/pic/165359/displayObject.gif" border="0" alt="" width="666" height="275" /></a></p>
<p style="text-align: right;"><strong>یه سری توضیح برای اشیاء جدیدالورود :</strong><br />
<strong>DisplayObject : </strong>هر چیزی که در display list می تواند وجود داشته باشد .<br />
<strong>Shapes : </strong>یک مستطیل ، بیضی ، خط و یا هر چیز دیگری که بوسیله ابزار ها کشیدی می شوند .<br />
<strong>Bitpam :</strong> تنها بیت مپ هایی در این قسمت جا می گیرند که بوسیله کلاس bitmap data و در حال اجرا بوسیلهAS3 ساخته شده باشند . توجه داشته باشید عکس های jpg که که وارد فایل می شوند در این نوع از bitmap دسته بندی نمی شند و در گروه shape ها قرار می گیرند .<br />
<strong>Video :</strong> یک شی video display که حداقل ش اینه که یک ویدیو رو پخش کند . بطور استاندارد یک کامپوننت player .<br />
<strong> InteractiveObject :</strong> این کلاس همه اشیاء display Object رو که بوسیله کاربر و توسط موس و صحفه کلید قابل تغییرند رو شامل می شه .<br />
این کلاس به طور دستی به display list اضافه نمی شه . ما فقط می تونیم با زیر مجموعه هاش کار کنیم .<br />
<strong>DisplayObjectContainer :</strong> این کلاس شبیه display object است با این تفاوت که این یکی میتونه داخلش چند تا display object داشته باشه که به این display object داخلیش می گن بچه -<strong>children</strong> &#8211; . مثلا video یک display object هست اما نمی تونه داخلش یک display object داشته باشه اما Movie clip با اینکه خودش هم display object هست اما می تونه داخل خودش display object داشته باشه پس Movie clip یک DisplayObjectContainer است .AS3 چند مدل DisplayObjectContainer داره :<br />
<strong>Stage :</strong> تقریبا همون root خودمونه و display object های زیر مجموعه اش هم با همین اسم می تونند آدرس دهی بشن . البته توجه کنید که خودش بخشی از Display list هست .<br />
<strong>Sprite : </strong>این یکی خیلی جدیده . sprite یک مووی کلیپ بدون تایم لاینه .<br />
<strong>Loader :</strong> برای لود swf یا bitmap ها .<br />
AVM1Movie: این کلاس برای کار با swf هایی که با AS1 یا AS2 ساخته شدند و قراره لود بشند به کار می ره . مخفف ActionScript Virtual Machine 1 هست . swf لود شده با فایل اصلی هیچ رابطه ندارند . البته احتمالا با local conection قابل پیاده سازی باشه .</p>
<p style="text-align: right;"><strong>root_در برابر root :</strong><br />
در AS2 کلمه _root به تایم لاین swf اصلی اشاره می کرد . چون _root یک متغیر global و همیشه ثابت بود اگر فایلی رو لود می کردین که توی اون به _root اشاره می شد _root فایل اصلی در نظر گرفته می شد . در AS3 کلمه root یک متغیر متعلق به display object است و معمولا به تایم لاین اصلی اشاره نمی کند .</p>
<p style="text-align: right;"><strong>بخش سوم :<br />
</strong><br />
<strong>چینش اجرای Display list</strong></p>
<pre dir="ltr">addChild() :</pre>
<p>برای اضافه کردن یک display object به display list دو گام ساده نیاز هست :<br />
۱-ساختن یک display object (در مثال اینجا یک MC ) :</p>
<p style="text-align: right;">کد :</p>
<pre dir="ltr">var mc:MovieClip = new MovieClip();</pre>
<p><span style="color: #ff0000;"> این دستور یک مووی کلیپ می سازه ام ، اونو نمایش نمی ده .</span><br />
۲- برای نمایش این MC باید اونو به display list اضافه کنیم :</p>
<p style="text-align: right;">کد :</p>
<pre dir="ltr">addChild(mc);</pre>
<p>اگر شما یک displayObjectContainer داشته باشید و بخواید MC تون توی اون باشه می تونید دستور addChild() رو به صورت زیر بنویسید :</p>
<p style="text-align: right;">کد :</p>
<pre dir="ltr">navBar.addChild(mc);</pre>
<p><strong> دو تا مثلا برای انواع دیگه display Object :</strong></p>
<p style="text-align: right;">کد :</p>
<pre dir="ltr">var sp:Sprite = new Sprite();
addChild(sp);
var sh:Shape = new Shape();
addChild(sh);</pre>
<p>توی AS2 مووی کلیپ ها یه خصوصیت دیگه هم به اسمdepthداشتند که لایه بندی اونها رو مشخص می کرد . display list این کار رو به طور خودکار انجام میده و هر شیئی که add میشه رو به بالا ترین سطح z موجود میبره و البته بطور دستی هم می شه اونو تعیین کرد .</p>
<p style="text-align: right;">اضافه کردن یک symbol به display list :<br />
توی کتابخانهگزینه linckage مووی کلیپ مورد نظرتون رو کلیک کنید و گزینه Export for ActionScript رو هم فعال کنید کنید :<br />
<img src="http://img.majidonline.com/pic/165945/linkage.gif" border="0" alt="" /></p>
<p style="text-align: right;">در جعبه Base class کلاسی که قراره symbol مورد نظرتون وارثش بشه رو مشخص کنید .</p>
<p><strong> و حالا :</strong></p>
<p style="text-align: right;">کد:</p>
<pre dir="ltr">var cycle:MovieClip = new Unicycle();
addChild(cycle);</pre>
<p>در اینجا قدرت شی گرایی فلش رو دیدیم در ادامه بیشتر به این موضوع می پردازیم</p>
<p style="text-align: right;">بخش چهارم : ( برنامه نویسی شی گرا)Object-oriented programming</p>
<p style="text-align: right;">به طور مختصر برنامه نویسی شی گرا یک روش برای حل مسئله های بزرگ که نیاز به استفاده از قانون تفرقه بنداز و حکومت کن داره هست . توی این روش مسئله بزرگ به زیر مسئله های کوچک خرد می شند که ریز حلال های این ریز مسائل رو می شه با کمی مسامحه به همون اسم کلاس صدا زد .<br />
البته گروهی از برنامه نویسان این روش بسار خوب رو به کشتن پشه با چکش تشبیه می کنن واقعا همین جوره البته برای کار های کوچک ولی برای پروژه های بزرگ واقعا کار رو راحت می کنه مخصوصا پر کار برد ترین بخش شی گرا که واثت کلاس ها از یکدیگری که با استفاده از روشهای تک خال single ton و دیگر روشهای موجود میشه از حجم کد نویسی اضافه زیادی جلوگیری کرد</p>
<p style="text-align: right;"><strong>قالب کلی یک کلاس ساده :</strong></p>
<p style="text-align: right;">کد :</p>
<pre dir="ltr">package {
import flash.display.MovieClip;

public class Main extends MovieClip {
public function Main() {
trace("Flash");
}
}
}</pre>
<p>کلمه <strong>package</strong> کلاس و همه اجزای مرتبط با اون رو توی خودش بسته بندی می کنه . و البته کاربردهای دییگه هم داره که می بینیم . خط دوم به اصطلاحا کامپایلر می گه که می خوایم شی ما تمام متود ها ، پروپرتی ها و ایونت های MovieClip رو هم داشته باشه .<br />
کلمه extends MovieClip استفاده از مفهوم وراثت توی بحث OOP است . وراثت یعنی صرفه جویی در کد . با این کار شما کلاس MovieClip رو توسعه می دین بدون اینکه از محتویاتش اطلاع داشته باشید .<br />
حالا کد بالا رو توی پوشه فایل FLA جاری با نام Main.as ذخیره کنید و توی فریم اول کد زیر رو بنویسید و اجرا کنید :</p>
<p style="text-align: right;">کد:</p>
<pre dir="ltr">var main:Main = new Main();</pre>
<p><strong> Class Paths :</strong><br />
برای استفاده از کلاس ها چند روش وجود داره . اول اینکه خود فلش همه فایل های .as داخل پوشه خودش رو به طور خودکار import می کنه مثل مثال بالا . دوم ؛ بعضی مواقع لازم می شه تا کلاس ها داخل پوشه ها قرار بگیرند تا دسته بندی دقیق تری انجام بشه . توی این حال برای دسترسی به فایل های داخل پوشه ها برای هر پوشه از یک نقطه استفاده می کنیم :</p>
<p style="text-align: right;">کد:</p>
<pre dir="ltr">import myapp.effects.Water;</pre>
<p>توی این مثال ما کلاس myapp&gt;effects&gt;Water.as رو import می کنیم . البته باید توی خود Water.as هم باید تغییراتی رو بدیم :</p>
<p style="text-align: right;">کد:</p>
<pre dir="ltr">package myapp.effects {

public class Water {
public function Water() {

}
}
}</pre>
<p><em> سوم </em> می شه از Publish settings هم کلاس ها رو به پروژه اضافه کرد .</p>
<p style="text-align: right;"><strong>یه مثلا برای تکمیل و تفریح :</strong></p>
<p style="text-align: right;">کد:</p>
<pre dir="ltr">package {
import flash.display.MovieClip;
import flash.display.Graphics;
import flash.events.Event;

public class Box extends MovieClip {
public var color:uint = 0x000099;
public function Box() {
//draw a shape at runtime
this.graphics.lineStyle(1, 0x000000);
this.graphics.beginFill(color);
this.graphics.drawRect(0, 0, 100, 100);
this.graphics.endFill();
this.addEventListener(Event.ENTER_FRAME, onLoop, false,0, true);
}
private function onLoop(evt:Event):void {
this.x += 5;
}
}
}</pre>
<p><strong><span style="color: #99cc00;"> addChild() یادتون نره پایان کار باید اسفاده بشه ها .</span></strong></p>
<p style="text-align: right;">به نظرم تا اینجا یه <strong>Action Scrip 2.0</strong> کار می تونه ب<strong>ا Action Script 3.0</strong> کار کنه . البته این چرند و پرند هایی که من گفتم حتما ناقص هست ؛ ام ، به نظرم برای یه AS2 کار یکفی بالاشاره . بقیه چیزها به سادگی حین کار یاد گرفته می شند مثلا اینجا لازم نیست که من از <strong>()gotoAndStop</strong> چیزی بگم در صورتی که شاید برای یک AS3 کار دونستنش از نون شب هم واجب تره و باز هم البته <strong>AS3</strong> یک هوا از <strong>AS2</strong>سره و تکنیک ها و خروجی هایی که می شه از کشید بیرون در حد معجزه ست .<br />
تا حدی که هم اکنون متورهای پردازش سه بعدی زیادی باین ورژن نوشته شده که با اونا میشه بازی سه بعدی کامل با فلش ساخت استفاده کمتر از رم و نیز کمتر به پردازش از حسن ها اصلی این ورژن می باشد تقریبا تا جایی که تونستن از قابلیتهای برتر دیگر زباهای برنامه نویسی برای بهتر شدنش کمک گرفتن به زودی در ادامه آموزش ها به بحث سه بعدی سازی با AS3 هم خواهیم پرداخت</p>
<p style="text-align: right;"><strong>::یک توضیح ضروری::</strong><br />
برای اشاره کردن به اجزای یک فایل توی AS2 معمولا از _parent , _root استفاده می شه . توی AS3 وقتی از این قابلیت استفاده کنید .</p>
<p><strong>مثلا :</strong></p>
<p style="text-align: right;">کد:</p>
<pre dir="ltr">parent.gotoAndStop(20);</pre>
<p>هنگام اجرا با خطا مواجه می شید :</p>
<pre dir="ltr">Access of possibly undefined property gotoAndStop through a reference with static type flash.displayisplayObject</pre>
<p>این به خاطر اینه که فلش نمی دونه جنس parent از چیه . واسه حل این مشکل به این روش عمل می کنیم :</p>
<p style="text-align: right;">کد :</p>
<pre dir="ltr">MovieClip(parent).gotoAndStop(20);</pre>
<p>با این کار برای فلش مشخص می کنید که parent از چه جنسی می باشد.</p>
<p>در پایان چند ابزار مفید برای برنامه نویسی با AS3 رو براتون می زارم تا تقریبا مقاله تکمیل بشه <img src="http://wp.iflashlord.com/wp-content/plugins/smilies-themer/adiumicons/wink.png" alt=";)" /></p>
<p><strong>تبدیل اکشن اسکریپت ۲ به اکشن اسکریپت ۳</strong> (<strong>AS2 to AS3 convertor</strong>)<br />
برای اجرا به جاوا ران تایم احتیاج داره و می بایست جاوا رو روی سیستم نصب کرده باشید. این هم یه قسمت از توضیحات هست.</p>
<p style="text-align: left;">Installation and usage:<br />
To use this application you must first install the JRE. Then you must modify ‘run.bat’ with a text editor. Finally, you just double-click run.bat to run it.<br />
1.) Install the Java Runtime Environment (JRE) &#8211; http://java.sun.com<br />
2.) Open run.bat with a text editor.<br />
3.) Modify the path variable to point the ‘bin’ directory of your JRE installation.<br />
4.) Modify the 3 directories on the line that looks like the line below. In order, the directories are the AS2 source directory, the AS2 output directory, and the AS3 output directory.<br />
java -jar As3CodeUpdater.jar “C:codeAs2Source” “C:codeAs2Output” “C:codeAs3Output”<br />
۵.) Save it. Double-click run.bat</p>
<p style="text-align: right;">توضیحات و فایل مروطه به صورت زیپ شده برای دانلود :<br />
<a href="http://www.electrotank.com/junk/jobe/AS2_to_AS3.zip">http://www.electrotank.com/junk/jobe/AS2_to_AS3.zip</a></p>
<p><strong>جدول تطبیق دستورات as2 با </strong><strong>as3</strong><a href="http://www.electrotank.com/junk/jobe/AS2_to_AS3.zip"><br />
</a></p>
<p style="text-align: right;">این جدولی که توی پیوست هاست فکر کنم خیلی مفید باشه واسه اینکه ببینید حدودا چقد as2 با as3 فرق کرده و یه دسته بندی خوب هم داره …حتما ببینید.<strong><a href="http://www.flickr.com/photos/danzen/1382459629/" target="_blank"> این جا</a></strong> رو هم ببینید که حتما مفیده برای درک بهتر فلش …</p>
<p><a title="فرق as2 با as3" href="http://sarirupload.com/out.php?i=3533_as3csmigration.zip" target="_blank">این هم به صورت فایل زیپ می تونید از اینجا دانلود کنید</a></p>
<p>وای چقدر زیاد شد خسته شدم<br />
دوستان هر سوال یا مشکلی بود در خدمتم<br />
امیدوارم بستری را برای مهاجرت برنامه نویسان از AS2 به AS3 فراهم اورده باشم بقیش دیکه به تلاش و پشتکار خودتونه<br />
انشاء الله موفق و پیروز و سربلند باشید ، بهروز</p>
<p>پ.ن : پاسخ به یک سوالاتی که از طرف کاربران پرسیده شده است به دلیل کاربردی بود :</p>
<p><strong>۱-علی رضا</strong></p>
<p><strong>سوال :</strong></p>
<p>اگر میشه در مورد متدهای Stage هم مطلبی بنویسید.</p>
<p><strong>جواب :</strong></p>
<p>جا به صورت خلاصه مفید ترین هاشو در AS2 به صورت زیر میباشد</p>
<p>Stage.align = &#8220;T&#8221;;<br />
Stage.scaleMode = &#8220;noscale&#8221;;<br />
Stage.showMenu = false;<br />
Stage.addListener(listener);<br />
Stage.fullScreenWidth()<br />
Stage.fullScreenHeight()<br />
Stage.fullScreenSourceRect()</p>
<p>البته تفاوت کوچکی در AS3 وجود دارد که بهتره برای لیست کامل به راهنمای فلش مراجعه کنید</p>
<p><strong>۲- هاجر</strong></p>
<p><strong>سوال :</strong></p>
<p>سلام روزتون به خیر. اگر اجازه دهید چند سوال در مورد اکشن اسکریپت ۳ و فلش ۱۰ بپرسم.<br />
۱- من یک فیلم فلش ساخته ام که سه لایه صوتی دارد. که هر یک در برگیرنده صدای یک خواننده است. می خواستم فرمی طراحی کنم که کاربر خودش خواننده مورد نظر را انتخاب کند. پس از انتخاب توسط کاربر دیگر لایه های صوتی غیر فعال شوند. لطفا من را راهنمایی کنید.</p>
<p>۲- آیا راهی هست که به شماره لایه های یک فیلم فلش و یا شماره لایه های یک فیلم فلش که در فیلم اصلی لود شده است دسترسی پیدا کرد و آن ها را کنترل کرد.</p>
<p>۳-فکر می کنم تفاوت هایی بین لود کردن چند فیلم فلش در یک فیلم اصلی در as3 و as2 وجود دارد. آیا در as3 هم مانند as2 بحث سطوح مختلف (سطح صفر برای فیلم اصلی و سطوح ۱ به بعد برای فیلم های بعدی) وجود دارد؟آیا می توان کاری کرد که یک فیلم فلش خارجی در زیر برخی عناصر (مثلا یک shap) فیلم اصلی قرار بگیرد؟ آیا راهی وجود دارد که در فیلم اصلی دکمه هایی برای لود کردن فیلم های مختلف قرار دهیم که هر یک فیلم خاصی را لود می کنند و فقط یک دکمه stop وجود داشته باشد که فیلم های لود شده متوقف کند؟<br />
در ضمن از آشنایی با سایتتون خیلی خوشحال شدم. اگر ممکن است مطالب آموزشی عملی را بیشتر قرار دهید.<br />
متشکرم</p>
<p><strong>جواب :</strong></p>
<p>۱ &#8211; نکته ای رو در اول بگم اگه به صورت اکسترنال اکشن و یا پکیج برنامه نویسی می کنید و صدا ها تون هم از بیرو بارگزاری می کنید از این دو ورودی استفاده نمایید(در ابتدای کد)</p>
<p dir="ltr"><code>import flash.media.Sound;<br />
import flash.net.URLRequest;</code></p>
<p>شما نیازی نیست که هر صدا را در یک لایه قرار دهید فقط کافیت آنها را وارد library کنید<br />
<img src="http://www.republicofcode.com/tutorials/flash/as3sound/import-sound.gif" alt="" /></p>
<p>و بعد بر روی هر صدا راست کلیک می کنید و linkage را انتخاب نمایید کادرس شبیه به عکس زیر باز می شه در قسمت class برای هر کدام ار صدا ها یک نام بگذارید<br />
<img src="http://www.republicofcode.com/tutorials/flash/as3sound/linkage.gif" alt="" /></p>
<p>در واقع تنها لازم است که شما با انتخاب کابر صدای مورد نظر را فراخوانی کنید . چگونه اش رو در پایین می نویسم</p>
<p dir="ltr"><code>var mySound:Sound = new MyFavSong();<br />
var mySound2:Sound = new MyFavSong2();<br />
var mySound3:Sound = new MyFavSong3();</code></p>
<p><code><br />
</code><br />
خوب تا اینجا  فقط صدا ها رو تعریف کردیم حالا برای پخش و ایشت هر کدوم کافیه از play براشون استفاده کنیم</p>
<p><code>mySound.play();</code></p>
<p>این ها که گفتن به صورت کلی بود برای این موضوع یک فایل سورس مثال میزارم تا استفاده کنید<br />
<a rel="nofollow" href="http://www.republicofcode.com/tutorials/flash/as3sound/pause-play-buttons.fla">برای دانلود سورس استفاده صدا در اکشن اسکریپت ۳ کلیک کنید</a></p>
<p>برای کنترل بر بیشتر بر روی صدا ها می بایست چنل تعریف کنید که البته توی کد سورس بالا وجود دارد</p>
<p>۲ &#8211; در واقع نه به این منظور از لایه ها ولی به سطوح depth  ها می شود دسترسی پیدا کرد و آنها را بالا و پایین برد</p>
<p>۳ &#8211; بله در کد و روش و نوع کار<br />
بله ولی با تعرفی جدید<br />
بله این کار هم توسط depth امکان پذیر می باشد<br />
بله مانند مثال صدا شما یک شی برای پخش ویدئو ایجاد می کنید و تنها با دکمه های ارجاع برای پخش را عوض می کنید و با یک دکمه ایست شدن هر فیلمی را در این شی ایست می کنید<br />
متاسفانه به دلیل طولانی بودن و البته یه کم پیچیده بود امکان نوشتنش در اینجا نیست ؛ انشاء الله در مقاله ای دیگر&#8230;</p>
<p>در مورد depth در اکشن اسکریپت ۳ می بایست از روشهای زیر استفاده کنید<br />
<code>setChildIndex(example,0);</code><br />
که به جای صفر می تونید عدد مورد نظرتون برای سطح رو وارد نمایید</p>
<p>برای بدست آوردن آخرین سطح منهای یک از کد زیر استفاده می کنیم ، در واقع numChildern  تعداد فرزند های موجود در والد می باشد<br />
<code>setChildIndex(example,numChildren - 1);</code></p>
<p>برای بالا بردن سطح نسبع به یک شی دیگر ابتدا سطح شی دیگر رو می گیریم و به اضافه یک به شی جدید خودمون اضافه می کنیم</p>
<p dir="ltr"><code>var otherindex = getChildIndex(theotherthing);<br />
//Behind that thing:<br />
setChildIndex(example, otherindex)<br />
//^ pushes the other thing forward<br />
//In front:<br />
setChildIndex(example, otherindex + 1);</code></p>
<p><strong>3- پریسا</strong></p>
<p><strong>سوال:</strong></p>
<p>ممکن است در مورد ساختن نواری که مدت زمان سپری شده از یک فیلم را نشان می دهد توضیح دهید.(فکر می کنم اسمش playback bar است).</p>
<p><strong>جواب:</strong></p>
<p>در واقع به این موارد playback bar و یا seek bar گفته میشه که به عنوان یک کامپوننت آماده در بخش کاموننت های فلش موجود می باشد و تنها کافیست آدرس فیلم و تنظیمات خود را وارد نمایید<br />
ساخت این موارد یه کم توضیحشون طولانی می شه<br />
ولی در کل اینه که طول فلیم رو بر اساس زمانش در یافت می کنیم و حالا می بایست به نسبت به عرض نواری که داریم تبدیلش کنیم و یک مووی کلیک مانند نوار بارگزاری اگه دیده باشید ایجاد کنیم و حالا می بایست یک مووی کلیپ با سایز مورد نظر ثابت برای نوار خالی بسازیم و با فرمان مختصات موس روی محورهای ایکس محل کلیک رو دریافت کنیم و فیلم و مووی کلیپ دوم که نمایش گر فیلم تا محل نمایش داده شده است رو حرکت بدهیم<br />
البته این کار توسط یک EnterFrame هم می بایست در زمان پخش فیلم انجام شود<br />
البته یه نوار به یک رنگ دیگر نیز برای زمان بارگزاری فیلم استفاده میشه</p>
<p dir="ltr">اینها که گفتم تقریبا اصول کلی بود که هم برای ویدئو و صدا و هم پیمایش فایل swf  استفاده میشه و نیاز به برنامه نویسی زیادی داره<br />
با توجه به این که شما می تونید قالب بندی پلیرهای آماده درون کامپوننت های فلش رو خودتون تغییر بدید به صرفه تر این است که از کامپوننت ها استفاده کنید<br />
ولی در هر حال من یک نمونه کد براتون میزارم تقریبا کامله و برای اسختن دستی این موضوع میباشد<br />
<code><br />
var mediaURL:String = "http://files.fliiby.com/streamVideo.php?file=u25u74oigj.flv";<br />
var duration:Number;<br />
var video:Video = new Video(320, 240);<br />
addChild(video);<br />
setChildIndex(video,1);<br />
var nc:NetConnection = new NetConnection();<br />
nc.connect(null);<br />
var ns:NetStream = new NetStream(nc);<br />
var stransform:SoundTransform = new SoundTransform();<br />
ns.soundTransform = stransform;<br />
video.smoothing = true;<br />
ns.addEventListener(NetStatusEvent.NET_STATUS, onStatusEvent);<br />
function onStatusEvent(stat:Object):void<br />
{<br />
trace(stat.info.code);<br />
if(stat.info.code == "NetStream.Buffer.Full") {<br />
bufferClip.visible = false;<br />
}<br />
if(stat.info.code == "NetStream.Buffer.Empty") {<br />
bufferClip.visible = true;<br />
}<br />
if(stat.info.code == "NetStream.Play.Stop") {<br />
ns.seek(0);<br />
}<br />
}<br />
var meta:Object = new Object();<br />
meta.onMetaData = function(meta:Object) {<br />
duration = meta.duration;<br />
}<br />
ns.bufferTime = 0.1;<br />
ns.client = meta;<br />
video.attachNetStream(ns);<br />
ns.play(mediaURL);<br />
playButton.addEventListener(MouseEvent.MOUSE_UP, playButton_Release);<br />
function playButton_Release(event:MouseEvent) {<br />
ns.togglePause();<br />
}<br />
rewindButton.addEventListener(MouseEvent.MOUSE_UP, rewindButton_Release);<br />
function rewindButton_Release(event:MouseEvent) {<br />
ns.seek(0);<br />
}<br />
var videoInterval:uint = setInterval(videoStatus,100);<br />
function videoStatus() {<br />
var amountLoaded:Number = ns.bytesLoaded / ns.bytesTotal;<br />
loader.loadbar.width = amountLoaded * 208.9;<br />
loader.scrub.x = ns.time / duration * 208.9;<br />
}<br />
var scrubInterval:uint;<br />
loader.scrub.addEventListener(MouseEvent.MOUSE_DOWN, loaderScrub_click);<br />
function loaderScrub_click(event:MouseEvent) {<br />
clearInterval(videoInterval);<br />
scrubInterval = setInterval(scrubit,10);<br />
loader.scrub.startDrag(false,new Rectangle(0, loader.scrub.y, 208, loader.scrub.y));<br />
}<br />
loader.scrub.addEventListener(MouseEvent.MOUSE_UP, loaderScrub_Release);<br />
loader.scrub.stage.addEventListener(MouseEvent.MOUSE_UP, loaderScrub_Release);<br />
function loaderScrub_Release(event:MouseEvent) {<br />
clearInterval(scrubInterval);<br />
videoInterval = setInterval(videoStatus,100);<br />
loader.scrub.stopDrag();<br />
}<br />
function scrubit() {<br />
ns.seek(Math.floor((loader.scrub.x/208)*duration));<br />
}<br />
var playerMenu:ContextMenu = new ContextMenu();<br />
playerMenu.hideBuiltInItems();<br />
var item1:ContextMenuItem = new ContextMenuItem("::::: Video Controls :::::");<br />
var item2:ContextMenuItem = new ContextMenuItem("Play / Pause Video");<br />
var item3:ContextMenuItem = new ContextMenuItem("Replay the Video");<br />
var item4:ContextMenuItem = new ContextMenuItem("© ۲۰۰۹ IFLashLord.Com");<br />
item2.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, pauseIt);<br />
item3.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, restartIt);<br />
playerMenu.customItems.push(item1, item2, item3, item4);<br />
contextMenu = playerMenu;<br />
function pauseIt(event:ContextMenuEvent):void {<br />
trace("pauseIt()");<br />
ns.togglePause();<br />
}<br />
function stopIt(event:ContextMenuEvent):void {<br />
trace("stopIt()");<br />
ns.seek(0);<br />
ns.pause();<br />
}<br />
function restartIt(event:ContextMenuEvent):void {<br />
trace("restartIt()");<br />
ns.seek(0);<br />
}<br />
function setVolume(val):void {<br />
stransform.volume = val;<br />
ns.soundTransform = stransform;<br />
}<br />
function getVolume():Number {<br />
return stransform.volume;<br />
}<br />
function soundOff():void {<br />
setVolume(0);<br />
}<br />
function soundOn():void {<br />
setVolume(1);<br />
}<br />
mute.addEventListener(MouseEvent.MOUSE_OVER, mute_Mouseover);<br />
function mute_Mouseover(event:MouseEvent) {<br />
if(getVolume() == 1) {<br />
mute.gotoAndStop("onOver");<br />
}<br />
else {<br />
mute.gotoAndStop("muteOver");<br />
}<br />
}<br />
mute.addEventListener(MouseEvent.MOUSE_OUT, mute_Mouseout);<br />
function mute_Mouseout(event:MouseEvent) {<br />
if(getVolume()== 1) {<br />
mute.gotoAndStop("on");<br />
}<br />
else {<br />
mute.gotoAndStop("mute");<br />
}<br />
}<br />
mute.addEventListener(MouseEvent.MOUSE_UP, mute_Click);<br />
function mute_Click(event:MouseEvent) {<br />
if(getVolume() == 1) {<br />
setVolume(0);<br />
mute.gotoAndStop("muteOver");<br />
}<br />
else {<br />
setVolume(1);<br />
mute.gotoAndStop("onOver");<br />
}<br />
}</code></p>
<p><strong>4 &#8211; هاجر</strong></p>
<p><strong>سوال :</strong></p>
<p>مشکل من فارسی نوشتن روی این کامپوننت هاست . مخصوصا در مورد comboboxها. در ضمن من اصلا فونتی که فلش برای فارسی استفاده می کند دوست ندارم چطور می توانم آن را تغییر دهم.</p>
<p>. اگر بخواهیم با زدن یک دکمه یکی از سطرهای comboboxظاهر شود آیا باید از prompt استفاده کنیم؟ (من استفاده کرده ام ولی جواب نمی دهد)<br />
یک سوال دیگر من می خواهم یک شکل نامنظم را که در فتوشاپ طراحی کرده ام به عنوان ماسک روی صفحه قرار دهم ولی وقتی آن را در فتوشاپ paste می کنم یک پس زمینه سفید در کنار آن قرار می دهد. حتی اگر خود شکل را انتخاب کرده باشم. به نظر شما بهترین کار برای طراحی شکل های پیچیده چیست؟ و این که وقتی در فتوشاپ یک شکل را (مثل یک ابر )انتخاب می کنم و feather ان را تنظیم می کنم و آن را در فلش paste می کنم خطی در اطراف شکل می اندازد که نمی توان آن را از بین برد راه حل آن چیست؟</p>
<p><strong>پاسخ :</strong></p>
<p>مشکل فارسی در فونت می باشد که با کد زیر می توانید فونت و فرمت مورد نظر خود را تعیین نمایید :</p>
<p><code>my_listBox.setStyleProperty("textFont", "Tahoma"); </code></p>
<p>این خصوصیت استایل می باشد که برای قالب بندی به کار می رود</p>
<p>و یا</p>
<p><code>my_listBox.setStyle("fontFamily", "Tahoma");</code></p>
<p>اگر از اکشن اسکریپ ۳ استفاده می کنید با کد زیر میتوانید به تمامی کامپوننت های فعال در پروژتون فونت و استایل مورد علاقتون رو اعمال کنید</p>
<pre class="brush: jscript;">
//set Style to all
var ff:TextFormat = new TextFormat();
ff.font=&quot;Tahoma&quot;;
ff.size=12;
ff.color=0x000000;
ff.align=&quot;right&quot;;
import fl.managers.StyleManager;
StyleManager.setStyle(&quot;textFormat&quot;, ff);
</pre>
<p>نه نیازی به این کار نمی باشد ،اگه منظورتون از ظاهر شدن انتخاب شدن یک گذینه میباشد!؟ برای این کار می بایست مقدار selected را تغییر دهیدبهترین راه برای ورود تصویر به فلش استفاده از نرم افزار fireworks می باشد که ارتباط قوی با فلش دارد<br />
در مورد ماسک گذاری یک تصویر در صورتی که حتی پس زمینه نداشته باشد نمی توان به عنوان ماسک در فلش استفاده نمود و می بایست طرحی وکتور و در فلش برای ماسک از روی طرح مورد نظر خود بکشید(طراحی نمایید)</p>
<p>در مورد آخر هم با استفاده از نرم افزار fireworks مشکل حل می شود ولی در غیر این صورت می بایست خروجی تصویر را png بگیرید و بعد تصویر را وارد فلش کنید ، در صورتی که لازم داشته باشید در نرم افزار فلش امکان فشرده سازی تصویر وجود دارد</p>
<p><strong>سوال :</strong></p>
<p>این کد که در action script 2.0 عمل میکنه اگر بخواهیم در action script 3.0 بنویسم باید چطور نوشته بشه؟</p>
<pre class="brush: jscript;">
Stage.align =''C'';
Stage.scaleMode=''noSclee'';
Stage.showMenu=false; false;setProperty('''',_quality, ''best'');
</pre>
<p><strong>جواب:</strong><br />
به جای اون کد ها می بایست از کدهای زیر در اکشن اسکریپت۳ استفاده نمایید</p>
<pre class="brush: jscript;">
import flash.display.Stage;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.display.StageQuality;
import  flash.ui.ContextMenuItem;

stage.scaleMode = StageScaleMode.SHOW_ALL;
stage.align = StageAlign.TOP_LEFT;
stage.quality =StageQuality.BEST;

var cm:ContextMenu= new ContextMenu();
cm.hideBuiltInItems();
this.contextMenu = cm;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.iflashlord.com/1387/08/%d8%a7%da%a9%d8%b4%d9%86-%d8%a7%d8%b3%da%a9%d8%b1%db%8c%d9%be%d8%aa%db%b3-%d8%aa%d9%81%d8%a7%d9%88%d8%aa%d9%87%d8%a7-%d8%a8%d8%a7-%d8%a7%da%a9%d8%b4%d9%86-%d8%a7%d8%b3%da%a9%d8%b1%db%8c%d9%be%d8%aa/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
<enclosure url="http://files.fliiby.com/streamVideo.php?file=u25u74oigj.flv" length="5377412" type="video/x-flv" />
<enclosure url="http://files.fliiby.com/streamVideo.php?file=u25u74oigj.flv" length="5377412" type="video/x-flv" />
		</item>
	</channel>
</rss>
