آموزش مولتی مدیا بیلدر قسمت هفتم Multi Media Builder

ارسالی عباس

Script های مربوط به زمان

این ها script   هایی هستند که مربوط به زمان هستند .

PageTimer(“”,””)

ExitTimer(“”)

ScriptTimer(“”,””)

RunScript(“”)

Pause(“”)

Return()

Refresh()

در آموزش های قبلی برخی از این کد ها استفاده کردیم اما در این بخش بیشتر به این script ها می پردازیم :

PageTimer(“ms”,”PageLabel”)

با اجرای این کد می توان پس از زمانی که تعیین می کنید به صفحه مورد نظر بروید . مثلا در این کد پس از گذشت 1000 میلی ثانیه (1 ثانیه) به صفحه ای که با Label آن را در قسمت دوم نوشته ایم (در اینجاpage 2  ) می رود :

PageTimer(“1000″,”Page 2”)

ExitTimer(“ms”)

این یک تایمر است که پس از گذشتن زمان مشخص شده پنجره بسته می شود (عمل Exit() انجام می شود) . در این کد پس از کذشتن یک دقیقه پس از اجرای این Script پنجره بسته خواهد شد .

ExitTimer(“60000”)

ScriptTimer(“ObjectLabel”,”ms”)

پس از گذشتن زمان تعیین شده Script مورد نظر اجرا می شود . در اینجا فقط منظور شئ Script نیست این کد مربوط به هر شئی که بتوان در آن Script مورد نظر خودتان را وارد کنید مثلا Text Button ، Rectangle و… می باشد . در قسمت اول نام شئ و در قسمت دوم زمان را می نویسیم . در مثال شئی با نام Script پس از 1 ثانیه اجرا می شود .

ScriptTimer(“Script”,”1000″)

RunScript(“ObjectLabel”)

این کد مانند کد بالا عمل می کند با این تفاوت که بلافاصله Script را اجرا می کند .

RunScript(“Script”)

Pause(“ms”)

می انید که برای اجرای کد ها ، آنها از بالا به پایین خوانده می شود (بدون هیچ وقفه ای) . از این دستور برای وقفه در بین خطوط کد ها استفاده می شود .

Return()

اگر خطوط Script ها را مانند یک رشته سیم فرض کنیم ، دستور Return مانند کلیدی است که  این ارتباط و رسانایی بین رشته ها را قطع می کند . یا وقتی به این خط رسید بقیه خط ها را نمی خواند . از اینscript  می توانید در دستور شرطی If یا حلقه for استفاده کنید .

Refresh()

تقریبا از اسم این کد می توان به طرز کار آن پی برد . این Script در حلقه ها بسیار مفید است . مثلا در یک حلقه Normal در هنگام شمارش شما نمی توانید از کلید های دیگر استفاده کند . اما اگر در حلقه خود Refresh را جای دهید این مشکل برطرطرف می شود .

برای اجرای کد های نمونه زیر ، یک Text با نام Counter ایجاد کنید .

یک حلقه با Refresh :

For n=1 To 100000

  i=n

  DisplayValue(“Counter”,”i”)

  Refresh()

Next n

یک حلقه Normal  :

For n=1 To 100000

  i=n

  DisplayValue(“Counter”,”i”)

Next n

تغییری که در اجرای این دو حلقه وجود دارد کاملا محسوس است .

جواب سوالها :

سوال 1 . تمرین N خط صفحه را به چند قسمت تقسیم می کند را طوری بنویسید که اگر عدد ورودی از 0 کمتر بود پیامی با این مضمون که “عدد را اشتباه وارد کرده اید ، دوباره تلاش کنید”  ظاهر شود .

جواب : یک دستور شرطی If به آن اضافه می کنیم . دستور زیر مربوط به کلید است :

i=0

p=1

If (A>0) Then

  For 1 To A

    i=i+1

    p=p+i

  Next

  DisplayValue(“Answer”,”p”)

Else

  Message(“The number is not correct , try again .”,””)

End

سوال 2 . ساعتی بسازید که ساعت ، دقیقه و ثانیه را وارد می کنیم و در همان زمانی که ما مشخص کردیم  یک موسیقی پخش کند . (برای پخش موسیقی از این Action script استفاده کنید : AudioOpen(“”) ) .

