PDA

View Full Version : آموزش action script



linspire
چهارشنبه 13 اردیبهشت 1385, 13:31 عصر
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);
}

2222222222222222222
________________________________________
خوب بعد از متغیر ها می رسیم به حلقه های تکرار شونده و عبارات شرطی

کلا 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 شما حذف شده است
----------------------
منبع www.p3worlds.com

sajedi
یک شنبه 31 اردیبهشت 1385, 16:03 عصر
kheili mamnon chetor mitonam action scripto be sorate herfei yad begiram