<?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; Flash</title>
	<atom:link href="http://blog.iflashlord.com/tag/flash/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>طراحی خطوط با موس در اکشن اسکریپت ۳</title>
		<link>http://blog.iflashlord.com/1390/10/%d8%b7%d8%b1%d8%a7%d8%ad%db%8c-%d8%ae%d8%b7%d9%88%d8%b7-%d8%a8%d8%a7-%d9%85%d9%88%d8%b3-%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/10/%d8%b7%d8%b1%d8%a7%d8%ad%db%8c-%d8%ae%d8%b7%d9%88%d8%b7-%d8%a8%d8%a7-%d9%85%d9%88%d8%b3-%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, 09 Jan 2012 23:15:08 +0000</pubDate>
		<dc:creator>بهروز پولادرگ</dc:creator>
				<category><![CDATA[ادوبی ایر]]></category>
		<category><![CDATA[ادوبی فلش]]></category>
		<category><![CDATA[اکشن اسکریپت]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[addChild]]></category>
		<category><![CDATA[addEventListener]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[beginFill]]></category>
		<category><![CDATA[DisplayObject]]></category>
		<category><![CDATA[draw]]></category>
		<category><![CDATA[drawRect]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[lineStyle]]></category>
		<category><![CDATA[mouse]]></category>
		<category><![CDATA[MouseEvent]]></category>
		<category><![CDATA[MOUSE_DOWN]]></category>
		<category><![CDATA[MOUSE_MOVE]]></category>
		<category><![CDATA[MOUSE_UP]]></category>
		<category><![CDATA[moveTo]]></category>
		<category><![CDATA[removeEventListener]]></category>
		<category><![CDATA[Sprite]]></category>
		<category><![CDATA[stage]]></category>
		<category><![CDATA[stageHeight]]></category>
		<category><![CDATA[stageWidth]]></category>
		<category><![CDATA[اکشن اسکریپت 3]]></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>

		<guid isPermaLink="false">http://blog.iflashlord.com/?p=1830</guid>
		<description><![CDATA[در این مطلب به یک برنامه ساده در فلش می پردازیم که به راحتی با موس بتوانید خطوط مورد نظرتان را طراحی نمایید ، این مطلب به انجام این کار با استفاده از فلش و اکشن اسکریپت ۳ می پردازیم. دانلود سورس : draw_line_with_mouse_iflashlord.zip در ابتدا کلاس های مورد نیاز را وارد می کنیم (البته [...]]]></description>
			<content:encoded><![CDATA[<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">
	<img src="http://blog.iflashlord.com/wp-content/uploads/2012/01/draw_line_with_mouse_iflashlord.jpg" alt="iflashlord.com" />
	</p><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در این مطلب به یک برنامه ساده در فلش می پردازیم که به راحتی با موس بتوانید خطوط مورد نظرتان را طراحی نمایید ، این مطلب به انجام این کار با استفاده از فلش و اکشن اسکریپت ۳ می پردازیم.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><span id="more-1830"></span></p>
<blockquote><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">دانلود سورس : <a href="http://blog.iflashlord.com/wp-content/uploads/2012/01/draw_line_with_mouse_iflashlord.zip" target="_blank">draw_line_with_mouse_iflashlord.zip</a></p></blockquote>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در ابتدا کلاس های مورد نیاز را وارد می کنیم (البته توجه داشته باشید این کار به صورت خودکار توسط نسخه های جدید فلش انجام می شود و دلیل ذکر این موارد برای اشاره به کلاس های مورد استفاده در مطلب آموزشی می باشد) </p>
<pre class="brush: as3; title: ; notranslate">
import flash.display.Sprite;
import flash.display.Stage;
import flash.events.MouseEvent;
import flash.display.Graphics;
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در مرحله بعد یک Sprite ایجاد می کنیم ، این DisplayObject مخزنی برای ذخیره محتوا طراحی شده توسط موس می باشد.</p>
<pre class="brush: as3; title: ; notranslate">
var _sprite:Sprite= new Sprite();
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">حال این Sprite را addChild می کنیم و در ابتدا محیطی که می خواهیم در آن طراحی انجام شود را ایجاد می کنیم برای این کار از drawRect برای طراحی یک مستطیل استفاده می کنیم.</p>
<pre class="brush: as3; title: ; notranslate">
_sprite.graphics.beginFill(0xF0F0F0);
_sprite.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
_sprite.graphics.endFill();
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">برای این که این بخش مشخص باشد ما رنگ F0F0F0 را قرار دادیم شما می توانید هر کد رنگی که مورد نظرتان باشد را وارد نمایید. و در این مثال برای به دست آوردن طول و عرض صفحه استیج از stage.stageHeight و  stage.stageWidth استفاده شده است و برای مختصات شروع ایجاد طرح از ۰ و ۰ که مختصات x و y نقطه شروع می باشد استفاده شده است.<br />
در ضمن endFill برای پایان دادن به یک مقدار دهی مثلا رنگ به شی مستطیل تعریف شده ما می باشد.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">حال می بایست رویدادهای مربوطه به فشردن کلیک چپ موس (MOUSE_DOWN) و رها کردن آن را (MOUSE_UP) تعریف می کنیم و به Sprite تعریف شده اعمال می کنیم.</p>
<pre class="brush: as3; title: ; notranslate">
_sprite.addEventListener(MouseEvent.MOUSE_DOWN, MouseDown);
_sprite.addEventListener(MouseEvent.MOUSE_UP, MouseUp);
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">حال تابع مربوطه به فشرده شدن موس را تعریف می کنیم در این تابع ما توسط متد lineStyle از graphics مربوطه به شی نمایشی Sprite ابتدا قالب بندی خط را تعیین می کنیم ، و توسط متد moveTo مختصات اولیه را مختصات کنونی موس قرار می دهیم .<br />
حال زمان آن رسیده که رویدادی جدید تعریف کنیم تا در زمان حرکت موس تابع MouseMove را فراخوانی کند ، این تابع وظیفه کشیدن خط را بر عهده دارد.</p>
<pre class="brush: as3; title: ; notranslate">
function MouseDown(e:MouseEvent):void
{
_sprite.graphics.lineStyle(1, 0, 1);
_sprite.graphics.moveTo(mouseX, mouseY);
_sprite.addEventListener(MouseEvent.MOUSE_MOVE, MouseMove);
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">تابع MouseMove با استفاده از متد lineTo در هر زمان که موس حرکت کند خطی به نقطه مختصات کنونی موس طراحی می کند. آرگمان اول lineTo مربوطه به مختصات x و آرگمان دوم مربوطه به مختصات y می باشد که در این مثال برای مقدار x از mouseX و y از mouseY که مقدارهای مربوطه به مختصات کنونی موس می باشند استفاده شده است .</p>
<pre class="brush: as3; title: ; notranslate">
function MouseMove(e:MouseEvent):void
{
_sprite.graphics.lineTo(mouseX, mouseY);
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">حال می بایست توسط رویدادی که برای رها کردن کلیک تعیین کردیم در زمان رها کردن کلیک رویداد مربوطه به طراحی در حال حرکت موس و در واقع فراخوانی MouseMove را حذف کنیم.</p>
<pre class="brush: as3; title: ; notranslate">
function MouseUp(e:MouseEvent):void
{
_sprite.removeEventListener(MouseEvent.MOUSE_MOVE, MouseMove);
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><strong>سورس کد کامل برنامه به صورت یکجا :</strong></p>
<pre class="brush: as3; title: ; notranslate">
import flash.display.Sprite;
import flash.display.Stage;
import flash.events.MouseEvent;
import flash.display.Graphics;

var _sprite:Sprite= new Sprite();
addChild(_sprite);
_sprite.graphics.beginFill(0xF0F0F0);
_sprite.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
_sprite.graphics.endFill();

_sprite.addEventListener(MouseEvent.MOUSE_DOWN, MouseDown);
_sprite.addEventListener(MouseEvent.MOUSE_UP, MouseUp);

function MouseDown(e:MouseEvent):void
{
	_sprite.graphics.lineStyle(1, 0, 1);
	_sprite.graphics.moveTo(mouseX, mouseY);
	_sprite.addEventListener(MouseEvent.MOUSE_MOVE, MouseMove);
}

function MouseUp(e:MouseEvent):void
{
	_sprite.removeEventListener(MouseEvent.MOUSE_MOVE, MouseMove);
}
function MouseMove(e:MouseEvent):void
{
	_sprite.graphics.lineTo(mouseX, mouseY);
}
</pre>
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><strong>و بهتر است کمی کدمان را (از نظر رویدادها) بهینه تر نیز کنیم :</strong></p>
<pre class="brush: as3; highlight: [12,13,19]; title: ; notranslate">
import flash.display.Sprite;
import flash.display.Stage;
import flash.events.MouseEvent;
import flash.display.Graphics;

var _sprite:Sprite= new Sprite();
addChild(_sprite);
_sprite.graphics.beginFill(0xF0F0F0);
_sprite.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
_sprite.graphics.endFill();

_sprite.addEventListener(MouseEvent.MOUSE_DOWN, MouseDown , false , 0 , true);
_sprite.addEventListener(MouseEvent.MOUSE_UP, MouseUp , false , 0 , true);

function MouseDown(e:MouseEvent):void
{
	_sprite.graphics.lineStyle(1, 0, 1);
	_sprite.graphics.moveTo(mouseX, mouseY);
	_sprite.addEventListener(MouseEvent.MOUSE_MOVE, MouseMove , false , 0 , true);
}

function MouseUp(e:MouseEvent):void
{
	_sprite.removeEventListener(MouseEvent.MOUSE_MOVE, MouseMove);
}
function MouseMove(e:MouseEvent):void
{
	_sprite.graphics.lineTo(mouseX, mouseY);
}
</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">دانلود سورس : <a href="http://blog.iflashlord.com/wp-content/uploads/2012/01/draw_line_with_mouse_iflashlord.zip" target="_blank">draw_line_with_mouse_iflashlord.zip</a></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.iflashlord.com/1390/10/%d8%b7%d8%b1%d8%a7%d8%ad%db%8c-%d8%ae%d8%b7%d9%88%d8%b7-%d8%a8%d8%a7-%d9%85%d9%88%d8%b3-%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>تمام صفحه در اکشن اسکریپت ۳</title>
		<link>http://blog.iflashlord.com/1390/10/%d8%aa%d9%85%d8%a7%d9%85-%d8%b5%d9%81%d8%ad%d9%87-%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/10/%d8%aa%d9%85%d8%a7%d9%85-%d8%b5%d9%81%d8%ad%d9%87-%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>Sun, 25 Dec 2011 11:40:58 +0000</pubDate>
		<dc:creator>بهروز پولادرگ</dc:creator>
				<category><![CDATA[ادوبی فلش]]></category>
		<category><![CDATA[اکشن اسکریپت]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[actionscript3]]></category>
		<category><![CDATA[addEventListener]]></category>
		<category><![CDATA[allowFullScreen]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[buttonMode]]></category>
		<category><![CDATA[displayState]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[fullScreen]]></category>
		<category><![CDATA[FULL_SCREEN]]></category>
		<category><![CDATA[gotoAndStop]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[MouseEvent]]></category>
		<category><![CDATA[MouseEvent.CLICK]]></category>
		<category><![CDATA[MovieClip]]></category>
		<category><![CDATA[NORMAL]]></category>
		<category><![CDATA[stage]]></category>
		<category><![CDATA[stage.displayState]]></category>
		<category><![CDATA[stage.scaleMode]]></category>
		<category><![CDATA[StageDisplayState]]></category>
		<category><![CDATA[StageDisplayState.FULL_SCREEN]]></category>
		<category><![CDATA[StageDisplayState.NORMAL]]></category>
		<category><![CDATA[StageScaleMode]]></category>
		<category><![CDATA[StageScaleMode.NO_SCALE]]></category>
		<category><![CDATA[switchFullScreen]]></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=1780</guid>
		<description><![CDATA[در این مطلب به تمام صفحه کردن یا همان fullscreen کردن در اکشن اسکریپت ۳ می پردازیم و دکمه ای را ایجاد می کنیم که با کلیک بر روی آن فلش ما به حالت تمام صفحه رفته و با کلیک مجدد به حالت عادی باز گردد. دانلود سورس پروژه : fullscreen_as3_iflashlord.zip برای این کار می [...]]]></description>
			<content:encoded><![CDATA[<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">
	<img src="http://blog.iflashlord.com/wp-content/uploads/2011/12/fullscreen_as3_flash_iflashlord.jpg" alt="iflashlord.com" />
	</p><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در این مطلب به تمام صفحه کردن یا همان fullscreen کردن در اکشن اسکریپت ۳ می پردازیم و دکمه ای را ایجاد می کنیم که با کلیک بر روی آن فلش ما به حالت تمام صفحه رفته و با کلیک مجدد به حالت عادی باز گردد.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><span id="more-1780"></span></p>
<blockquote><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">دانلود سورس پروژه : <a href="http://blog.iflashlord.com/wp-content/uploads/2011/12/fullscreen_as3_iflashlord.zip" target="_blank">fullscreen_as3_iflashlord.zip</a></p></blockquote>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">برای این کار می بایست از متد displayState مربوط به Stage استفاده کنیم و به آن مقدار دهی نماییم ؛ در حالت عادی مقدار روی normal تنظیم شده است برای تمام صفحه شدن ما مقدار را روی fullScreen قرار می دهیم با این کار فلش به حالت تمام صفحه می رود.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">ما به جای مقدار رشته ای می توانیم از ثابت های StageDisplayState استفاده نماییم ، برای normal از StageDisplayState.NORMAL و برای fullScreen از StageDisplayState.FULL_SCREEN استفاده می کنیم. البته شما در استفاده هر دو نوع آزاد هستید.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در ابتدا کلاس های مورد نیاز را import می کنیم :</p>
<pre class="brush: as3; title: ; notranslate">
//وارد کردن کلاس های مورد نیاز
import flash.events.MouseEvent;
import flash.display.Stage;
import flash.display.StageDisplayState;
import flash.display.StageScaleMode;
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در مرحله بعد دکمه ای ایجاد می کنیم ، برای این کار در این نمونه از یک MovieClip استفاده می کنیم که ۲ فریم دارد و در فریم اول متن <strong>تمام صفحه</strong> و در فریم دوم متن <strong>حالت عادی</strong> را قرار می دهیم، این کار برای این است که در هر زمان بتوانیم عملکرد دکمه را به کاربر نشان دهیم. شما می توانید از نمادهای گرافیکی نیز برای این کار استفاده کنید.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">حال رویداد CLICK را برای زمان کلیک کردن روی کمه فعال می کنیم</p>
<pre class="brush: as3; title: ; notranslate">
//ایجاد رویداد کلیک برای دکمه
fullscreen_btn.addEventListener(MouseEvent.CLICK , switchFullScreen , false , 0 , true);
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">و توسط متد buttonMode ما به MovieClip مان حالت دکمه می دهیم</p>
<pre class="brush: as3; title: ; notranslate">
//ایجاد حالت دکمه ای برای مووی کلیپ
fullscreen_btn.buttonMode =true;
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">حال تابع switchFullScreen را تعریف می کنیم و درون آن یک if قرار می دهیم تا در زمانی که فلش ما در حالت عادی بود به با کلیک به حالت تمام صفحه برود و زمانی که در حال تمام صفحه بود با کلیک به حالت عادی برود</p>
<pre class="brush: as3; title: ; notranslate">

function switchFullScreen(e:MouseEvent)
{
	if (stage.displayState == StageDisplayState.NORMAL)
	{
		//مقدار دهی تمام صفحه
		stage.displayState = StageDisplayState.FULL_SCREEN;
		//نمایش حالت عادی برای دکمه
		fullscreen_btn.gotoAndStop(2);
	}
	else
	{
		//مقدار دهی حالت نرمال
		stage.displayState = StageDisplayState.NORMAL;
		//نمایش تمام صفحه برای دکمه
		fullscreen_btn.gotoAndStop(1);
	}
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">حال اگر دقت کرده باشید در حالت تمام صفحه پروژه شما نسبت به طول و عرض مانیتور شما کشیده می شود در صورتی که بخواهید جلوی این کشیدگی را بگیرید می بایست از متد stage.scaleMode استفاده کنید و آن را بر روی StageDisplayState.NO_SCALE قرار دهید :</p>
<pre class="brush: as3; highlight: [7,8]; title: ; notranslate">
function switchFullScreen(e:MouseEvent)
{
	if (stage.displayState == StageDisplayState.NORMAL)
	{
		//مقدار دهی تمام صفحه
		stage.displayState = StageDisplayState.FULL_SCREEN;
		//برای حفظ ساختار بعد از تمام صفحه شدن - در صورت نیاز
		stage.scaleMode = StageScaleMode.NO_SCALE;
		//نمایش حالت عادی برای دکمه
		fullscreen_btn.gotoAndStop(2);
	}
	else
	{
		//مقدار دهی حالت نرمال
		stage.displayState = StageDisplayState.NORMAL;
		//نمایش تمام صفحه برای دکمه
		fullscreen_btn.gotoAndStop(1);
	}
}
</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">اگر قصد دارید مثلا وبسایت فلش شما در مرورگر نیز امکان تمام صفحه شدن را داشته باشد می بایست یک بخش به تگ Object مربوطه به کد HTML صفحه خود اضافه کنید ، این بخش کد برای تگ Object به این صورت می باشد :</p>
<pre class="brush: xml; title: ; notranslate">
&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">و در صورتی که از تگ Embed (توصیه نمی شود) استفاده می کنید به این صورت :</p>
<pre class="brush: xml; title: ; notranslate">
&lt;embed ... allowfullscreen=&quot;true&quot; /&gt;
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><em>سه نقطه (&#8230;) مربوطه به بخش ها و پارامترهایی دیگری می باشد که در کد قرار داده نشده است.</em></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">حال می توانید پروژه خود را توسط فایل HTML آن تست نمایید ، برای ایجاد خودکار فایل HTML کلید F12 را بفشارید و <strong>البته به یاد داشته باشید فایل ایجاد شده را ویرایش کرده و خط کد مربوطه به allowfullscreen را به پارامترهای کد صفحه اضافه کنید</strong></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><strong>نمونه ای برای بهتر متوجه شدن محل اضافه کردن کد :</strong></p>
<pre class="brush: xml; highlight: [10,11]; title: ; notranslate">
...
&lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
&lt;param name=&quot;bgcolor&quot; value=&quot;#ffffff&quot; /&gt;
&lt;param name=&quot;loop&quot; value=&quot;true&quot; /&gt;
&lt;param name=&quot;wmode&quot; value=&quot;window&quot; /&gt;
&lt;param name=&quot;scale&quot; value=&quot;showall&quot; /&gt;
&lt;param name=&quot;menu&quot; value=&quot;true&quot; /&gt;
&lt;param name=&quot;devicefont&quot; value=&quot;false&quot; /&gt;
&lt;param name=&quot;allowScriptAccess&quot; value=&quot;sameDomain&quot; /&gt;
&lt;!--محل افزودن کد--&gt;
&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;
...
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><em>سه نقطه (&#8230;) مربوطه به بخش ها و پارامترهایی دیگری می باشد که در کد قرار داده نشده است.</em></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>کد نهایی پروژه :</strong></p>
<pre class="brush: as3; title: ; notranslate">
//وارد کردن کلاس های مورد نیاز
import flash.events.MouseEvent;
import flash.display.Stage;
import flash.display.StageDisplayState;
import flash.display.StageScaleMode;

//ایجاد رویداد کلیک برای دکمه
fullscreen_btn.addEventListener(MouseEvent.CLICK , switchFullScreen , false , 0 , true);
//ایجاد حالت دکمه ای برای مووی کلیپ
fullscreen_btn.buttonMode =true;

function switchFullScreen(e:MouseEvent)
{
	if (stage.displayState == StageDisplayState.NORMAL)
	{
		//مقدار دهی تمام صفحه
		stage.displayState = StageDisplayState.FULL_SCREEN;
		//برای حفظ ساختار بعد از تمام صفحه شدن - در صورت نیاز
		stage.scaleMode = StageScaleMode.NO_SCALE;
		//نمایش حالت عادی برای دکمه
		fullscreen_btn.gotoAndStop(2);
	}
	else
	{
		//مقدار دهی حالت نرمال
		stage.displayState = StageDisplayState.NORMAL;
		//نمایش تمام صفحه برای دکمه
		fullscreen_btn.gotoAndStop(1);
	}
}
</pre>
<blockquote><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">دانلود سورس پروژه : <a href="http://blog.iflashlord.com/wp-content/uploads/2011/12/fullscreen_as3_iflashlord.zip" target="_blank">fullscreen_as3_iflashlord.zip</a></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.iflashlord.com/1390/10/%d8%aa%d9%85%d8%a7%d9%85-%d8%b5%d9%81%d8%ad%d9%87-%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>5</slash:comments>
		</item>
		<item>
		<title>اعمال StyleSheet داخلی به فیلد متنی</title>
		<link>http://blog.iflashlord.com/1390/08/%d8%a7%d8%b9%d9%85%d8%a7%d9%84-stylesheet-%d8%af%d8%a7%d8%ae%d9%84%db%8c-%d8%a8%d9%87-%d9%81%db%8c%d9%84%d8%af-%d9%85%d8%aa%d9%86%db%8c/</link>
		<comments>http://blog.iflashlord.com/1390/08/%d8%a7%d8%b9%d9%85%d8%a7%d9%84-stylesheet-%d8%af%d8%a7%d8%ae%d9%84%db%8c-%d8%a8%d9%87-%d9%81%db%8c%d9%84%d8%af-%d9%85%d8%aa%d9%86%db%8c/#comments</comments>
		<pubDate>Fri, 18 Nov 2011 23:10:10 +0000</pubDate>
		<dc:creator>بهروز پولادرگ</dc:creator>
				<category><![CDATA[ادوبی فلش]]></category>
		<category><![CDATA[اکشن اسکریپت]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[سی اس اس]]></category>
		<category><![CDATA[actionscript 3]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[color]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[css.setStyle]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Import]]></category>
		<category><![CDATA[INTERNAL]]></category>
		<category><![CDATA[Object]]></category>
		<category><![CDATA[setStyle]]></category>
		<category><![CDATA[String]]></category>
		<category><![CDATA[StyleSheet]]></category>
		<category><![CDATA[text]]></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=1629</guid>
		<description><![CDATA[در این مطلب به ساخت StyleSheet داخلی (INTERNAL) در اکشن اسکریپت ۳ می پردازیم ، این موارد برای زمانی که شما نیازی به فایل CSS خارجی نداشته باشید و بخواهید از فرامین قالب بندی CSS درون اکشن اسکریپت استفاده کنید، برای این کار از کلاس StyleSheet استفاده می کنیم. در ابتدا ما کلاس مورد نیاز [...]]]></description>
			<content:encoded><![CDATA[<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">
	<img src="http://blog.iflashlord.com/wp-content/uploads/2011/10/css_external_as3_iflashlord.jpg" alt="iflashlord.com" />
	</p><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در این مطلب به ساخت <a title="اعمال یک StyleSheet خارجی به فیلد متنی" href="http://blog.iflashlord.com/1390/08/%d8%a7%d8%b9%d9%85%d8%a7%d9%84-%db%8c%da%a9-stylesheet-%d8%ae%d8%a7%d8%b1%d8%ac%db%8c-%d8%a8%d9%87-%d9%81%db%8c%d9%84%d8%af-%d9%85%d8%aa%d9%86%db%8c/">StyleSheet </a>داخلی (INTERNAL) در اکشن اسکریپت ۳ می پردازیم ، این موارد برای زمانی که شما نیازی به <a title="اعمال یک StyleSheet خارجی به فیلد متنی" href="http://blog.iflashlord.com/1390/08/%d8%a7%d8%b9%d9%85%d8%a7%d9%84-%db%8c%da%a9-stylesheet-%d8%ae%d8%a7%d8%b1%d8%ac%db%8c-%d8%a8%d9%87-%d9%81%db%8c%d9%84%d8%af-%d9%85%d8%aa%d9%86%db%8c/">فایل CSS خارجی </a>نداشته باشید و بخواهید از فرامین قالب بندی CSS درون اکشن اسکریپت استفاده کنید، برای این کار از کلاس <a title="اعمال یک StyleSheet خارجی به فیلد متنی" href="http://blog.iflashlord.com/1390/08/%d8%a7%d8%b9%d9%85%d8%a7%d9%84-%db%8c%da%a9-stylesheet-%d8%ae%d8%a7%d8%b1%d8%ac%db%8c-%d8%a8%d9%87-%d9%81%db%8c%d9%84%d8%af-%d9%85%d8%aa%d9%86%db%8c/">StyleSheet </a>استفاده می کنیم.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><span id="more-1629"></span>در ابتدا ما کلاس مورد نیاز را import می کنیم</p>
<pre class="brush: as3; title: ; notranslate">
import flash.text.StyleSheet;
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در مرحله بعد متغییر css را تعریف می کنیم و نوع آن را StyleSheet قرار می دهیم و یک نمونه از کلاس StyleSheet را به عنوان مقدار آن قرار می دهیم.</p>
<pre class="brush: as3; title: ; notranslate">
var css:StyleSheet = new StyleSheet();
css.setStyle(&quot;p&quot;, {color: &quot;#FF0000&quot;});

example_txt.styleSheet = css;
example_txt.text = &quot;&lt;p&gt;iflashlord.com&lt;/p&gt; sample text!&quot;
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">سپس با استفاده از متد <strong>setStyle</strong> فرامین مربوطه به <strong>css</strong> را مقدار دهی می کنیم ، در این مثال به تگ پاراگراف در <strong>HTML</strong> می باشد که با (<strong>p</strong>) مشخص می شود ، خصوصیت <strong>color</strong> که مربوطه به رنگ می باشد به آن نسبت داده شده است. توجه نمایید مقدارهای هر تگ یا کلاس یا شناسه در <strong>CSS</strong> به صورت یک <strong>Object</strong> به عنوان آرگمان دوم متد<strong> setStyle</strong> مقدار دهی می شود. آرگمان اول نیز به صورت رشته متنی (<strong>String</strong>) می باشد و مربوطه به نام تگ (به طور مثال <strong>p</strong>) نام کلاس (به طور مثال <strong dir="ltr">.test</strong> ) و نام شناسه (به طور مثال <strong dir="ltr">#test</strong> ) و&#8230; می باشد.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در مرحله بعد متغیر <strong>css</strong> را به عنوان متد <strong>styleSheet</strong> مربوطه به تکست فیلد مقدار دهی می کنیم.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">و در مرحله آخر محتوای متنی <strong>HTML</strong> خود را به فیلد متنی نسبت می دهیم و نتیجه را مشاهده می کنیم ، طبق کد بالا می بایست متن <strong>iflashlord.com</strong> به صورت قرمز (<strong>FF0000</strong>) چاپ شود و باقی متون با رنگ پیش فرض تکست فیلد.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">با کمک این کد می توانید قالب بندی مربوطه به بخش های مختلف را توسط کدهای اکشن اسکریپت و <strong>css</strong> با دستی بازتر انجام دهید.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iflashlord.com/1390/08/%d8%a7%d8%b9%d9%85%d8%a7%d9%84-stylesheet-%d8%af%d8%a7%d8%ae%d9%84%db%8c-%d8%a8%d9%87-%d9%81%db%8c%d9%84%d8%af-%d9%85%d8%aa%d9%86%db%8c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ساخت تابع getURL در اکشن اسکریپت ۳</title>
		<link>http://blog.iflashlord.com/1390/08/%d8%b3%d8%a7%d8%ae%d8%aa-%d8%aa%d8%a7%d8%a8%d8%b9-geturl-%d8%af%d8%b1-%d8%a7%da%a9%d8%b4%d9%86-%d8%a7%d8%b3%da%a9%d8%b1%db%8c%d9%be%d8%aa-3/</link>
		<comments>http://blog.iflashlord.com/1390/08/%d8%b3%d8%a7%d8%ae%d8%aa-%d8%aa%d8%a7%d8%a8%d8%b9-geturl-%d8%af%d8%b1-%d8%a7%da%a9%d8%b4%d9%86-%d8%a7%d8%b3%da%a9%d8%b1%db%8c%d9%be%d8%aa-3/#comments</comments>
		<pubDate>Fri, 18 Nov 2011 06:54:14 +0000</pubDate>
		<dc:creator>بهروز پولادرگ</dc:creator>
				<category><![CDATA[ادوبی فلش]]></category>
		<category><![CDATA[اکشن اسکریپت]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[actionscript 3]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[catch]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[flash.net.navigateToURL]]></category>
		<category><![CDATA[flash.net.URLRequest]]></category>
		<category><![CDATA[getURL]]></category>
		<category><![CDATA[navigateToURL]]></category>
		<category><![CDATA[target]]></category>
		<category><![CDATA[try]]></category>
		<category><![CDATA[URI]]></category>
		<category><![CDATA[URL]]></category>
		<category><![CDATA[URLRequest]]></category>
		<category><![CDATA[آرگمان]]></category>
		<category><![CDATA[اکشن اسکریپت 2]]></category>
		<category><![CDATA[اکشن اسکریپت 3]]></category>
		<category><![CDATA[فلش]]></category>

		<guid isPermaLink="false">http://blog.iflashlord.com/?p=1638</guid>
		<description><![CDATA[اگر با اکشن اسکریپت ۲ کار کرده باشید حتما می دانید ،برای درخواست های بازکردن لینک ها و آدرس های وب و درخواست های وب از فرمان getURL استفاده می شود. البته این تابع به این شکل دیگر در اکشن اسکریپت ۳ پشتیبانی نمی شود. در این مطلب می خواهیم این تابع را با همان [...]]]></description>
			<content:encoded><![CDATA[<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">
	<img src="http://blog.iflashlord.com/wp-content/uploads/2011/11/geturl_iflashlord.jpg" alt="iflashlord.com" />
	</p><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">اگر با اکشن اسکریپت ۲ کار کرده باشید حتما می دانید ،برای درخواست های بازکردن لینک ها و آدرس های وب و درخواست های وب از فرمان getURL استفاده می شود. البته این تابع به این شکل دیگر در اکشن اسکریپت ۳ پشتیبانی نمی شود. در این مطلب می خواهیم این تابع را با همان نام قدیمی و آرگمان های قدیمی برای اکشن اسکریپت ۳ آماده کنیم.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><span id="more-1638"></span></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">ابتدا کلاس های مورد نیاز را import می کنیم</p>
<pre class="brush: as3; title: ; notranslate">
import flash.net.URLRequest;
import flash.net.navigateToURL;
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در مرحله بعد ما تابعی با همان نام (getURL) تعریف می کنیم و آرگمان ها را نیز به همان صورت معرفی می کنیم ، آرگمان اول در getURL مربوطه به آدرس (URL) و آرگمان دوم target که به نوع باز شدن مربوطه می شد.</p>
<pre class="brush: as3; title: ; notranslate">
function getURL(url:String, target:String = null)
{
	try
	{
		navigateToURL(new URLRequest(url), target);
	}
	catch (error:Error)
	{
		trace(&quot;[getURL] &quot;+error);
	}
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در نهایت بخش اصلی کد ما که آن را درون try می نویسیم تا بتوانیم خطای احتمالی آن را catch کنیم. در این بخش طبق استاندارد جدید اکشن اسکرپیت ۳ برای بازکردن لینک ها از کلاس های navigateToURL و URLRequest استفاده می کنیم. که نقش URLRequest مشخص کردن محتوای متنی به عنوان درخواست URL می باشد و نقش navigateToURL باز کردن پیوند (link) طبق آرگمان های ورودی می باشد.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">حال می توانید با سرعت بیشتر و مثل تابع getURL درخواست های مربوطه به پیوند های خودتان را اجرا نمایید.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iflashlord.com/1390/08/%d8%b3%d8%a7%d8%ae%d8%aa-%d8%aa%d8%a7%d8%a8%d8%b9-geturl-%d8%af%d8%b1-%d8%a7%da%a9%d8%b4%d9%86-%d8%a7%d8%b3%da%a9%d8%b1%db%8c%d9%be%d8%aa-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>حذف 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>دریافت کردن مرورگر و سیستم عامل کاربر توسط اکشن اسکریپت ۳</title>
		<link>http://blog.iflashlord.com/1390/08/%d8%af%d8%b1%db%8c%d8%a7%d9%81%d8%aa-%da%a9%d8%b1%d8%af%d9%86-%d9%85%d8%b1%d9%88%d8%b1%da%af%d8%b1-%d9%88-%d8%b3%db%8c%d8%b3%d8%aa%d9%85-%d8%b9%d8%a7%d9%85%d9%84-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1/</link>
		<comments>http://blog.iflashlord.com/1390/08/%d8%af%d8%b1%db%8c%d8%a7%d9%81%d8%aa-%da%a9%d8%b1%d8%af%d9%86-%d9%85%d8%b1%d9%88%d8%b1%da%af%d8%b1-%d9%88-%d8%b3%db%8c%d8%b3%d8%aa%d9%85-%d8%b9%d8%a7%d9%85%d9%84-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1/#comments</comments>
		<pubDate>Sun, 06 Nov 2011 01:14:51 +0000</pubDate>
		<dc:creator>بهروز پولادرگ</dc:creator>
				<category><![CDATA[ادوبی فلش]]></category>
		<category><![CDATA[اکشن اسکریپت]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[addEventListener]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Class]]></category>
		<category><![CDATA[ExtenalInterface]]></category>
		<category><![CDATA[externalinterface.call]]></category>
		<category><![CDATA[F12]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[getUserAgent]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[indexOf]]></category>
		<category><![CDATA[MouseEvent]]></category>
		<category><![CDATA[MouseEvent.MOUSE_UP]]></category>
		<category><![CDATA[navigator]]></category>
		<category><![CDATA[Properties]]></category>
		<category><![CDATA[Publish]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[Shift+Ctlr+F12]]></category>
		<category><![CDATA[Sprite]]></category>
		<category><![CDATA[TextField]]></category>
		<category><![CDATA[transitions]]></category>
		<category><![CDATA[Tween]]></category>
		<category><![CDATA[User Agent]]></category>
		<category><![CDATA[userAgent]]></category>
		<category><![CDATA[window.navigator.userAgent.toString]]></category>
		<category><![CDATA[اسکریپت]]></category>
		<category><![CDATA[اکشن اسکریپت 3]]></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[هوشمند]]></category>
		<category><![CDATA[کاربر]]></category>

		<guid isPermaLink="false">http://blog.iflashlord.com/?p=737</guid>
		<description><![CDATA[در این مطلب به چگونگی تشخیص نوع مرورگر اینترنتی و سیستم عامل کاربر توسط اکشن اسکریپت ۳ می پردازیم. دانلود سورس : external_interface_source_iflashlord ما در این مطلب با استفاده از TextField و با کمک گرفتم از کلاس ExtenalInterface اطلاعات مربوطه به کاربر را دریافت و خروجی swf فلش نمایش می دهیم. توسط دریافت مقدار userAgent [...]]]></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/user_agent_browser_os_iflashlord.jpg" alt="iflashlord.com" />
	</p><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در این مطلب به چگونگی تشخیص نوع مرورگر اینترنتی و سیستم عامل کاربر توسط اکشن اسکریپت ۳ می پردازیم.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><span id="more-737"></span></p>
<blockquote><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">دانلود سورس : <a title="external_interface_source_iflashlord" href="http://blog.iflashlord.com/wp-content/uploads/2011/11/external_interface_source_iflashlord.zip">external_interface_source_iflashlord</a></p></blockquote>
<h2></h2>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">ما در این مطلب با استفاده از TextField و با کمک گرفتم از کلاس ExtenalInterface اطلاعات مربوطه به کاربر را دریافت و خروجی swf فلش نمایش می دهیم. توسط دریافت مقدار userAgent مربوطه به navigator و کمی جستجو در محتوای متنی خروجی آن می توانیم به نام مرورگر اینترنتی مورد استفاده پی ببریم.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">برای شروع یک سند فلش با سایز ۴۰۰ در ۲۰۰ پیکسل و فریم ریت ۲۴fps ایجاد می کنیم.</p>
<div>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><img class="alignnone size-full wp-image-1560" title="external_interface_new_iflashlord" src="http://blog.iflashlord.com/wp-content/uploads/2011/11/external_interface_new_iflashlord.jpg" alt="" width="459" height="182" /></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در مرحله بعد به طراحی رابط کاربری پروژه می پردازیم در شکل زیر می توانید نمونه را مشاهده کنید.</p>
</div>
<div>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><img class="alignnone size-full wp-image-1561" title="external_interface_gui_iflashlord" src="http://blog.iflashlord.com/wp-content/uploads/2011/11/external_interface_gui_iflashlord.jpg" alt="" width="400" height="240" /></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">این نمونه را می توانید در<a href="http://blog.iflashlord.com/wp-content/uploads/2011/11/external_interface_source_iflashlord.zip" target="_blank"> سورس پروژه </a>که در ابتدای مطلب لینک آموزش آن وجود دارد دریافت کنید.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">حال یک کلاس اکشن اسکریپت ایجاد می کنیم برای این کار می توانید از کلید های ترکیبی Ctrl+N استفاده کنید و سپس پروژه را با نام Main.as در کنار فایل سورس فلش خود ذخیره کنید. و محتوای زیر را در آن قرار دهید.</p>
</div>
<pre class="brush: as3; title: ; notranslate">

package
{
	import flash.display.Sprite;
	import flash.external.ExternalInterface;
	import flash.events.MouseEvent;
	import fl.transitions.Tween;
	public class Main extends Sprite
	{
		private var userAgent:String;
		public function Main():void
		{
			more.addEventListener(MouseEvent.MOUSE_UP, showFull);
			browserTxt.text = getUserAgent();
			letterpress.text = getUserAgent();
		}

		private function getUserAgent():String
		{
			userAgent = ExternalInterface.call(&quot;window.navigator.userAgent.toString&quot;);

			var browser:String;
			if (userAgent.indexOf(&quot;Safari&quot;) != -1)
			{
				browser = &quot;Safari&quot;;
			}
			else if (userAgent.indexOf(&quot;Firefox&quot;) != -1)
			{
				browser = &quot;Firefox&quot;;
			}
			if (userAgent.indexOf(&quot;Chrome&quot;) != -1)
			{
				browser = &quot;Chrome&quot;;
			}
			return browser;
		}
		private function showFull(e:MouseEvent):void
		{
			info.fullInfo.text = userAgent;
			var tween:Tween = new Tween(info,&quot;y&quot;,null,info.y,180,0.5,true);
		}
	}
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در کد بالا توسط ExternalInterface و متد call محتوای مربوطه به User Agent به صورت یک رشته متنی دریافت می شود و با استفاده از متد indexOf در آن جستجو می شود و در نتیجه نام مروگر دریافت می شود ؛ در این روش محتوای User Agent جستجو می شود اگر نام مرورگر هایی که در نظر گرفته ایم در محتوای بازگشتی وجود داشته باشد ،نام مرورگر در صفحه نمایش داده می شود. و توسط دکمه more که در پروژه قرار داده شده است نیز در بخش پایینی پروژه محتوای کلی مربوطه به User Agent در فیلد متنی info با انیمیتی که توسط Tween به آن اعمال می شود ،به نمایش گذاشته می شود.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">به یاد داشته باشید که نام class را در فیلد مربوطه به Class در بخش Publish مربوطه به پانل Properties وارد نمایید. در تصویر زیر بخش مربوطه نمایش داده شده است.</p>
<div>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><img class="alignnone size-full wp-image-1562" title="external_interface_main_class_iflashlord" src="http://blog.iflashlord.com/wp-content/uploads/2011/11/external_interface_main_class_iflashlord.jpg" alt="" width="282" height="132" /></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">حال برای تست به صورت فایل swf شما با خطا رو به رو می شود ، شما می بایست فایل را در مرورگر اینترنتی به نمایش بگذارید تا امکان دریافت داده های User Agent وجود داشته باشد.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">برای این کار می می توانید از کلید های میان بر  Shift+Ctlr+F12 استفاده کنید و بخش مربوطه به HTML را در صورت غیر فعال بودن تیک بزنید و توسط و توسط منوی File-&gt; Publish برای انتشار پروژه به صورت HTML اقدام نمایید در صورتی که می خواهید پروژه بعد از انتشار و تولید شدن بلافاصله در مرورگر پیش فرض نمایش داده شود از کلید F12 استفاده نمایید ،در ضمن می توانید فایل خود درگ کرده و درون مرورگر مورد نظر رها کنید تا عملکرد کد را مشاهده نمایید.</p>
</div>
<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">دانلود سورس : <a title="external_interface_source_iflashlord" href="http://blog.iflashlord.com/wp-content/uploads/2011/11/external_interface_source_iflashlord.zip">external_interface_source_iflashlord</a></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.iflashlord.com/1390/08/%d8%af%d8%b1%db%8c%d8%a7%d9%81%d8%aa-%da%a9%d8%b1%d8%af%d9%86-%d9%85%d8%b1%d9%88%d8%b1%da%af%d8%b1-%d9%88-%d8%b3%db%8c%d8%b3%d8%aa%d9%85-%d8%b9%d8%a7%d9%85%d9%84-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1/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>ایجاد چرخش افقی اشیاء با استفاده از کلاس Matrix</title>
		<link>http://blog.iflashlord.com/1390/08/%d8%a7%db%8c%d8%ac%d8%a7%d8%af-%da%86%d8%b1%d8%ae%d8%b4-%d8%a7%d9%81%d9%82%db%8c-%d8%a8%d8%a7-%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%d8%a7%d8%b2-matrix/</link>
		<comments>http://blog.iflashlord.com/1390/08/%d8%a7%db%8c%d8%ac%d8%a7%d8%af-%da%86%d8%b1%d8%ae%d8%b4-%d8%a7%d9%81%d9%82%db%8c-%d8%a8%d8%a7-%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%d8%a7%d8%b2-matrix/#comments</comments>
		<pubDate>Wed, 02 Nov 2011 01:34:43 +0000</pubDate>
		<dc:creator>بهروز پولادرگ</dc:creator>
				<category><![CDATA[ادوبی فلش]]></category>
		<category><![CDATA[اکشن اسکریپت]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[addChild]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[beginFill]]></category>
		<category><![CDATA[drawCircle]]></category>
		<category><![CDATA[endFill]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[flip]]></category>
		<category><![CDATA[flipHorizontal]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[Horizontal]]></category>
		<category><![CDATA[Matrix]]></category>
		<category><![CDATA[matrix.a]]></category>
		<category><![CDATA[matrix.tx]]></category>
		<category><![CDATA[MovieClip]]></category>
		<category><![CDATA[Point]]></category>
		<category><![CDATA[rotation]]></category>
		<category><![CDATA[transform.matrix]]></category>
		<category><![CDATA[transformPoint]]></category>
		<category><![CDATA[اکشن اسکریپت 3]]></category>
		<category><![CDATA[فلش]]></category>
		<category><![CDATA[ماتریس]]></category>

		<guid isPermaLink="false">http://blog.iflashlord.com/?p=1501</guid>
		<description><![CDATA[در این مطلب به ایجاد چرخش افقی و یا همان filp horizontal با کمک گرفتن از کلاس Matrix می پردازیم و در این میان به توضیحی بر نحوه تعیین کردن مرکز چرخش یک شی به صورت پویا توسط کد اکشن اسکریپت ۳ نیز می پردازیم. دانلود سورس : flipHorizontal_cs4.zip ابتدا کلاس های مورد نیاز را [...]]]></description>
			<content:encoded><![CDATA[<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">
	<img src="http://blog.iflashlord.com/wp-content/uploads/2011/11/matrix_flip_h_as3_iflashlord.jpg" alt="iflashlord.com" />
	</p><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در این مطلب به ایجاد چرخش افقی و یا همان filp horizontal با کمک گرفتن از کلاس Matrix می پردازیم و در این میان به توضیحی بر نحوه تعیین کردن مرکز چرخش یک شی به صورت پویا توسط کد اکشن اسکریپت ۳ نیز می پردازیم.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><span id="more-1501"></span></p>
<blockquote><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">دانلود سورس : <a href="http://blog.iflashlord.com/wp-content/uploads/2011/11/flipHorizontal_cs4.zip" target="_blank">flipHorizontal_cs4.zip</a></p></blockquote>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">ابتدا کلاس های مورد نیاز را import می کنیم ، البته توجه داشته باشید در صورتی که کدها را در محیط های برنامه فلش و یا دیگر IDE های اکشن اسکریپت می نویسید در زمان نوشتن کد و در زمانی که توسط ( : ) نوع متغییر ها را مشخص می کنید به صورت خودکار کلاسه مورد نظر شما در ابتدای پروژه Import می شود و خط کد مربوطه به صورت خودکار در ابتدای پروژه شما قرار می گیرد. (البته توجه داشته باشید این امکان در نسخه های قدیمی برنامه های فوق الذکر وجود ندارد)</p>
<pre class="brush: as3; title: ; notranslate">
import flash.geom.Matrix;
import flash.geom.Point;
import flash.display.Graphics;
import flash.display.MovieClip;
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">حال برای ایجاد چرخش و برای این که بتوانیم از آن برای اشیای متعدد استفاده کنیم ،آن را به صورت یک تابع ایجاد می کنیم و نام آن را filpHorizontal قرار می دهیم.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">آرگمان اصلی این تابع displayObject هست که شی مورد نظر شما را شامل می شود و آرگمان اختیاری بعدی که برای نمایش مرکز چرخش است که توسط کد ما به شی اعمال می شود در صورتی که این گزینه true باشد در مرکز چرخش شی ما یک دایره سیاه رنگ ایجاد می شود که نمایش دهنده مرکز چرخش کنونی است.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">همان طور که در کد مشخص است این دایره یک MovieClip هست که دایره ای با استفاده از فرامین graphics و استفاده از متد drawCircle در آن ایجاد شده است و به محل مربوطه به مرکز چرخش تغییر مختصات داده شده است و به شی اصلی ما addChild شده است.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">حال بهتر هست کمی در مورد Matrix ها توضیح داده شود تا با ذهنی باز تر به تحلیل کد بپردازیم:</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">یک ماتریس (matrix) دگرگونی شی یک ماتریس ۳ در ۳ با محتویات زیر می باشد.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><img class="alignnone size-full wp-image-1518" title="matrix_props1" src="http://blog.iflashlord.com/wp-content/uploads/2011/11/matrix_props1.jpg" alt="" width="150" height="105" /></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در ماتریس های دگرگونی u ، v و w خواص ارائه قابلیت های اضافی است. کلاس ماتریس (matrix) تنها در فضای دو بعدی عمل می کند ، بنابر این همواره فرض می شود خصوصیت u و v مقدار ۰.۰ و خصوصیت w مقدار ۱.۰ می باشد. در نتیجه ماتریس ما به صورت زیر است :</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><img class="alignnone size-full wp-image-1519" title="matrix_props2" src="http://blog.iflashlord.com/wp-content/uploads/2011/11/matrix_props2.jpg" alt="" width="150" height="105" /></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">شما می توانید ۶ خصوصیت دیگر را در ماتریس شی خود (a,b,c,d,tx,ty) را مقدار دهی کنید (set) و یا مقدار آن را دریافت کنید (get).</p>
<pre class="brush: as3; title: ; notranslate">
function flipHorizontal(displayObject:MovieClip , visiblePoint = true):void
{
	//دریافت متریکس کنونی شی و قرار دادن آن در یک متغیر
	var matrix:Matrix = displayObject.transform.matrix;

	trace(matrix.toString());//(a=1, b=0, c=0, d=1, tx=60.55, ty=207.5)
	//[ a  c  tx ]   =&gt;   [ 1  0  60.55 ]
	//| b  d  ty |   =&gt;   | 0  1  207.5 |
	//[ 0  0   1 ]   =&gt;   [ 0  0   1    ]

	//مشخص کردن محل مرکز به صورت پویا
	var pointX:Number = displayObject.width / 2;
	var pointY:Number = displayObject.height / 2;

	//شعاع دایره مشخص کننده مرکز
	var pointRadius:Number = 5;

	var dspWidthDivide:Point = new Point(pointX,pointY);
	matrix.transformPoint(dspWidthDivide);

	if (visiblePoint)
	{

		//ایجاد دایره مربوطه به نمایش مرکز
		var point:MovieClip = new MovieClip();
		point.graphics.beginFill(0x000000);
		point.graphics.drawCircle(0 , 0 , pointRadius);
		point.graphics.endFill();
		//مختصات دهی دایره با توجه به مرکز تعیین شده;
		point.x = pointX - (pointRadius / 2);
		point.y = pointY - (pointRadius / 2);
		//افزودن دایره به شی مربوطه
		displayObject.addChild(point);
	}

	if (matrix.a &gt; 0)
	{
		matrix.a = -1 * matrix.a;
		matrix.tx = displayObject.width + displayObject.x;
	}
	else
	{
		matrix.a = -1 * matrix.a;
		matrix.tx = displayObject.x - displayObject.width;
	}

	//اعمال ماتریکس جدید به شی مربوطه
	displayObject.transform.matrix = matrix;
}

//usuage
flipHorizontal(myMC1);
myMC1.rotation = 15;
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">حال ما برای چرخش افقی از ترکیب ماتریس دَوران و انعکاس استفاده می کنیم ، ابتدا مقدار مربوطه به ماتریس شی را گرفته (displayObject.<strong>transform.matrix</strong>) و در یک متغیر قرار می دهیم و حال می توانید همان طور که در بالا گفته شد به مقدارهای مربوطه به این شی دسترسی داشته باشیم و آنها را تغییر دهیم.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در مرحله بعد در کد زیر ماتریس دریافت شده را trace می کنیم تا از دریافت درست داده ها اطمینان حاصل کنیم. در کد برای درک بیشتر به صورت ماتریس هم توضیح داده شده است.</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>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">سپس متغیر dspWidthDivide را که یک point است را ایجاد می کنیم و مقدارهای دو متغییر pointX و pointY را به عنوان آرگمان های آن وارد می کنیم ، حال می توانیم توسط این متغیر و متد matrix.<strong>transforPoint</strong> مرکز چرخش را به مختصات مورد نظرمان به صورت پویا تغییر دهیم.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در بخش بعدی کد ،اقدام به ایجاد شی دایره برای مرکز و مختصات دهی آن می کنیم.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در مرحله بعدی که <strong>مرحله اصلی</strong> می باشد ابتدا مقدار <strong>a</strong> شی خود را چک می کنیم در صورتی که بزرگتر از صفر باشد <strong>tx</strong> را برابر با <strong>عرض شی به اضافه مختصات x شی می کنیم</strong> و در غیر این صورت <strong>مختصات x شی را منهای عرض شی می کنیم</strong> و در هر دو حالت a<strong> را برابر با a*-1</strong> مقدار دهی می کنیم.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در آخر نیز به خصوصیت <strong>transform.matrix</strong> شی <strong>displayObject</strong> مان مقدار جدید متغیر matrix را اعمال می کنیم.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در پایان نیز برنامه را تست می کنیم ، myMC1 یک MovieClip هست که توسط تابع برای ایجاد چرخش افقی در آن انتخاب شده است و در آخر نیز برای متوجه شدن چرخش و مبنای چرخش توسط متد rotation چرخشی در شی ایجاد شده است تا با توجه به دایره مشکی متوجه چرخش بر مبنای مرکز چرخش شوید.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iflashlord.com/1390/08/%d8%a7%db%8c%d8%ac%d8%a7%d8%af-%da%86%d8%b1%d8%ae%d8%b4-%d8%a7%d9%81%d9%82%db%8c-%d8%a8%d8%a7-%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%d8%a7%d8%b2-matrix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>فشرده سازی فایل‌ها و استخراج فایل Zip در پروژه Air</title>
		<link>http://blog.iflashlord.com/1390/08/%d9%81%d8%b4%d8%b1%d8%af%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-%d9%81%d8%a7%db%8c%d9%84%e2%80%8c%d9%87%d8%a7-%d9%88-%d8%a7%d8%b3%d8%aa%d8%ae%d8%b1%d8%a7%d8%ac-%d9%81%d8%a7%db%8c%d9%84-zip/</link>
		<comments>http://blog.iflashlord.com/1390/08/%d9%81%d8%b4%d8%b1%d8%af%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-%d9%81%d8%a7%db%8c%d9%84%e2%80%8c%d9%87%d8%a7-%d9%88-%d8%a7%d8%b3%d8%aa%d8%ae%d8%b1%d8%a7%d8%ac-%d9%81%d8%a7%db%8c%d9%84-zip/#comments</comments>
		<pubDate>Mon, 31 Oct 2011 01:08:15 +0000</pubDate>
		<dc:creator>بهروز پولادرگ</dc:creator>
				<category><![CDATA[ادوبی ایر]]></category>
		<category><![CDATA[ادوبی فلش]]></category>
		<category><![CDATA[اکشن اسکریپت]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[addEventListener]]></category>
		<category><![CDATA[addFile]]></category>
		<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[browseForDirectory]]></category>
		<category><![CDATA[browseForOpen]]></category>
		<category><![CDATA[ByteArray]]></category>
		<category><![CDATA[ChecksumUtil]]></category>
		<category><![CDATA[close]]></category>
		<category><![CDATA[Components]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Create Zip file]]></category>
		<category><![CDATA[deng.fzip]]></category>
		<category><![CDATA[desktopDirectory]]></category>
		<category><![CDATA[enabled]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Event.SELECT]]></category>
		<category><![CDATA[Extract zip file]]></category>
		<category><![CDATA[FileFilter]]></category>
		<category><![CDATA[FileMode.WRITE]]></category>
		<category><![CDATA[FileStream]]></category>
		<category><![CDATA[filesystem]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[for]]></category>
		<category><![CDATA[FZip]]></category>
		<category><![CDATA[FZipEvent.FILE_LOADED]]></category>
		<category><![CDATA[libs]]></category>
		<category><![CDATA[List data Zip File]]></category>
		<category><![CDATA[make zip file with adobe air]]></category>
		<category><![CDATA[open]]></category>
		<category><![CDATA[position]]></category>
		<category><![CDATA[resolvePath]]></category>
		<category><![CDATA[serialize]]></category>
		<category><![CDATA[source_extract_zip_list]]></category>
		<category><![CDATA[URLRequest]]></category>
		<category><![CDATA[writeBytes]]></category>
		<category><![CDATA[Zip]]></category>
		<category><![CDATA[zipEntry]]></category>
		<category><![CDATA[استخراج]]></category>
		<category><![CDATA[استخراج فایل Zip]]></category>
		<category><![CDATA[اکشن اسکریپت 3]]></category>
		<category><![CDATA[ایر]]></category>
		<category><![CDATA[زیپ]]></category>
		<category><![CDATA[ساخت فایل Zip]]></category>
		<category><![CDATA[ساخت فایل زیپ]]></category>
		<category><![CDATA[فایل زیپ]]></category>
		<category><![CDATA[فشرده سازی]]></category>
		<category><![CDATA[فلش]]></category>
		<category><![CDATA[نمایش فهرست]]></category>

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

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

function fileLoaded(e:FZipEvent):void
{
	var file:FZipFile = e.file;
	trace(&quot;File Loaded: &quot; + file.filename);
	trace(&quot; &quot; + file.sizeCompressed);
	trace(&quot; &quot; + file.sizeUncompressed);
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.iflashlord.com/1390/08/%d9%81%d8%b4%d8%b1%d8%af%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-%d9%81%d8%a7%db%8c%d9%84%e2%80%8c%d9%87%d8%a7-%d9%88-%d8%a7%d8%b3%d8%aa%d8%ae%d8%b1%d8%a7%d8%ac-%d9%81%d8%a7%db%8c%d9%84-zip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>روشی ساده برای کدگذاری روی String</title>
		<link>http://blog.iflashlord.com/1390/08/%d8%b1%d9%88%d8%b4%db%8c-%d8%b3%d8%a7%d8%af%d9%87-%d8%a8%d8%b1%d8%a7%db%8c-%da%a9%d8%af%da%af%d8%b0%d8%a7%d8%b1%db%8c-%d8%b1%d9%88%db%8c-string/</link>
		<comments>http://blog.iflashlord.com/1390/08/%d8%b1%d9%88%d8%b4%db%8c-%d8%b3%d8%a7%d8%af%d9%87-%d8%a8%d8%b1%d8%a7%db%8c-%da%a9%d8%af%da%af%d8%b0%d8%a7%d8%b1%db%8c-%d8%b1%d9%88%db%8c-string/#comments</comments>
		<pubDate>Fri, 28 Oct 2011 00:40:20 +0000</pubDate>
		<dc:creator>بهروز پولادرگ</dc:creator>
				<category><![CDATA[ادوبی فلش]]></category>
		<category><![CDATA[اکشن اسکریپت]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[actionscript 3]]></category>
		<category><![CDATA[Array]]></category>
		<category><![CDATA[Decode]]></category>
		<category><![CDATA[Encode]]></category>
		<category><![CDATA[encrypt]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[for]]></category>
		<category><![CDATA[indexOf]]></category>
		<category><![CDATA[length]]></category>
		<category><![CDATA[slice]]></category>
		<category><![CDATA[String]]></category>
		<category><![CDATA[اکشن اسکریپت 3]]></category>
		<category><![CDATA[دیکد]]></category>
		<category><![CDATA[فلش]]></category>
		<category><![CDATA[کدگذاری]]></category>

		<guid isPermaLink="false">http://blog.iflashlord.com/?p=1441</guid>
		<description><![CDATA[در این مطلب نحوه encrypt کردن مقادیر String آموزش داده می‌شود. در این روش دو آرایه از حروف و مقادیر معادل حروف تعریف می‌شود. به این صورت که یک مقدار String گرفته می‌شود و سپس حروف آن جدا می‌شوند و به ازای هر حرف مقدار معادل آن قرار داده می‌شود. ۱- برای شروع یک پروژه [...]]]></description>
			<content:encoded><![CDATA[<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">
	<img src="http://blog.iflashlord.com/wp-content/uploads/2011/10/encription_string_iflashlord.jpg" alt="iflashlord.com" />
	</p><p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">در این مطلب نحوه encrypt کردن مقادیر String آموزش داده می‌شود. در این روش دو آرایه از حروف و مقادیر معادل حروف تعریف می‌شود. به این صورت که یک مقدار String گرفته می‌شود و سپس حروف آن جدا می‌شوند و به ازای هر حرف مقدار معادل آن قرار داده می‌شود.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right"><span id="more-1441"></span></p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">۱- برای شروع یک پروژه Action Script 3 بسازید.</p>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">۲- ابتدا آرایه حروف را تعریف می‌کنیم، برای مثال در این جا فقط ۱۰ کاراکتر در این آرایه قرار گرفته است. برای کامل شدن کاراکترها باید همه حروف کوچک و بزرگ انگلیسی، اعداد، حروف فارسی و نمادها نیز اضافه شوند.</p>
<pre class="brush: as3; title: ; notranslate">
var letters:Array = [&quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot;, &quot;e&quot;, &quot;f&quot;, &quot;g&quot;, &quot;A&quot;, &quot;B&quot;, &quot;C&quot;];
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">۳- حالا آرایه معادل حروف تعریف می‌شود. در این جا برای مثال به ازای هر حرف، از سه کاراکتر استفاده شده است. دقت کنید که برای همه کاراکترهایی که در آرایه حروف قرار گرفته اند باید یک معادل با ۳ کاراکتر (البته بستگی به انتخاب شما دارد) تعریف شود.</p>
<pre class="brush: as3; title: ; notranslate">
var codes:Array = [&quot;lI$&quot;, &quot;#@d&quot;, &quot;!dR&quot;, &quot;a~1&quot;, &quot;^Lg&quot;, &quot;lkd&quot;, &quot;^%(&quot;, &quot;()9&quot;, &quot;LB%&quot;, &quot;#!D&quot;];
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">4- حالا تابعی که برای کدگذاری استفاده می‌شود را تعریف می‌کنیم. در این تابع ابتدا حروف یک کلمه ورودی از هم جدا می‌شوند، سپس اندیس این کاراکتر در آرایه حروف با کد indexOf پیدا می‌شود و در ادامه معادل این اندیس در آرایه معادل یافت می‌شود.</p>
<pre class="brush: as3; title: ; notranslate">
function Encode(Word:String):String
{
	var temp:String = &quot;&quot;;
	for (var i:Number = 0; i &lt; Word.length; i++)
	{
		temp +=  codes[letters.indexOf(Word.slice(i,i + 1))];
	}
	return temp;
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">5- حالا نیاز به تابعی داریم که بتواند مقادیر کد شده را به حالت اول برگرداند، بنابراین در این تابع باید حروف کلمه ورودی را سه تا سه تا (یا هر تعدادی که در نظر گرفتید) جدا کرد، سپس اندیس این ۳ کاراکتر باید در آرایه معادل پیدا شود و در نهایت مقدار معادل اندیس در آرایه حروف یافت شود.</p>
<pre class="brush: as3; title: ; notranslate">
function Decode(Word:String):String
{
	var temp:String = &quot;&quot;;
	for (var i:Number=0; i &lt; Word.length-2; i +=3)
	{
		temp +=  letters[codes.indexOf(Word.slice(i,i + 3))];
	}
	return temp;
}
</pre>
<p style="font-family: Tahoma,Verdana,sans-serif; direction: rtl;" align="right">6- با توجه به این که هر دو تابع یک خروجی String دارند، بنابراین می‌توان از آنها به راحتی استفاده کرد. برای مثال:</p>
<pre class="brush: as3; title: ; notranslate">
trace(Encode(&quot;adA&quot;)); // Output: lI$a~1()9
trace(Decode(&quot;lI$a~1()9&quot;)); // Output: adA
trace(Decode(Encode(&quot;adA&quot;))); // Output: adA
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.iflashlord.com/1390/08/%d8%b1%d9%88%d8%b4%db%8c-%d8%b3%d8%a7%d8%af%d9%87-%d8%a8%d8%b1%d8%a7%db%8c-%da%a9%d8%af%da%af%d8%b0%d8%a7%d8%b1%db%8c-%d8%b1%d9%88%db%8c-string/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</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/22 queries in 0.130 seconds using disk: basic
Object Caching 5021/5128 objects using disk: basic

Served from: blog.iflashlord.com @ 2012-02-05 18:14:48 -->
