آموزش actionscript.3 از صفر -0-

وضعیت
موضوع بسته شده است.

BehrouzPc

پــــادشــاه فــلــــش
من نمی تونم از پرشین گیگ فایل رو دانلود کنم
لطفا روی سرور های دیگر هم قرار دهید
موفق و پیروز باشید
 
سلام
خسته نباشید جناب HadiMetal
بسیار زحمت کشیدید ...
واقعاً چطور میشه از زحمات شما و دیگر دوستان که پیشتر آموزشاتی داشتند تشکر کرد؟
ما نتونستیم آموزش ها رو دنبال کنیم، ولی حتماً pdf رو خواهیم خوند و دعاتون میکنیم.
علی یارتون ...
راستی فصل بعدی هم با خودتونه؟
 

arman_p

Member
:oops::oops::oops:
اون فایل های مثال ها رو اگر امکان داره تو persiangig هم بگذارید.
تشکر
تشکر
تشکر
 

sizanjavad

کاربر فعال
ادامه درسهای as3

بسم الله الرحمن الرحیم

:green::green::green::oops::oops:

خوب چیه مگه؟ عیب داره آدم خوشحالی کنه؟ خوب خوشحالم که دوباره بعد از 2-3 ماه برگشتم به تاپیکم و قراره درسهای as3 رو ادامه بدم.

تو این مدت واقعا داش هادی سنگ تموم گذاشت. یه تشکر خیلی خیلی خیلی ویژه همین جا لازمه که ازش بکنم:rose:

قرار بود قبل از فصل شی گرایی کار با تایم لاین رو داشته باشیم که به دلیل پاره ای از مسائل و اعلام آمادگی حمید افتاد برا بعد از شی گرایی.

تو این فصل تقریبا کوچیک مباحث زیر رو خواهیم داشت:

-> Playhead Movement - حرکت های Playhead یعنی جابجایی روی فریم ها با کد نویسی

-> Frame Labels - کار با لیبل فریم ها - لیبل ها همون اسمیه که برای فریم های خاص می ذاریم( حالا ایشالله مفصل روشون بحث می کنیم)

-> Frame Rates - سرعت رد شدن فریم ها - این ویژگی تو As2 نبود. من سر یه پروژه مجبور بودم که اجرای موویم سرعت فریم رو تغییر بدم. یادش به خیر. بیچاره شدم. ولی متاسفانه As2 این امکان رو نداشت:sad:

تصمیم براینه که این فصل رو در دو جلسه یا حداکثر سه جلسه تمومش کنم. تا خدا چی بخواد.

ایشالله درسها به صورت رسمی طی چند روز آینده پیگیری خواهند شد.
 
آخرین ویرایش:

Avang2005

مدیر انجمن
سلام دوست من

با تشكر از جواد عزيز . فقط جواد جان يه لطفي كن در كنار هر آموزشي كه ميزاري pdf رو هم بزار .

اينجوري بهتره .

موفق باشيد
 

jefri600

New Member
آقا محمد جواد خسته نباشي خيلي يكي (گلي ولي عمرت مثل گل نباشه):rose:
 

mohsen_joker

New Member
سلام آقا جواد!
قربونت برم داداش چرا ادامه ی آموزش ها رو نمیذاری! ممنون میشم اگه ادامه بدید! :cry:
 

jefri600

New Member
كمك

سلام آقا هادي
اميد به خوشحالي شما!
من يه مشكل در فايلي كه براتون پيوست كردم دارم و نميدونم چرا اررور ميده
ميشه لطف كني و يه نگاه به اون بندازي
ممنون:rose::shock::sad:
[email protected]




[FONT=&quot]بسم الله الرحمن الرحیم[/FONT]



[FONT=&quot]ساختار کلاس در اکشن اسکریپت 3[/FONT]


[FONT=&quot]سلام بر شما دوستان گرامی[/FONT]


[FONT=&quot]شروع بحث[/FONT][FONT=&quot]: [/FONT]
[FONT=&quot]اکشن اسکریپت 3 یکی از زبونهای شی گرا هست که در تعاملش با فایل های کلاسی ، کارهای خارق العاده ای رو انجام داده[/FONT][FONT=&quot] . [/FONT][FONT=&quot]ما در این مبحث ساختار داخلی یک کلاس رو ترسیم می کنیم . در کارهای حرفه ای تر ، سیستم ها و حالت ها و دستورات دیگه ای هم هستن ولی ما سعی می کنیم ساختار مقدماتی و اولیه ی کلاس رو بهتون بگیم.اگر درآینده توفیق باشه تا دستورات و ساختار کاملتر کلاس رو بنویسیم ، این کار رو حتما انجام می دیم[/FONT][FONT=&quot].[/FONT]
[FONT=&quot]به شکل زیر توجه کنین ، نواحی شماره گذاری شده در زیر شکل و در ادامه بحث ، شماره به شماره توضیح داده شدند. [/FONT]


1.JPG