جواب : اول یک ساعت با قرار دادن CBK_TimeHMS در Label متن (Text) مورد نظر بسازید . بعد 3 تا InputText درست می کنیم تا ساعت ، دقیقه و ثانیه مورد نظر را در آنها ثبت کنیم . در Properties آنها ، دکمه رادیویی Integer را انتخاب و نام های Hour ، Min  و Sec را برای آن ها انتخاب کنید . حالا یک دکمه بسازید که در آن دستور یک Script به نام TimeSet را اجرا می کند . کار این Script این خواهد بود که زمان وارد شده در TextInput ها را با زمان فعلی مطابقت دهد . همچنین این Script باید هر ثانیه اجر شود تا بتواند زمان را تشخیص دهد . پس برای دکمه می نویسیم :

RunScript(“TimeSet”)

و برای <;span style=”font-family: Tahoma”>Script می نویسیم  :

H=CBK_Hour

M=CBK_Minute

S=CBK_Second

If (Hour=H) Then

  If (Min=M) Then

    If (Sec=S) Then

AudioOpen(“E:MusicsMansourThe Fugitive.mp3”)

    End

  End

End

ScriptTimer(“TimeSet”,”1000″)

در 3 خط اول ساعت ، دقیه و ثانیه را به  3 تا Integer نسبت میدهیم که در مراحل بعدی اسکریپت نویسی آسان تر باشد . دستور شرطی If هم در اینجا به این شکل کار می کند که اول ساعت را با ساعت کامپیوتر مقایسه می کند اگر مساوی بودند به سراغ دقیقه و پس از آن ثانیه می رود و اگر ثانیه هم درست بود دستور را اجرا می کند . در خط آخر هم پس از 1 ثانیه دوباره خودش را اجرا میکند .

سوال 3 . یک کلید بسازید که نام آن Play است . با کلیک کردن روی آن یک موسیقی پخش می شود و همچنین نام آن به Stop تغییر می کند که با کلیک کردن دو باره موسیقی قطع می شود . (برای قطع شدن موسیقی از این Action script استفاده کنید : AudioStop(“”) ) .

یک ترفندی که در اینجا می تونیم به کار ببریم این است که به هر کدام از حالت ها یک عدد نسبت دهیم  مثلا  یک عدد صحیح (Integer) تعریف می کنیم و برای حالت Play آن عدد 0 و برای حالت Stop عدد 1 را در نظر می گیریم . در اینجا نام عدد صحیح (Integer) ، play است . برای اینکه اولین بار که روی دکمه کلیک می کنید ، موسیقی پخش شود ، در قسمت Script مربوط به Properties صفحه ینویسید :  play=0

نام دکمه را هم به Play تغییر دهید و این کد هارا در قسمت Script دکمه بنویسید :

If (play=0) Then

AudioOpen(“e:eethovenmoon shine.mp3”)

  AudioPlay()

  name$=’Stop’

  LoadText(“TextBTN”,”name$”)

  play=1

  Return()

End

If (play=1) Then

  AudioStop()

  name$=’Play’

  LoadText(“TextBTN”,”name$”)

  play=0

End

در اینجا فرض شده که موسیقی ای باز نشده پس اول موسیقی را باز می کنیم و سپس آن را Play می کنیم . اما اگر بخواهیم به جای STOP از Pause استفاده کنیم یعنی از این Script استفاده کنیم : AudioPause()، باز هم از اول موسیقی اجرا خواهد شد .برای رفع این مشکل می توانیم دستور AudioOpen را در قسمت Script صفحه قرار دهیم ، و بعد از آن دستور Stop را می آوریم تا فورا موسیقی Stop شود . به این شکل :

play=0

AudioOpen(“e:eethovenmoon shine.mp3”)

AudioPause()

و در قسمت Script دکمه هم کد های زیر را می نوسیم :

If (play=0) Then

  AudioPlay()

  name$=’Stop’

  LoadText(“TextBTN”,”name$”)

  play=1

  Return()

End

If (play=1) Then

  AudioPause()

  name$=’Play’

  LoadText(“TextBTN”,”name$”)

  play=0

