کدهای مربوط به دراگ و دراپ کردن شی های MMB
نقل قول:
جناب قاهر ممنون از راهنمایی هاتون
من شنیده بودم برنامه های چند رسانه ای آموزشی رو هم میشه با mmb ساخت . حتی ساخت بازی های ساده هم با این نرم افزار ممکن هستش. پس چطور این کار ساده ممکن نیست؟؟؟
این کاری رو هم خواسته بودم در واقع قسمتی از بازی های ساده است که اشیاء رو بتوان با موس در صفحه جابجا کرد.
علیک سلام !
سرکار خانم رز ، شنیدن کی بود مانند دیدن ! :دی
من هم نــگفتم که غیر ممکن هست !
بفرمایید ، این هم یک برنامه ی ساده که با زبان MMB نوشته شده و خواسته ی شما رو براورده میکنه (اونم تا حدودی)
فقط مراحل زیر رو بپیمایید :
- یک پروژه ی جدید ایجاد کنید .
- یک شیء به دلخواه ( شیء های محدود MMB) را که میخواهید آن را دراگ کنید ، انتخاب کنید (در این مثال یک دکمه با نام Object) .
- سه اسکریپت (Script) به ترتیب با نام های ClickToggle ، DisplayVariables ، Moving ایجاد کنید .
- دو شیء Text به نام های Deltas ، Pos به برنامه اضافه کنید ( البته این مورد اختیاری است ولی من برنامهی مربوط به تغییر این نوشته ها را در اسکریپتی مینوسم)
خب ، اگر موارد بالا را به ترتیب انجام دادید ،محتویات اسکریپت ها را با کدهای مربوط به هر کدام پر کنید :
- محتویات اسکریپت ClickToggle :
کد:
If (clicked=TRUE) Then
clicked=FALSE
Else
clicked=TRUE
End
- محتویات اسکریپت DisplayVariables (اختیاری است که باشد یا نباشد ولی در این مثال هست ! ):
کد:
Delta$ ='(' + CHAR(DeltaX) + ',' + CHAR(DeltaY) + ')' + ' [' +CHAR(DeltaX_prin) + ',' + CHAR(DeltaY_prin) + ']'
DisplayValue("Deltas","Delta$")
x = ObjectX(Object)
y = ObjectY(Object)
Pos$ = 'Pos: (' + CHAR(x) + ',' + CHAR(y) + ')'
DisplayValue("Pos","Pos$")
کد:
objectX = MouseX() - DeltaX
objectY = MouseY() - DeltaY
If (clicked) Then
If (objectX > 0 & objectX + ObjectWidth < ClientWidth()) Then
If (objectY > 0 & objectY + ObjectHeight < ClientHeight())Then
MoveObject("Object","objectX,objectY")
RunScript("DisplayVariables")
End
End
Else
Return()
End
ScriptTimer("Moving","1")
روی شیء دلخواه خود (همان دکمه با نام Object) دوبار کلیک کرده و کد زیر را برای آن بنویسید .
کد:
DeltaX = MouseX() - ObjectX(Object)
DeltaY = MouseY() - ObjectY(Object)
DeltaX_prin = ObjectWidth(Object) - DeltaX
DeltaY_prin = ObjectHeight(Object) - DeltaY
ObjectWidth = ObjectWidth(Object)
ObjectHeight = ObjectHeight(Object)
RunScript("ClickToggle")
RunScript("DisplayVariables")
RunScript("Moving")
در کد بالا DeltaX_prin و DeltaY_prin فقط در جهت مقاصد نمایشی هستند .
حال اگر موارد بالا را به خوبی طی کرده باشید ، برنامه را اجرا کنید و با کلید روی شی خود آن را بکِشید (Drag-Drop) کنید .
اگر با مشکلی روبرو شدید ، بفرمایید .
تاپیک مباحث و سوالات Multimedia Builder
با نام خدا .
سلام دوستان . همونطوری که از اسمش معلوم برای سوالات و مباحث MMB طراحی شده . ممنون
دوستان ، تا اطلاع ثانویه هیچ پستی ندید .
این تاپیک رو برای دوستانی احداث کردم ، تا هر سوال و مسئله ای در مورد MMB دارند رو در این تاپیک مطرح کنند .
لطفا تا بعد از ایجاد تغییرات ، در این تاپیک پست ارسال نکنید .
اگر میخواهید که سوالات و مباحثتون دربارهی MMB رو مطرح کنید ، تا اطلاع ثانویه از این تاپیک استفاده کنید :
کد:
http://forum.p30world.com/showthread.php?t=328891
ممنون از توجهتون .