[FONT=&quot]ناحیه شماره 1 : [/FONT][FONT=&quot]هر کلاس باید در یک بسته یا [/FONT][FONT=&quot]package [/FONT][FONT=&quot]قرار بگیره و بدون نوشتن بسته ، نمی تونیم کلاس رو تعریف کنیم. در مباحث بعدی فرم اصلی بسته بندی در فولدرهای تو در تو (کتابخانه ای) رو توضیح می دیم ولی تا این حد بدونین که کلاس اصلی رو در یک بسته تعریف می کنیم[/FONT][FONT=&quot].[/FONT]
[FONT=&quot]ناحیه شماره 2: [/FONT][FONT=&quot]در این قسمت ما تمام کلاسهایی رو که اونا رو برای تعریف و کار با کلاس خودمون نیاز داریم ، به بسته خودمون وارد می کنیم . ما گاهی نیاز داریم که نمونه ای از اون کلاسها رو در کلاس خودمون بسازیم و یا از متد های اونا در کلاس خودمون استفاده کنیم و یا کلاس اصلی خودمونو زیر کلاس اونها قرار بدیم . دقت داشته باشین که وقتی مثلا می خواهیم با صحنه یا مووی کلیپ ها تعامل داشته باشیم و یا برای مثال با رویدادهایی مثل رویدادهای موس (کلیک – لمس موس و غیره[/FONT][FONT=&quot] ...( [/FONT][FONT=&quot]در کلاسمون کار داریم ، حتما باید اونا رو از این طریق وارد بسته کلاسمون کنیم وگرنه به [/FONT][FONT=&quot]error [/FONT][FONT=&quot]می خوریم. طریقشم اینه که اول [/FONT][FONT=&quot]import [/FONT][FONT=&quot]رو می نویسیم و بعد کلاسها رو بسته به بسته (فولدر به فولدر[/FONT][FONT=&quot] ) [/FONT][FONT=&quot]از [/FONT][FONT=&quot]root [/FONT][FONT=&quot]کلاس خودمون تا رسیدن به کلاس مورد نظر می نویسیم[/FONT][FONT=&quot].[/FONT]



PHP:
import folderInside1.insidedFolder.NeededClass;


[FONT=&quot]و فرضمون هم اینه که کنار سورس یا کلاس اصلیمون ، فولدری به اسم [/FONT][FONT=&quot]folderInside1[/FONT][FONT=&quot] و داخل اون ، فولدر دیگه ای به اسم [/FONT][FONT=&quot]insidedFolder[/FONT][FONT=&quot]و داخل اون ، فایل کلاسی به اسم [/FONT][FONT=&quot]NeededClass.as[/FONT][FONT=&quot]هست.در آینده به طور مفصل به این بحث (بسته بندی) می پردازیم[/FONT][FONT=&quot].[/FONT]
[FONT=&quot]در وارد کردن کلاسهای پیش فرض فلش هم کافیه بعد از نوشتن [/FONT][FONT=&quot]import[/FONT][FONT=&quot] کلمه [/FONT][FONT=&quot]flash[/FONT][FONT=&quot] رو نوشته و الباقی بسته ها رو با دات[/FONT][FONT=&quot] (.)[/FONT][FONT=&quot]دنبال کنیم تا به کلاس مورد نظر برسیم. مثل[/FONT][FONT=&quot] :[/FONT]

PHP:
[RIGHT][CENTER][SIZE=2]  import flash .display.MovieClip;[/SIZE][/CENTER]
[CENTER][SIZE=2]import flash.events.MouseEvent;[/SIZE][/CENTER]
[CENTER][SIZE=2] [/SIZE][/CENTER]
[CENTER][SIZE=2] [/SIZE][/CENTER][/RIGHT]

[FONT=&quot]ناحیه شماره 3:[/FONT][FONT=&quot]در این قسمت ما کلاس خودمون رو تعریف می کنیم . در بحث کلاسهای اکشن اسکریپت 3 ، ما با 4[/FONT][FONT=&quot]سطح دسترسی به کلاسها ، خصوصیات و متد ها روبرو هستیم که عبارتند از: [/FONT][FONT=&quot]public , private , internal , protected[/FONT][FONT=&quot]، در ادامه این بحث در مورد اینها توضیح می دیم[/FONT][FONT=&quot].[/FONT]
[FONT=&quot]ما با نوشتن عبارت [/FONT][FONT=&quot]public[/FONT][FONT=&quot] ، این کلاس رو از نوع دسترسی عمومی قرار دادیم تا هر جایی از برنامه ها یا کلاسها که نیاز شد ، بتونیم از این کلاس استفاده کنیم[/FONT][FONT=&quot].[/FONT]
[FONT=&quot]نوشتن کلمه کلیدی [/FONT][FONT=&quot]class[/FONT][FONT=&quot] برای تعریف کلاس حتما لازم هست . در انتخاب نام کلاس باید دقت داشت که اسم کلاس، اسم تابع سازنده یا [/FONT][FONT=&quot]constructor[/FONT][FONT=&quot] و اسم فایل کلاسیمون[/FONT][FONT=&quot] ([/FONT][FONT=&quot]as.[/FONT][FONT=&quot]) [/FONT][FONT=&quot]باید حتا از نظر حروف بزرگ و کوچیک یکی باشن.در تعریف کلاس ، بعد از نام کلاس با نوشتن کلمه [/FONT][FONT=&quot]extends[/FONT][FONT=&quot] ، می تونیم اونو زیر کلاس یک کلاس دیگه قرار بدیم و و این واسه اونه که کلاس خودمون رو زیر کلاسی (کلاس فرزندی) از کلاس های اصلی قرار بدیم[/FONT][FONT=&quot] .[/FONT][FONT=&quot]با این کار ، گروه زیادی از مشخصات و متد های کلاس اصلی در این کلاس قرار می گیره و به عبارت بهتر ، کلاس تعریف شده ما گروه بسیاری از مشخصات و صفات کلاس اصلی (پایه ) رو به ارث می بره تا در اون محدوده کار کنه . در قسمت سطح دسترسی ها به طور کامل به این موضوع می پردازیم. در آخر هم اسم کلاس اصلی که قرار هست کلاس پدر باشه ، نوشته می شه مثل : [/FONT]


[FONT=&quot]MovieClip ,Sprite,events,…[/FONT]




[FONT=&quot]نکته مهم: فایل کلاسی که کلاس اصلی راه انداز یه سورس هست ، باید از کلاس اصلی مووی کلیپ ها[/FONT][FONT=&quot] ([/FONT][FONT=&quot]MovieClip[/FONT][FONT=&quot]) [/FONT][FONT=&quot]به ارث بره. یعنی به طور مثال در تعریف اون باید نوشته بشه[/FONT][FONT=&quot] :[/FONT]


[FONT=&quot]Public class myMainClass [/FONT][FONT=&quot]extends MovieClip[/FONT]




[FONT=&quot]البته در برخی سورسها هم دیدم که کلاس اصلی راه انداز فلش رو که به سورس متصل می کنن از کلاس [/FONT][FONT=&quot]Sprite[/FONT][FONT=&quot]ها به ارث بردن .کلاس [/FONT][FONT=&quot]Sprite[/FONT][FONT=&quot]کلاسی اصلی تری هست که کلاس مووی کلیپ ها از اون به ارث می ره[/FONT][FONT=&quot].[/FONT][FONT=&quot]در این مورد هم باید بگم که می شه کلاس اصلی رو زیر کلاس سورس قرار داد .[/FONT]
[FONT=&quot]ناحیه شماره 4: [/FONT][FONT=&quot]در این قسمت که داخل تگ کلاس هست ، ما مشخصه ها رو تعریف می کنیم. همونطوری که گفته بودم اینا متغیرهایی از جنس های خاص هستند که کلاسمون به اونها نیاز داره و هر نمونه ای که ساخته می شه ، از نعمت داشتن اونا برخوردار می شه. نوشتن عبارت [/FONT][FONT=&quot]private[/FONT][FONT=&quot] هم به این منظوره که دست سورسها و کلاسهای دیگه رو برای خوندن یا دستکاری این مشخصه ها کوتاه کنه[/FONT][FONT=&quot])[/FONT][FONT=&quot]توضیح مفصل در ادامه...)[/FONT]
[FONT=&quot]ناحیه شماره 5: [/FONT][FONT=&quot]در تعریف کلاسها ، همیشه یک تابع (متد) رو همنام با کلاس (با رعایت حروف بزرگ و کوچک ) تعریف می کنیم و به اون می گن تابع سازنده یا [/FONT][FONT=&quot]constructor[/FONT][FONT=&quot]. [/FONT][FONT=&quot]این تابع دو وظیفه خیلی مهم رو ایفا می کنه[/FONT][FONT=&quot] :[/FONT]
[FONT=&quot]1-[/FONT][FONT=&quot]مقدار دهی اولیه و پیش فرض به مشخصه ها[/FONT][FONT=&quot] .[/FONT]
[FONT=&quot]2-[/FONT][FONT=&quot]استارت و شروع خط اجرای کلاس[/FONT][FONT=&quot].[/FONT]
[FONT=&quot]بعد از نگارش کلاس ، هر وقت نمونه ای از این کلاس در جایی متولد شد ، می تونه مشخصه های پیش فرض خودشو داشته باشه. مثلا فرض کنین که هر نمونه ، مشخصه ای برای اسم از نوع [/FONT][FONT=&quot]String[/FONT][FONT=&quot] داره. ما می تونیم در تابع سازنده ، مقدار پیش فرضی مثل [/FONT][FONT=&quot]“Unknown”[/FONT][FONT=&quot]رو به اون اختصاص بدیم[/FONT][FONT=&quot].[/FONT]
[FONT=&quot]در استفاده از کلاس های اصلی راه انداز یک سورس هم (که از پنل [/FONT][FONT=&quot]properties[/FONT][FONT=&quot] کادر [/FONT][FONT=&quot]class[/FONT][FONT=&quot]آدرس دهی شدن) این تابع نقش استارت اجرای برنامه رو می زنه و می تونه توابع (متد) دیگه رو برای کارهای بعد از شروع ، فراخوانی کنه[/FONT][FONT=&quot].[/FONT]
[FONT=&quot]نکته مهم[/FONT][FONT=&quot] :[/FONT][FONT=&quot]در زبانهای برنامه نویسی مثل [/FONT][FONT=&quot]C#[/FONT][FONT=&quot]و [/FONT][FONT=&quot]C++[/FONT][FONT=&quot]ما می تونستیم دو یا چند تابع سازنده رو در یک کلاس تعریف کنیم.همگی همنام کلاس بودند و تنها وجه اختلاف اونها در ساختار داخلی و تعداد و نوع آرگومانهای ورودیشون بود . با تحقیقاتی که کردم به اینجا رسیدم که در اکشن 3 نمی تونیم این کارو انجام بدیم و خطا می ده.پس در اکشن اسکریپت 3 ما می تونیم فقط یک تابع سازنده واسه کلاسمون تعریف می کنیم[/FONT][FONT=&quot].[/FONT][FONT=&quot]شاید راههایی در کامپایلر های مختلف باشه یا مثلا در برخی کامپایلر های [/FONT][FONT=&quot]Air[/FONT][FONT=&quot] یا [/FONT][FONT=&quot]Flex[/FONT][FONT=&quot] بشه کاری رو کرد ولی عملا در شرایط معمول شدنی نیست .[/FONT]
[FONT=&quot]ناحیه شماره 6: [/FONT][FONT=&quot]مقدار دهی پیش فرض و اولیه به مشخصه ها . دیگه هر جایی که نمونه ای از کلاس بوجود بیاد ، مشخصه هاش به صورت پیش فرض مقدار دهی می شند[/FONT][FONT=&quot].[/FONT]
[FONT=&quot]ناحیه شماره 7: [/FONT][FONT=&quot]فراخوانی متدی از دیگر متد های کلاس ما . در کلاسهایی که تابع سازنده[/FONT][FONT=&quot]([/FONT][FONT=&quot]constructor[/FONT][FONT=&quot]) [/FONT][FONT=&quot]نقش ابتدای خط اجرای برنامه رو بازی می کنه ، با فراخوانی متد های دیگر اون کلاس ، می تونیم از اونا استفاده کنیم. دیگه هر جایی که نمونه ای از نمونه های کلاس متولد شه ، بعد از مقدار دهی اولیه ، بصورت اتوماتیک تابعی مثل [/FONT][FONT=&quot]revealMyProperties[/FONT][FONT=&quot] در موردشون اجرا می شه.در این ناحیه ، مشخصه های نام و نام خانوادگی و سن رو به این تابع پاس می دیم[/FONT][FONT=&quot].[/FONT]
[FONT=&quot]ناحیه شماره8: [/FONT][FONT=&quot]تعریف متد[/FONT][FONT=&quot]revealMyProperties[/FONT][FONT=&quot] .[/FONT][FONT=&quot]، ما یک متد خصوصی در کلاس تعریف کردیم که دو مشخصه از نوع رشته ای و یک مشخصه از نوع عددی دریافت می کنه و با دستور [/FONT][FONT=&quot]trace[/FONT][FONT=&quot]، اونا رو نشون می ده .خروجی نمایشی این تابع با مشخصه های پیش فرض هست[/FONT][FONT=&quot] :[/FONT]