End

 

سوال 4 . برنامه ای بسازید که مینیمم وماکزیمم بین دو عدد را به  دست آورد و در دو خروجی مجزا (Text) نمایش دهد .

این نسبت به 3 تا قبلی آسون تره !

اول دو تا Text ایجاد کنید و نام آنها را Min و Max بگذارید. دو تا InputText هم بسازید ، آنها را به شکل Float تعریف کنید (در Properties قسمت Output گزینه Float را انتخاب کنید ) و نام آن ها (قسمت Output در Properties) را A1 و A2 بگذارید . یک دکمه هم بسازید و کد های زیر را در آن وارد کنید:

If (A1>A2) Then

  DisplayValue(“Max”,”A1″)

  DisplayValue(“Min”,”A2″)

End

If (A2>A1) Then

  DisplayValue(“Max”,”A2″)

  DisplayValue(“Min”,”A1″)

End

اما اگر هر دو مساوی باشند عددی برای نمایش در Min و Max نخواهد داشت . اگر این کد را وارد کنید در Min و Max می نویسد که دو عدد مساوی هستند .

If (A1>A2) Then

  DisplayValue(“Max”,”A1″)

  DisplayValue(“Min”,”A2″)

End

If (A2>A1) Then

  DisplayValue(“Max”,”A2″)

  DisplayValue(“Min”,”A1″)

End

If (A1=A2) Then

  Equl$=CHAR(A1)+’ = ‘+CHAR(A2)

  DisplayValue(“Max”,”Equl$”)

  DisplayValue(“Min”,”Equl$”)

End

سوال 5 . برنامه ای بسازید که با وارد کردن 3 عدد به عنوان 3 ضلع مثلث بگوید که این مثلث قائم الزاویه هست با نه ؟ (با استفاده از قضیه فیثاغورس)

برای ورودی 3 عدد 3 تا Text Input بسازید و برای خروجی آن حالت Integer و نام های A ،B  و C بگذارید . می خواهیم برنامه را طبق قضیه فیثاغورس بنویسیم :

<!–[if !vml]–><!–[endif]–>

اول با دستور شرطی مینویسیم که آیا مجذور A مساوی مجذور B به اضافه C  است یا نه . اگر مساوی بود که پیامی ظاهر می شود و می گوید که مثلث قائمه است ، اگر مساوی نبود می بیند که آیا مجذور B مساوی مجذور C به اضافه A  است یا نه و به همین شکل ادامه پیدا می کند و اگر 3 ضلع توانایی  ساخت مثلث قائمه را نداشتن با پیامی به ما هشدار می دهد .

یک کلید بسازید و این دستور ها را به آن بدهید :

Yes$=’Yessss’

No$=’No’

If (A^2=B^2+C^2) Then

  Message(“”,”Yes$”)

Else

  If (B^2=A^2+C^2) Then

    Message(“”,”Yes$”)

  Else

    If (C^2=A^2+B^2) Then

      Message(“”,”Yes$”)

    Else

      Message(“”,”No$”)

    End

  End

End

سوال 6 . یک برنامه که پنجره فرمت ویندوز را 100000 بار در ثانیه نشان دهد !

خیلی آسونه و البته زیاد نتیجه جالبی ندارد (می تونید امتحان کنید) حالا من 100 بار می زنم خودتون اگه خواستید 100000 بار بزنید (اما نزنین بهتره) .

For 1 To 100

  Run(“rundll32.exe”,”shell32.dll,SHFormatDrive”)

  Refresh()

Next

همون طور که میبینید بیشتر سوالها در مورد دستور If است و فقط 2 تا از اونها درباره For است . این قسمت چون می

خواستم به سوال  ها جواب بدهم بخش آموزشی این مقاله کمتر شد (اما خود سوال ها هم آموزشی اند ) .

درباره abbas

اینرا هم چک کنید

کارگاه آموزشی وبلاگ سازی و رسانه های اجتماعی از سوی مجله فانوس در ولایت بلخ برگزار شد

مجله فانوس به سلسه برنامه ها و فعالیت های ظرفیت پروری و حمایت جوانان و …

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *