تعداد بازدید : 2635
تعداد نوشته ها : 2
تعداد نظرات : 1
در این وب لاگ شما می توانید
مبانی ساخت بازی های کامپیوتری را یاد بگیرید
و بازی های زیبا و کوچکی برای خود و دوستانتان بسازید
مقالت این وبلاگ تنها برای درگیر کردن ذهن شما با روش های ساخت بازیست بنابراین سطح مبتدی و متوسط را شامل می شود
پس بعد از مدتی (خودتان متوجه خواهید شد کی) اگربرایتان جذابیت خود را از دست نداد و خواستید یک بازی ساز حرفه ای شوید باید در اینترنت به دنبال منابع کامل تری باشید
پیش نیاز هایی برای بازی سازی
قبلا گفتیم که اینجا از صفر شروع می کنید و تا این حد که ما در این وبلاگ پیش می رویم شما تنها باید خواندن و نوشتن را بلد باشید و در علوم کامپیوتر فرق موس با کیس را بدانید و وقتی به شما بگویند روی استارت(دکمه روی نوار وظیفه پایین میز کار(desktop)) کلیک (دکمه سمت چپ روی موس) کنید حاج و واج نمانید که کلیک چیست .
حد اقل یک بازی انجام داده باشید . حال چه در کنسول(ابزار الکتریکی که مهمترین کار آن اجرای بازی است مثل پلی استیشن ،میکرو،سگا) خود و یا در رایانه
...اگر این شرایط را دارید ادامه متن را بخوانید!!!
.
مواد لازم برای ساخت یک بازی
1. انتخاب یک موتور (موتور ها نرم افزار هایی هستند که به ما در ساخت بازی کمک می کنند)
همان طور که برای اجرای فایل های صوتی وتصویری خود می توانید از نرم افزار های مختلفی استفاده کنید برای ساخت یک بازی نیز می توانید از نرم افزار های مختلفی استفاده کنید(به این نرم افزار ها "موتور" می گوییم)
2. انتخاب یک نرم افزار برای کارهای گرافیکی (اگر مایلید که خودتان اشیاء درون بازی را بسازید باید کار با یکی از این نرم افزار ها را بلد باشید در غیر این صورت این گزینه را نادیده بگیرید و از اشیاء آماده موجود در اینترنت استفاده کنید)
3. خلاقیت (توجه داشته باشید اگر بخواهید بازی هایی که ساخته شده اند را بازسازی کنید یک اشتباه بزرگ را مرتکب شده اید)پس به اطراف دقت کنید و سوژه ای بکر برای خود انتخاب کنید
حتما لازم نیست سوژه شما تا کنون توسط هیچ بازی سازی یا گروه بازس سازی ساخته نشده باشد گاهی اوقات قسمتی از یک بازی خود سوژه بسیار جالب برای بازی سازی است
شروع کنید
به بخش مقالات بروید
دسته ها :
سه شنبه نهم 5 1386
action script بر اساس جاوا اسکریپت ساخته شده و دارای .objects.و .classes هاست object.. ها انواع اطلاعات مانند صدا تصویر و متن و مقادیر عددی و... هستند كه خود زير گروه كلاس ها به شمار مي روند
هر کدام از object.ها خود دارای متد method.. و مشخصات.properties مخصوص بخود هستند
پنل اکشن با دو صورت کارایی normal. و export. محیط برنامه نویسی را برای کاربران حرفه ای و کاربران معمولی که چیزی از زبانهای برنامه نویسی نمی دانند آماده کرده است
در فلش ام ایکس اکشن ها به 8 قسمت طبقه بندی شده اند :
1: actions( اکشن) : یک گروه کلی که بسیاری از اکشن هایی که مرتب برای کنترل فیلم از آنها استفاده می کنید در این گروه هستند
2:operators( عملگر) شامل عملگرها برای مقایسه و تغییر مقادیر و نشانه های ریاضی جمع و تفریق و ... هستند
3:functionsتوابع) تابع ها در این گروه قرار داده شده اند توابع زیر برنامه هایی هستند که اطلاعات را تجزیه تحلیل کرده و مقادیر را به برنامه اصلی بر می گردانند
4:constants( ثوابت) ثابتها مقادیر ثابت منطقی مثل true یا .falseهستند
5:properties(:مشخصات ) ویژگیهای مختلف در این طبقه هستند مانند درجه محو بودن یا زاویه چرخش و غیره
6: objects ( شی ها) شاملobjectهای مختلف مثل دکمه ها و متدها و رویدادهای مختلف اشیا هستند
7:deprecate(بدرد نخورها) همونطور که از اسمش پیداست یه سری دستورات بدرد نخورهستند که کاری با هاشون نداریم
8: flash UI components گروه آخر یک گروه برنامه سفارشی از پیش نوشته شده است که کارهای خاص و پر کاربردی را انجام می دهند مثلا شما میخواهید یه منو بسازید و باید از اسکریپت های مختلف استفاده کنید اما قبلا بصورت آماده در این قسمت گذاشته شده است
__________________
نسبت دادن انواع اکشن ها به دکمه های مختلف مریی و نامریی
قبل از اینکار باید با دو مفهومevents وevents handlersآشنا باشیم
event ها همان حوادثی هستند که در یک فیلم فلش اتفاق میافتند مثل کلیک یک دکمه
حالا event handlers ها اتفاقاتی هستند که در جواب یک event. اتفاق میافتند مثلا تعیین می کنیم که با کلیک کردن یک دکمه صدای موزیک در فیلم پخش شود
دکمه ها بطور مستقیم با این دو مفهوم سرو کار دارند
برای نسبت دادن event handlerبه یک دکمه از دستور on استفاده می کنیم
event های این دستور به شرح زیر هستند :
on press.: زمانی که ماوس در محدوده انتخاب دگمهhit قرار داشته باشد عمل مورد نظر ما انجام می شود
on realease: وقتی دکمه فشرده شده و بعد رها شود
on release outside: وقتی دکمه فشار داده شود و بعد از کلیک ماوس به خارج محدوده دکمه برود
on rollover...: وقتی ماوس از خارج از محدوده دکمه وارد آن شود
onrollout:وقتي ماوس از محدوده دكمه به بيرون آن برود
ondragover:وقتی دکمه کلیک شود وماوس بدون رها سازی به بیرون محدوده برود و دوباره بر گردد
ondragout:وقتی دکمه کلیک شده وماوس بدون رهاسازی به بیرون محدوده drag شود
بعد از استفاده کردن ار هرکدام از این eventشما باید عملی که باید در جواب انجام داده شود را نیر به آنها نسبت دهید
دستورات movie control
ازactopn >moviecontrol>gotoرا انتخاب کنید این دستور خیلی مورد استفاده شما قرار خواهد گرفت
با بکار گیری این دستور پس از eventدکمه فیلم شما به فریم دلخواهتان پرش خواهد داشت به عکس زیر توجه کنید
برای مثال شما به دکمه موی دستور می دهید که پس از فشرده شدن دکمه فیلم به فریم 10 رفته و از آنجا ادامه پیدا کند
با بکار گیری دستور stop. پخش فیلم متوقف می شود
با بکار گیری دستور .play پخش فیلم ادامه پیدا می کند
با بکار گیری دستور..stop all sounds تمامی صداهای در حال پخش قطع می شوند
قسمت browser
کد:
fscommand()
اين تابع داري كامندهاي زيره:
Quit-None:براي خروج از برنامه استفاده ميشه!
fullscreen-true or false:براي تمام صفحه كردن فلش پلير استفاده ميشه!البته در محيط ويندوز
allowscale-true or false:اجازه تغيير اندازه صفحه فلش رو همرا با تغيير اندازه صفحه فلش پلير نميده!مثلا در حالت معمولي اگر سايز صفحه فلش پلير رو تغيير بديد سايز فايل فلش هم با اون عوض ميشه ولي بااستفاده از گزينه falseاين كامند،اين اتفاق رخ نميده!
showmenu-true or false:همه گزينه هاي رايت كليك رو به جز setting و about flash player حذف ميكنه!
exec-Path to application :براي اجرا كردن يك فايل exe استفاده ميشه!در اين باره شما بايد به دو نكته توجه كنيد
1.swfنميتونه فايل exe رو لود كنه!
2.فايل exe شما بايد در فولدري به نام fscommandواقع در كنار فايل فلش اصلي تون قرار بگشره.البته در اكشن بالا فقط اسم فايل رو مينويسيد و اسم اون فولدر رو وارد نميكنيد!
trapallkeys-true or false:اين كامند دكمه هاي تركيبي مربوط به فلش پلير رو غير فعال ميكنه!
آموزش اختصاصي مخصوص اين اكشن
کد:
loadMovie(url:String, target:Object, [method:String])
اين اكشن از سودمندترين اكشن هاي فلشه!به وسيله اين اكشن ميتونيم از خارج،فايل swfرو درون فايل فلش جاري لود كنيم!
مشخصا آدرس اون فايل در قسمت urlو همراه با " " قرار ميگيره!در قسمت targetمحلي كه فايل لود ميشه مشخص ميشه و متد هم كه معمولا لازم نيست و به صورت getو post هستش!
در مثال زير
کد:
loadMovie("circle.swf", "_level0");
فايل circle.swfواقع در كنار فايل فلش اصلي در level0 لود ميشه!
کد:
loadVariables(url:String, target:Object, [method:String])
به وسيله اين اكشن ميتونيم يك متن رو از خارج درون فلش لود كنيم!توصيحات همانند اكشن بالاست!
کد:
unloadMovie(target:MovieClip)
اين اكشن براي بستن فايل فلشي كه قبلا توسط loadMovieلود شده بود استفاده ميشه!
كافيه كه حايي كه فايل لود شده رو در محل targetبنويسيم و اكشن رو اجرا كينم!
کد:
getURL(url:String, [window:String, [method:String]])
براي باز كردم يك صفحه وب درون فلش استفاده ميشه!معمولا اين اكشن رو به باتن ها نسبت ميدن تا با كليك بر روي باتن ،صفحه مورد نظر باز بشه!
آدرس در قسمت urlقرار ميگيره،windows كه از _Self,_blank,_parent,_top specifiesتشكيل شده نوع باز شدن صفحه جديد رو مشخص ميكنه و متد هم كه معمولا براي فرستادن اطلاعات به فايل php,asp,xmlو ... استفاده ميشه از post و get تشكيل شده!
__________________
اكشن هاي movieclipcontrol
duplicatedmovieclip: این دستور می توان movieclip موردنظر رو دو برابر کرد اگر بخواهید بیشتر از دو برابر بشوند باید آنرا درون یک حلقه while بندازید می توان با استفاده از این دستور افکتهای زیبایی به موی کلیپ ها داد در اينجا یک نمونه از موارد کارایی این دستور را می توانید مشاهده کنید
کد زیر 10 تا کپی از موی کلیپ می گیرد:
HTML کد:
x=0
while (x<10) { duplicatemovieclip("movieclip2","movieclip2"+x); }
onclipevent: می توان با این اکشن رویدادها را در کلیپ مورد نظرتان اعمال کنید
load.: وقتیeventاتفاق میافتد که فیلم بار گذاری شده باشد
enterframe: وقتی اتفاق میافتد که یک فریم از کلیپ وارد شده باشد
unload: وقتی اولین فریم movieclip بارگذاری شد این دستور اجرا می شود
mouse down: وقتی کاربر کلیک چپ کرد این رویداد احرا می شود
mouseup.: وقتی کاربر کلید ماوس را رها کند این اکشن اجرا می شود
mouse move.:وقتی کاربر ماوس را حرکت داد این دستور اجرا میشود
.keydown: وقتی کلیدی از صفحه کلید فشار داده شد این رویداد اتفاق میافتد و با دستور getcode می توان مشخص کرد که کدام کلید مد نظر است
key up.: وقتی کلیدی از صفحه کلید رها شد این دستور اجرا می شود مانند حالت بالا باید از دستور getcode نیز در کنارش استفاده کرد
dateزمانی اجرا می شود که نتیجه دستور loade movie یا load varieble بار گذاری شود
removemovieclip:اين اكشن موي كليپ هايي كه با دستور duplicatedmovieclip زياد شده اند را حذف مي كند
setproperty
برای اینکه خصوصیت مورد نظرمون رو به کلیپ ویدیویی اعمال کنیم باید از این اکشن استفاده کنیم:
که سه فیلد دارد
properties: برای تعیین خصوصیت مورد نظر
.target: برای وارد کردن ریشه یا همان تعیین موی کلیپ هدف
value.: برای تعیین عدد برای خصوصیات مورد نظر مان
برای مثال ما مشخص می کنیم که درجه محوی موی کلیپ با نامmovie clip2 ..برابر 70 باشد
کد:
_root.movieclip2._alpha=70
فقط نمی توان دو خصوصیت رو با یک دستور به یک موی کلیپ نسبت داد و باید برای هر خصوصیت این دستور رو دوباره وارد کرد
خصوصیات رو با هم مرور می کنیم :
alpha_ این دستور .opacity یا همان درجه محوی رو مشخص می کند( عددی بین 0 تا 100)
currentframe_.:این دستور شماره فریمی که در حال اجراست بر می گرداند
droptarget_.: این دستورمسیر حقیقی رابر می گرداند و نشان می دهد که موی کلیپdragشده به کجا انداخته شده است
focuserect.: نشان می دهد وقتی که با استفاده از صفحه کلید روی این موی کلیپ زوم شده ( یعنی در حالت انتخاب شده قرار گرفته ) ایا اطرافش رو یک مستطیل زرد رنگ بگیره یا نه سپس یک مقدار حقیقی true یا .falseرا بر می گرداند
framesloaded_.: شماره فریم لود شده از فیلم رو بر می گرداند
name_.: نام نمونه (instance)را مشخص می کند
.height_.: درازای شی را بر حسب پیکسل مشخص می کند
quality_.: کیفیت برگردانده شده را مشخص می کند
rotation_:درجه چرخش را تعیین می کند
soundbuftime_.: زمان قبل از شروع فیلم را تعیین می کند
target_.: ریشه موی کلیپ مشخص شده را بر می گرداند
totalframes_.: تعداد کل فریمهای موجود در موی کلیپ را بر می گرداند
url_: صفحه وبی که موی کلیپ از آن دانلود شده را بر می گرداند
visible_.: تعیین می کند که شی مورد نظر ما پنهان یا آشکار باشد
width_.: عرض شی مورد نظر را بر حسب پیکسل مشخص می کند
x_.: موقعیت x شی را مشخص می کند
xmouse_.: موقعیت .x ماوس را مشخص می کند
xscale_.: تعيين مقياس x
y_:موقعیت yشی را مشخص می کند
ymouse_.: موقعیت y ماوس را مشخص می کند
yscale_.: تعيين مقياس y
در ادامه اكشن هاي movieclipcontrol مي رسيم به اكشن startdrag
با كمك اين اكشن ميتوان موي كليپ ها را داخل فيلم جابجا كرد براي اينكار شما بايد يك نمونه دكمه نامريي را روي موي كليپ قرار داده و از اين اكش استفاده كنيد
اكشن stopdrag باعث متوقف شدن عمل draging مي شود
به كد زير توجه كنيداين كد باعث مي شود هنگامي كه مشاهده كننده روي موي كليپ كليك كرد بتواند آنرا جابجا كند و هنگام رها سازي ذر جاي خود متوقف شود
کد:
on(press)
{ startdrag(movieclip);} on(release){
stopdrag();}
اكشنupdateafterevent
event ماوس را رفرش می کند
کد:
Mouse.hide();cursor_mc.onMouseMove = function() {
this._x = this._parent._xmouse;
this._y = this._parent._ymouse;
updateAfterEvent();
};
اول يك توضيح بدم كه variablesدر فلش 8 در زير مجموعه statement قرار دارند ولي چون قبلا از ترتیب بندی فلش ام ايكس استفاده کردیم به همان نحو ادامه می دهیم!
variable ها به معني متغير هستند و عملكردشون از اسمشون مشخصه!
کد:
delete reference
محتويات يك متغير رو پاك ميكنه.مثلا در كد زير
کد:
// create the new object "account"
account = new Object();
// assign property name to the account
account.name = 'Jon';
// delete the property
delete account.name;
account.name رو كه برابر Jon بوده پاك ميشه و محتوي account.name جالي ميشه!
+++++++++++
کد:
set(variable,expression)
يك مقدار رو براي متغير ماتعيين ميكنه كه variable نام متغير و expression مقدار متغير هست!
اين اكشن دقيقا با = برابره
مثلا دو كد زير يك معني رو ميدن
کد:
set(orig_x_pos, getProperty ("ship", _x ));
کد:
orig_x_pos = ship._x;
+++++++++++
کد:
var variableName1 [= value1][...,variableNameN [=valueN]]
براي declare variables استفاده ميشه!declare variables متغييرهايي هستن كه نوع متغير رو اعلام ميكنن.مثلا زير يك نمونه از declare variables و كاربرد اين اكشن هست:
کد:
var firstName:String;
در اينجا مشخص شده كه متغير firstnameيك متغير رشته اي است!
++++++++++
کد:
with (object) {
statement(s);
}
براي نسبت دادن يك گزاره به يك ابجكتاستفاده ميشه!
مثلا دو اكشن زير رو مقايسه كنيد.هر دو يك معني ميدن واي با استفاده از with()ميشه كار رو كوتاه كرد!
کد:
someOtherMovieClip._x = 50;
someOtherMovieClip._y = 100;
someOtherMovieClip.gotoAndStop(3);
کد:
with (someOtherMovieClip) {
_x = 50;
_y = 100;
gotoAndStop(3);
}
خوب بعد از متغير ها مي رسيم به حلقه هاي تكرار شونده و عبارات شرطی
كلا loop ها برای راحتی و سرعت کار بیشتر انجام شدند یعنی مثلا شما بجای اینکه چندین بار یک عمل مشخص را انجام دهید آنرا در یک loopانداخته و در وقت و زحمت صرفه جویی کنید
مشخصه کلی حلقه ها انجام دستورات به تعداد تعیین شده با استفاده از متغیر هاست 3 نوع حلقه داریم که تقریبا مشابه همدیگه هستند for , while , do while
for: این حلقه به تعداد معینی که ما مشخص کردیم تکرار می شود و بعد دستور بعدی اجرا می شود
این اکشن دارای 3 فیلد است:
intit:شما باید این فیلد را به مقدار اولیه پر کرده و اونو به یه متغیر نسبت بدید مثلا i=0
condition : در این قسمت باید شرطی مورد نظر را بگذارید مثلا: i<10
next : اینجا باید مشخص کنید چه مقداری به متغیر شما باید اضافه یا کم شود مثلا i++ یعنی یکی یکی اضافه کن
کد:
for (name in myMovieClip) {
if (typeof (myMovieClip[name]) = "movieclip") {
trace ("I have a movie clip child named " + name);
}
}{
در این دستور ابتدا شرطی که گذاشتید بررسی می شود اگر درست بود به سراغ اجرای دستورانت حلقه می رود
اینجا هم یک فیلد condition وجود دارد که مثل حالت قبل باید شرط مورد نظر را در این قسمت بگذارید
کد:
on(release) {
foo = 0;
while(foo < 5) {
duplicateMovieClip("_root.flower", "mc" + foo, foo);
setProperty("mc" + foo, _x, random(275));
setProperty("mc" + foo, _y, random(275));
setProperty("mc" + foo, _alpha, random(275));
setProperty("mc" + foo, _xscale, random(200));
setProperty("mc" + foo, _yscale, random(200));
foo++;
}
}
do while :
مثل while است اما دستور یکبار اجرا می شود یعنی اول دستور را اجرا می کند بعد چک می کند که آیا شرط درست بوده یا نه
کد:
do {
statement(s)
} while (condition)
break :
در هرجای حلقه که این دستور استفاده شود برنامه از loop خارج شده و به سراغ دستور بعدی می رود:
کد:
i = 0;
while (true) {
if (i >= 100) {
break;
}
i++;
}
عبارات شرطي :
كار عبارتهاي شرطي مقايسه ست و با استفاده از عملگرهاي زير اين كار را انجام مي دهند و مقدار true یا false رو بر می گردانند
عملگرهای مقایسه:
== مساوی بودن
=== کاملا مساوی بودن از لحاظ عددی و نوع داده
=! مساوی نبودن
==! کاملا مساوی نبودن از لحاظ عددی و نوع داده
> کوچکتر بودن
< بزرگتر بودن
=> کوچکتر مساوی
=< بزرگتر مساوی
عملگرهای منطقی:
&& and : یعنی اگر دو شرط همزمان درست بود
or l l: یعنی یکی از دو شرط درست باشد
! not : در صورت نادرست بودن شرط
if: دو طرف شرط را مقایسه می کند و در صورت درست بودن شرط اعمال داخل { } را انجام می دهد
کد:
if(count>frame){
count=frame; }
در این مثال مقدار متغیر count و frame را مقایسه می کند در صورتی که مقدار count بزرگتر باشد این دو متغیر را با برابر یکدیگر قرار می دهد
else :از این دستور هنگامی استفاده می شود که شما می خواهید در صورت برقرار نبودن شرط عمل دیگری انجام شود
کد:
if (score<50) { message="very bad" }
else { message="excellent"}
else if : از این عبارت زمانی استفاده می شود که ما شرطهای متعدد داریم و می خواهیم درست بودن هرکدام از آنها برایمان معلوم شود
کد:
if (score<50 ){ message="very bad" }
else if(score=50) {message= "well done "}
else if(score>50){message="excellent"}
در مثال بالا مقدار متغیر score مقایسه می شود و در صورت درست بودن هر کدام از شرطها پیغام مربوطه نمایش داده می شود
case,switch,default:
بجای if و elseمی توان از case ,switch ,defaultاستفاده کرد
switch تساوی شرط و عبارت case رو بررسی می کند
default : دستوری است که شما در نظر می گیرید تا وقتی هیچ کدام از شرطهای case درست نبود اجرا شود
به مثال زیر توجه کنید:
کد:
button.onrelease=function {
switch (name.text){
case "silver" :
silverfunction();
break;
case "admin":
adminfunction();
break;
default: errorfunction();}};
این برنامه جمله switch را مقایسه کرده در صورتی که برابر silver یا admin باشد فانکشن های مربوط را اجرا می کند در غیر این صورت دستور default اجرا می شود
کد:
print (level)
print (level, "Bounding box")
print ("target")
print ("target", "Bounding box")
printAsBitmap (level)
printAsBitmap (level, "Bounding box")
printAsBitmap ("target")
printAsBitmap ("target", "Bounding box")
براي گرقتم پرينت از مووي كليپ و يا يك level خاص استفاده ميشه!
Bounding box:منطقه پرينت رو مشخص ميكنه!و خود از پارامترهاي زير تشكيل شده:
•bframe:براي زماني به كار برده ميشه كه ما چندين ابجكت با سايز مختلف داريم و ميخوايم كه همه در منطقه قابل پرينت قرار بگيرند
•bmax:وقتي كه سايز فريم بالاست از اين استفاده ميشه!
•bmovie:وقتي ميخوايم ازفريمهاي مشخصي پرينت گرفته بشه از اين استفاده ميكنيم و به ليبل فريم هم #bميديم!
USER DIFINED FUNCTION
کد:
call(frame)
صدا زدن فريم مشخص به وسيله اين اكشن انجام ميگيره!به جايframeدراين اكشن ليبل اون رو قرار ميديم
کد:
object.function([parameters])
صدا زدن فانكشن خاص!توضيح خاصي هم نداره و همه چيز مشخصه!
کد:
function functionname ([parameter0, parameter1,...parameterN]){
statement(s)
}
يكي از مهمترين اكشنهاي فلش همين فانكشنه!شما ميتونيد چندين عملكرد رو تحت يك فانكشن تعريف كنيد و با صدا زدن اون فانكشن(اكشني كه قبل اين اكشن توضيح دادم)تمام اون عملكردها رو اجرا كنيد!پارامترهاي اين اكشن هم مشخصه و نيازي به توضيح نيست!
کد:
return[expression]
return
داده هاي مربوط به فانكشن رو به برنامه اصلي بر ميگردونه!
کد:
object.method = function ([parameters]) {
...body of function...
};
کارهایی که عناصر می توانند انجام دهند را متد می گوییم هر دسته متد های مخصوص به خود را دارد مثلا دسته موی کلیپ متدهایی مثلduplicatedmovie دوبل کردن و دسته تاریخ متدی مثلgetdateدارد این اکشن متد به شما اجازه می دهد که متدهای مختلف را به object های خود تعریف کنید
در قسمت objectها بطور مفصل درباره method هاي مختلف بحث مي کنيم
__________________
در ادامه اکشن ها به miscellaneous actions می رسیم
setInterval با استفاده از اين اكشن مي توان توابع را در فواصل زماني معين احضار كرد
بطور مثال می خواهیم فیلم هر 3 ثانیه یک فرم جلو برود ار روش زیر استفاده می کنیم:
فیلمی به تعداد 5 key frame می سازیم در هر فریم شکل متفاوت ایجاد می کنیم
لایه دیگری به همان تعداد فریم ساخته فریم اول را انتخاب کرده پنل اکشن را باز می کنیم
از قسمت actions>misecellaneous actions>setInterval را انتخاب کرده و نام تابع بطور مثال ( goto ) ویرگول میزان وقفه ( مثلا 1000) را وارد کنید
دستور actions>user-defiend Function >function را انتخاب کنید اسم تابع ( goto )را در قسمت name وارد کرده و عملی که می خواهید در فواصل زمانی خاص اجرا شود را تعیین کنید ( ()nextFrame)
کلیپ را امتحان کنید همونطور که می بینید هر 1 ثانیه فیلم یک فریم جلو می رود
کد:
stop();
setInterval(goto, 1000);
function goto() {
nextFrame();
}
روش دوم : همین کار را می توان با روش دیگری هم انجام داد مثل تمرین قبل دو لایه را بسازید اما در اکشن فریم اول setInterval را انتخاب کرده در قسمت expression کد زیر را بنویسید:
کد:
(_root,"nextframe",1000)
فیلم را امتحان کنید نتایج با روش قبل یکی است
clearinterval:
این اکشن عمل serinterval را حذف می کند یعنی اعمال متوالی احضار شده متوقف می شود
فقط توجه کنید که اول باید setInterval را نامگذاری کنید
مثال : از تمرین قبل برای این مثال استفاده می کنیم
دستور setInterval را حذف کنید به مسیر actions>variable رفته و دستور set variable را انتخاب کنید در قسمت variable نام دلخواهی مانند mymovie انتخاب کنید و expression را تیک زده و دستور setInterval را مثل قبل بنویسید
کد شما باید شبیه شکل زیر شده باشه:
کد:
stop();
mymovie = setInterval(_root,"nextframe",1000);
;
حالا یه لایه دیگه ایجاد کنید و روی آن یک نمونه دکمه بسازید و اکشن clearInterval را به آن نسبت دهید
در قسمت parameters نامی که به intervalخود نسبت دادید وارد کنید ( اینجا mymovie)
کد شما بصورت زیر است:
کد:
on (release) {
clearInterval(mymovie);
}
کلیپ را امتحان کنید هر جا دکمه زده شود حرکت متوقف می شود یعنی interval شما حذف شده است
ادامه دستورات miscellaneous actions
include#: از این دستور برای وارد کردن اکشن ها از یک فایل متن خارجی استفاده می کنیم
trace: با استفاده از این دستور می توان مقدار یک متغیر را فریم خاصی را رد یابی کرد و مورد بررسی قرار داد مثلا می توانید مشخص کنید که با رسیدن فیلم به فریم خاصی پیغام مورد نظر شما نمایش داده شود موقع تست فیلم اگر پیغام نمایش پیدا نکرد یعنی اکشن شما خطا دارد و هنگام استفاده از trace نتیجه رد یابی روی پنجره out put نشان داده می شود
برای اینکار:
ابتدا باید فریم کلیدی یا آبجکت مورد نظر خود را انتخاب کنید ( برای رد یابی )
اکشن trace را انتحاب کرده و در قسمت message پیام مورد نظرتان را که می خواهید نمایش داده شود وارد کند
برای ردیابی متغیر نام آنرا وارد کنید expression را تیک بزنید
comments: وقتی شما یک action پیچیده نوشته اید یا می خواهید فایل خود را منتشر کنید ضروریاست که برای هر خط اکشن یک توضیح کوتاه بنویسید تا مانع سردرگمی خود یا شخصی که فایل شما را مورد بررسی قرار می دهد شوید توجه داشته باشید که این توضیحات جز اکشن های شما محسوب نمی شود و هنگام پخش ویدیو تاثیری روی ان نخواهد گداشت و صرفا محض اطلاع رسانی است
برای اینکار پس از نوشتن کد مخصوص شی یا فریم روی دستور comment دابل کلیک کرده و توضیح دلخواه را وارد کنید
توضیح بصورت طوسی کمرنگ جلوی قطعه کد شما نوشته خواهد شد
initclip#: به ابتدای بلوک کد برای مقدار دهی اولیه اشاره میکند که با این روش می توان محتویات جدید در آن ایجاد کرد بطور مثال شما یک چک باکس دارید و می خواهید اطلاعات آن پاک شده و دوباره مقداردهی شود
endinitclip#: به انتهای بلوک کد برای مقدار دهی اولیه اشاره میکند برای ایجاد محتویات جدید
کد:
#initclip
...component initialization actions go here...
#endinitclip
دسته ها :
پنج شنبه اول 4 1385