[FONT=&quot]UNKNOWN UNKNOWN 0[/FONT]




[FONT=&quot]دقت کنید که اسم این متد رو دل به خواهی تعیین کردم ،شما می تونین بیستا متد مختلف تعریف کنین و اونا رو فراخونی کنین[/FONT][FONT=&quot].[/FONT]
[FONT=&quot]ناحیه شماره 9 :[/FONT][FONT=&quot]با این دستور مشخصه های پاس داده شده به تابع در خروجی مقادیر فلش به نمایش در می یان[/FONT][FONT=&quot].[/FONT][FONT=&quot]دقت کنید که متد [/FONT][FONT=&quot]trace[/FONT][FONT=&quot] فقط در خود برنامه فلش فعالیت می کنه و بعد از گرفتن خروجی [/FONT][FONT=&quot]swf [/FONT][FONT=&quot]و بستن برنامه فلش و اجرای فایل خروجی [/FONT][FONT=&quot]swf[/FONT][FONT=&quot] با فلش پلیر یا مرورگر ، دیگه فعال نمیشه و پنجره ای برای نمایش مقادیر خروجی با[/FONT][FONT=&quot]trace[/FONT][FONT=&quot] در پنجره [/FONT][FONT=&quot]OutPut[/FONT][FONT=&quot]باز نمی شه[/FONT][FONT=&quot].[/FONT]
[FONT=&quot]بعد از نوشتن کلاس باید آکولادهای کلاس و بسته[/FONT][FONT=&quot]([/FONT][FONT=&quot]package[/FONT][FONT=&quot]) [/FONT][FONT=&quot]رو ببندیم[/FONT][FONT=&quot].[/FONT]
[FONT=&quot]در هنگامی که می خواهیم از کلاسمون در جایی مثل یه سورس [/FONT][FONT=&quot]fla[/FONT][FONT=&quot]یا در یه کلاس دیگه ، نمونه ای رو متولد کنیم باید با دستور [/FONT][FONT=&quot]import[/FONT][FONT=&quot]اون کلاس رو به فضای برنامه وارد کنیم و بعد دستور زیر رو می نویسیم[/FONT][FONT=&quot] :[/FONT]







2.jpg






[FONT=&quot]با دستور[/FONT][FONT=&quot]new[/FONT][FONT=&quot]نمونه جدیدی از کلاس متولد می شه و در متغیری از جنس خودش قرار می گیره[/FONT][FONT=&quot] .[/FONT][FONT=&quot]اگر تابع سازنده یا کانسترکتور رو به گونه ای طراحی کنیم که آرگومان ورودی دریافت کنه ، باید بعد از متولد کردن هر نمونه به روش بالا ، درون پرانتز، آرگمانهایی رو هم بنویسیم[/FONT][FONT=&quot].[/FONT][FONT=&quot]فرض کنین کلاسی رو مثل این بنویسیم :[/FONT]




3.jpg



[FONT=&quot]حالا اگه در یک فایل سورس دستورات زیر رو بنویسیم ، می بینیم که تابع سازنده به خودی خود ، خروجی ها رو نمایش می ده.[/FONT]



[FONT=&quot]
4.jpg
[/FONT]








[FONT=&quot]و خروجیمون هست[/FONT][FONT=&quot] :[/FONT]


[FONT=&quot]HADI METAL 17[/FONT]






[FONT=&quot]Mehdi Sadegi 25[/FONT]






[FONT=&quot]سطوح دسترسی به مشخصه ها و متد های یک کلاس[/FONT][FONT=&quot] :[/FONT]

[FONT=&quot]سطح دسترسی عمومی یا [/FONT][FONT=&quot]public [/FONT][FONT=&quot]:[/FONT][FONT=&quot]این دستور برای تعیین سطح دسترسی عمومی به یک مشخصه یا یک متد به کار می ره و مشخصه ها و متد هایی که با این عبارت تعریف می شن ، در دسترس هر کلاس و هر سورسی قرار می گیره ، البته به شرط اینکه 1- کلاس تعریف شده رو در اونها وارد کنیم و 2 – از اون کلاس نمونه سازی کنیم و کلاس دوم رو زیر کلاس اون قرار بدیم و ...[/FONT][FONT=&quot] .[/FONT]
[FONT=&quot]سطح دسترسی[/FONT][FONT=&quot] خصوصی یا [/FONT][FONT=&quot]private [/FONT][FONT=&quot]: [/FONT][FONT=&quot]ا[/FONT][FONT=&quot]ین سطح دسترسی ، خصوصی ترین و محافظت شده ترین سطح دسترسی کلاسی در اکشن اسکریپت 3 و بیشتر زبونهای برنامه نویسی دیگه هست . در اکشن اسکریپت 3 ، تمامی خصوصیات و متد هایی که با این سطح ، انتصاب می شن فقط در خود کلاس قابل دسترسی و تغییرند . به عبارت دیگه هیچ کلاس و هیچ فضای برنامه نویسی که کلاس ما رو در خودش وارد می کنه و نمونه سازی می کنه ، نمی تونه به این اشیا دسترسی خواندنی / نوشتنی داشته باشه . فقط تابع سازنده یا [/FONT][FONT=&quot]constructor[/FONT][FONT=&quot]و متد های دیگر داخل کلاس ما می تونن دسترسی خواندنی / نوشتنی به این اشیای خصوصی کلاسمون داشته باشن و تنها راه دسترسی از بیرون ، اینه که [/FONT][FONT=&quot]constructor[/FONT][FONT=&quot] رو جوری طراحی کنیم که پارامتر ورودی بگیره و به این مشخصه ها ، مقدار دهی کنه . یا اینکه متد دیگری به اسم [/FONT][FONT=&quot]get [/FONT][FONT=&quot]یا [/FONT][FONT=&quot]set[/FONT][FONT=&quot]یا به سیستم معمول تعریف کنیم تا اشیای این سطح رو بخونه و نمایش بده و مقادیری رو به عنوان ورودی بگیره و با اون مقادیر ، مشخصه ها یا متد های سطح خصوصی[/FONT][FONT=&quot] ([/FONT][FONT=&quot]private[/FONT][FONT=&quot]) [/FONT][FONT=&quot]رو دستکاری کنه[/FONT][FONT=&quot].[/FONT]
[FONT=&quot]سطح دسترسی[/FONT][FONT=&quot] داخلی یا [/FONT][FONT=&quot]internal [/FONT][FONT=&quot]: [/FONT][FONT=&quot]این سطح دسترسی ، سطح دسترسی پیش فرض اکشن اسکریپت 3 هست . وقتی در تعریف مشخصه ها یا متد های کلاس ، فقط عبارت [/FONT][FONT=&quot]var[/FONT][FONT=&quot] و بعد اسم مشخصه / متد و بعد نوع مشخصه [/FONT][FONT=&quot]([/FONT][FONT=&quot]….String , Number[/FONT][FONT=&quot])[/FONT][FONT=&quot]رو می نویسیم ، خود به خود این سطح به اون اعمال می شه[/FONT][FONT=&quot] .[/FONT][FONT=&quot]همچنین اگه قبل از تعریف مشخصه یا متد ، عبارت [/FONT][FONT=&quot]internal[/FONT][FONT=&quot] رو بنویسیم ، این سطح دسترسی به اون اعمال می شه .[/FONT]
[FONT=&quot]مشخصه یا متدی که با این روش انتصاب می شه فقط در بسته روت کلاسمون قابل دسترسی هست . یعنی سورسها و کلاسهایی که در فولدر کلاس و دقیقا در کنار کلاس ما قرار دارن ، به این اشیا ، دسترسی دارن. دیگر کلاسهایی که در فولدرهای دیگه (بسته های دیگه ) قرار دارند نمی تونن به این اشیا دست پیدا کنن حتا اگر به شیوه درست ، کلاس خودمون رو در اونها [/FONT][FONT=&quot]import[/FONT][FONT=&quot] کنیم. (در جلسات بعدی به صورت کامل در مورد بسته بندی فولدر به فولدر بحث می کنیم[/FONT][FONT=&quot].[/FONT][FONT=&quot] ) [/FONT]
[FONT=&quot]سطح دسترسی [/FONT][FONT=&quot]محافظت شده یا [/FONT][FONT=&quot]protected [/FONT][FONT=&quot]: [/FONT][FONT=&quot]فقط کلاسهایی که با دستور [/FONT][FONT=&quot]extends[/FONT][FONT=&quot] به عنوان زیر کلاسِ (فرزند) کلاس کنونی شدند، می تونن به اونها دست پیدا کنن ولا غیر . ما می تونیم کلاس اصلی رو به عنوان کلاس اصلی پدر (یا مادر)[/FONT][FONT=&quot]بوجود بیاریم و در اون گروهی از مشخصه ها یا متد ها رو عمومی[/FONT][FONT=&quot] ([/FONT][FONT=&quot]public[/FONT][FONT=&quot]) [/FONT][FONT=&quot]قرار بدیم تا هر کسی که کلاس رو [/FONT][FONT=&quot]import [/FONT][FONT=&quot]کرد به اونا دست پیدا کنه . گروهی از اونها رو هم از نوع خصوصی ترین و محرمانه ترین[/FONT][FONT=&quot] ([/FONT][FONT=&quot]private[/FONT][FONT=&quot] ) [/FONT][FONT=&quot]از نظر دسترسی قرار بدیم تا هیچ چیزی غیر از خود کلاس نتونه به اونا دسترسی داشته باشه .گروه دیگه ای رو هم از نوع محرمانه و یکم با شدت کمتر[/FONT][FONT=&quot] ) [/FONT][FONT=&quot]یا همون [/FONT][FONT=&quot]internal [/FONT][FONT=&quot]) قرار بدیم تا فقط کلاسها و سورسهایی به اون دست پیدا کنن که در کنار فایل کلاسی ما باشن و کلاس ما رو [/FONT][FONT=&quot]import[/FONT][FONT=&quot] کنن. دسته ای دیگه از مشخصات و متد ها رو هم از نوع [/FONT][FONT=&quot]protected [/FONT][FONT=&quot]تعریف می کنیم که فقط یک سری کلاسها و اونهم کلاسهای فرزند (زیر کلاسها ) از اونها برخوردار باشن . زیر کلاس به کلاسی گفته می شه که در هنگام تعریف با دستور [/FONT][FONT=&quot]extends[/FONT][FONT=&quot]، وابسته به کلاس ما می شه و خصوصیات و متد های [/FONT][FONT=&quot]public , protected[/FONT][FONT=&quot]رو دریافت می کنه[/FONT][FONT=&quot].[/FONT][FONT=&quot]این کلاسها (فرزند) نمی تونن به سطح [/FONT][FONT=&quot]private[/FONT][FONT=&quot] کلاس مادر خودشون که خیلی خصوصی هم هست دست پیدا کنن . اگر هم کلاس مادرشون در کنار اونا باشه می تونن به مشخصه ها و متد های [/FONT][FONT=&quot]internal[/FONT][FONT=&quot] کلاس مادرشون دست پیدا کنن[/FONT][FONT=&quot].[/FONT]
[FONT=&quot]به خواست پروردگار بزرگ ، [/FONT][FONT=&quot]در آینده مثالهایی رو در این مورد خواهیم زد[/FONT][FONT=&quot].[/FONT]
[FONT=&quot]با این اوصاف به نکات زیر توجه کنید[/FONT][FONT=&quot] :[/FONT]
[FONT=&quot]1-[/FONT][FONT=&quot]مشخصات و متد ها می تونن [/FONT][FONT=&quot]public , private , internal , protected[/FONT][FONT=&quot]باشند[/FONT][FONT=&quot].[/FONT]
[FONT=&quot]2-[/FONT][FONT=&quot]در تعریف کلاس فقط می تونیم خود کلاس رو [/FONT][FONT=&quot]public[/FONT][FONT=&quot] یا [/FONT][FONT=&quot]internal[/FONT][FONT=&quot] تعریف کنیم[/FONT][FONT=&quot].[/FONT]
[FONT=&quot]3-[/FONT][FONT=&quot]تابع سازنده[/FONT][FONT=&quot] ([/FONT][FONT=&quot]constructor[/FONT][FONT=&quot]) [/FONT][FONT=&quot]همیشه [/FONT][FONT=&quot]public[/FONT][FONT=&quot] و گاهی [/FONT][FONT=&quot]internal [/FONT][FONT=&quot]تعریف می شه[/FONT][FONT=&quot] .[/FONT]
[FONT=&quot]تفاوت سطوح دسترسی کلاسی در اکشن اسکریپت 2 و 3[/FONT][FONT=&quot] :[/FONT]
[FONT=&quot]در اکشن اسکریپت 2 ما فقط دو نوع سطح دسترسی داشتیم[/FONT][FONT=&quot] :[/FONT]
[FONT=&quot]1- [/FONT][FONT=&quot]public[/FONT][FONT=&quot]که به معنای [/FONT][FONT=&quot]public[/FONT][FONT=&quot] اکشن اسکریپت 3 بود[/FONT][FONT=&quot] .[/FONT]
[FONT=&quot]2 -[/FONT][FONT=&quot]private[/FONT][FONT=&quot] که به معنای [/FONT][FONT=&quot]protected[/FONT][FONT=&quot]اکشن 3 بود . بهتر بگم سطح دسترسی [/FONT][FONT=&quot]private[/FONT][FONT=&quot] در اکشن 2 اونقدر ها هم حفاظت شده عمل نمی کرد و به زیر کلاس های یک کلاس امکان دسترسی می داد . پس باید بگم اکشن 3 خیلی زبان خوفی هست و این خصیصه ها رو از زبان [/FONT][FONT=&quot]C[/FONT][FONT=&quot] به ارث برده[/FONT][FONT=&quot].[/FONT]
[FONT=&quot]مثالهایی رو براتون آماده کردم .اونا رو در فلش [/FONT][FONT=&quot]cs4 [/FONT][FONT=&quot]باز کنین و باهاشون کار کنین[/FONT][FONT=&quot].[/FONT]
[FONT=&quot]در این مثالها ، ما ارتباط یک سورس و یک کلاس راه انداز اصلی رو بهتون نمایش می دیم. همینطور نمونه سازی از یک کلاس در یک سورس بشرطی که کلاس مذکور نقش یک کلاس اصلی راه انداز رو ایفا نمی کنه و با دستور [/FONT][FONT=&quot]import[/FONT][FONT=&quot] وارد سورس می شه .همچنین نمونه سازی از یک کلاس در یک کلاس دیگه ای که راه انداز اصلی یه سورس فلش هست رو خواهید دید. و همچنین تست اینکه ما به یک کلاس دو تابع سازنده تعریف می کنیم و خطایی رو مشاهده می کنیم[/FONT][FONT=&quot].[/FONT]
[FONT=&quot]بعد از باز کردن اونها[/FONT][FONT=&quot] :[/FONT]
[FONT=&quot]مثال [/FONT][FONT=&quot]Sample22-01.rar[/FONT][FONT=&quot] : یک سورس فلش با دو دکمه و 3 جعبه متن می بینید.در ابتدا تابع [/FONT][FONT=&quot]constructor [/FONT][FONT=&quot]مقادیر پیش فرض به خصوصیات نام کلی و نام خانوادگی کلی و سن می ده. دو مشخصه نام جدید و نام خانوادگی جدید مقدار دهی نمی شن و مشاهده می کنین که مقدارشون [/FONT][FONT=&quot]null[/FONT][FONT=&quot] تریس می شه[/FONT][FONT=&quot].[/FONT]
[FONT=&quot]بعد در جعبه های متنی، یه اسم و یه فامیل و یه سن دلخواه قرار بدین . بعد از اون اگه دکمه [/FONT][FONT=&quot]age[/FONT][FONT=&quot]رو بزنین، سن رو نشون می ده و اگه دکمه [/FONT][FONT=&quot]name and Family[/FONT][FONT=&quot] رو بزنین ، اسم جدید ورودی در مشخصه های اسم کلی و جدید قرار می گیره و فامیل جدید ورودی در مشخصه های فامیل کلی و جدید قرار می گیره و تریس می شه[/FONT][FONT=&quot] .[/FONT]
[FONT=&quot]این مثال از نوع کلاس اصلی کار راه انداز طراحی شده .همونطوری که می بینین در سورس اصلی دستور خاصی نوشته نشده و در پنل [/FONT][FONT=&quot]properties[/FONT][FONT=&quot] و در کادر متنی [/FONT][FONT=&quot]class[/FONT][FONT=&quot] اسم فایل کلاسی رو نوشتیم .(البته کادر [/FONT][FONT=&quot]class[/FONT][FONT=&quot]رو وقتی می بینین که هیچ شی در صحنه انتخاب نشده باشه[/FONT][FONT=&quot]. [/FONT][FONT=&quot]) [/FONT]
[FONT=&quot]مثال [/FONT][FONT=&quot]Sample22-02.rar[/FONT][FONT=&quot] : این تمرین برای تست حالتیه که ما دو تا تابع سازنده تعریف کنیم و ملاحظه خواهید کرد که خطا ظاهر می شه و اثبات می شه که در اکشن 3 بر خلاف خیلی از زبانها ، نمی شه دو یا چند کانسترکتور در یک کلاس تعریف کرد[/FONT][FONT=&quot].[/FONT]
[FONT=&quot]ما یک سورس داریم و دو فایل کلاسی . در سورسمون دو دکمه و 6 جعبه متن داریم.3 تا جعبه متنای بالا برای وارد کردن نام و نام خانوادگی و سن هست و 3 تای پایینی برای نمایش اونها هست . دکمه سمت راست[/FONT][FONT=&quot] ([/FONT][FONT=&quot]default[/FONT][FONT=&quot]) [/FONT][FONT=&quot]برا حالتیه که با کلیک روی اون یه شی از کلاس شخص متولد شه و با کانسترکتور پیش فرض سازش، مقادیر پیش فرض به مشخصه های نام و ... داده شه تا در سه جعبه متن پایینی تریس شه . دکمه [/FONT][FONT=&quot]Enterance[/FONT][FONT=&quot] هم برا حالتیه که با کلیک روی اون ، یه نمونه دیگه از کلاس شخص ساخته شه و تابع سازنده دومش که اسم و فامیل و ... رو به عنوان پارامترهای ورودی میگیره ، مقادیر سه جعبه بالایی رو به مشخصه های نمونه جدید بده تا اون مشخصه هارو در 3 جعبه پایینی نشون بده . ملاحظه می کنین که خطای زیر داده می شه [/FONT][FONT=&quot]:[/FONT]


[FONT=&quot]Multiple constructor definitions found. Constructor may not be defined in <Script/> code[/FONT]




[FONT=&quot]در این مثال ، کلاس [/FONT][FONT=&quot]Constructor Test[/FONT][FONT=&quot] از نوع فایل کلاسی اصلی راه انداز هست و کلاس [/FONT][FONT=&quot]person Class [/FONT][FONT=&quot]از نوع کلاسهای جانبی هست که داخل کلاس اصلی [/FONT][FONT=&quot]import[/FONT][FONT=&quot] می شه و از اون نمونه سازی می شه و استفاده می شه[/FONT][FONT=&quot].[/FONT]
[FONT=&quot]دقت کنید که در این مثال ، در دو جعبه متنی که یکیش سن رو می گیره و یکیش سن رو نشون می ده ، ما نیازی به تبدیل رشته و عدد برای مقدار دهی به مشخصه عددی سن از رشته متن نداریم چون به دو جعبه متنی مورد نظر ، فرمت اعداد داده شده (در قسمت [/FONT][FONT=&quot]Embed[/FONT][FONT=&quot])[/FONT]
[FONT=&quot]مثال [/FONT][FONT=&quot]sample22-03[/FONT][FONT=&quot] : مثالی هست که باز ادعای مثال 2 رو ثابت می کنه و فقط کافیه شما عباراتی رو که در کامنت قرار گرفتن رو از حالت کامنت در بیارین تا تداخل دو کانسترکتور و خطای قبل رو ببینین[/FONT][FONT=&quot].[/FONT]
[FONT=&quot]این مثال هم از یک سورس و یک کلاس اصلی راه انداز و یک کلاس شخص تشکیل شده که ابتدا با دستور [/FONT][FONT=&quot]import[/FONT][FONT=&quot] در کلاس اصلی بارگذاری شده و در کلاس اصلی از اون نمونه سازی شده و استفاده شده . خواهید دید که مقادیر پیش فرض به مشخصات نمونه ساخته شده از کلاس شخص ، در کلاس اصلی داده می شه[/FONT][FONT=&quot].[/FONT]
[FONT=&quot]مثال [/FONT][FONT=&quot]Sample22-04.rarl[/FONT][FONT=&quot] : مثالی که از یک سورس و یک کلاس تشکیل شده و خواهید دید که چطور کلاس مورد نظر با دستور [/FONT][FONT=&quot]import[/FONT][FONT=&quot] ، در سورس قابل دسترسی خواهد بود و چطور از داخل سورس ، دو نمونه از اون رو می سازید و به مشخصات خصوصی اون که از نوع خصوصی[/FONT][FONT=&quot] ([/FONT][FONT=&quot]private[/FONT][FONT=&quot]) [/FONT][FONT=&quot]هستند مقدار دهی اولیه می کنین[/FONT][FONT=&quot] .[/FONT]
[FONT=&quot]بعد از باز کردن سورس [/FONT][FONT=&quot]fla[/FONT][FONT=&quot]تمرین 4 به اولین فریم برین و دستورات اکشن رو ببینین[/FONT][FONT=&quot].[/FONT]
[FONT=&quot]توجه [/FONT][FONT=&quot]: [/FONT][FONT=&quot]تفاوت مثال شماره 4 با مثالهای دیگه در اینه که کلاس ما دیگه نقش کلاس اصلی کار راه انداز رو بازی نمی کنه . اگر در سورس اصلی به پنل [/FONT][FONT=&quot]properties[/FONT][FONT=&quot]برین متوجه می شین که در کادر متنی [/FONT][FONT=&quot]class[/FONT][FONT=&quot] هیچ کلاسی برای اون تعریف نشده[/FONT][FONT=&quot].[/FONT]
[FONT=&quot]من در مثالها و در روبروی هر کد ،کامنتی رو برای توضیح عملکرد اون کد به زبون ثلیث فارسی نوشتم[/FONT][FONT=&quot] .[/FONT]
[FONT=&quot]پایان درس سوم[/FONT]
 

پیوست ها

  • q.zip
    6.9 کیلوبایت · بازدیدها: 114

ss_saheb

New Member
خيلي خيلي آموزش اكشن اسكريپت 3 عالي بود
واقعا از آقاي هادي ممنون هستيم
موفق و سربلند باشيد
خدا يارو ياورتان هميشه
 

++Hadi++

Active Member
سلام
مشکل از این بود که شما در آن واحد هم می خواستین از یه کلاس به عنوان document class یا همون کلاس اصلی کار راه انداز استفاده کنین و هم از اون در جهت نمونه سازی استفاده کنین .
فقط کافیه روی نقاط بیرون از استیج کلیک و پنل properties رو باز و در کادر متنی Class اسم Src رو حذف کنین . پس الان شما کلاستون رو ایمپورت کردین و از اونو نمونه ساختین و بهش مقدار دهی کردین .
اینم نمونه دانلود کنین ...
بای...
 

پیوست ها

  • q.rar
    6.5 کیلوبایت · بازدیدها: 92

mohsen_joker

New Member
سلام آقا جواد و امیدوارم حالتون خوب باشه!
میدونم دوران امتحاناته و حتما شما گرفتار امتحانات هستید و همینطور میدونم جمع آوری مطالب چقدر وقت گیره مخصوصا اگه گرفتار کار دیگه ای باشی ولی ازتون خواهش میکنم بعد از دوران امتحانات به آموزشهاتون ادامه بدید . داشتیم استفاده میکردیم!
ممنون!:sad:
 

firestar9000

New Member
تا حالا به سايت online-dl رفتي؟ همين مطالب رو تو انجمنش پيدا مي كني!
(3 حالت وجود دارد؟
1. تو اون نويسنده باشي.
2. مطالب واسه شما باشه.
3 . مطالب واسه اون باشه.)
 
وضعیت
موضوع بسته شده است.

جدیدترین ارسال ها

بالا