• ¡Welcome to Square Theme!
  • This news are in header template.
  • Please ignore this message.
مهمان عزیز خوش‌آمدید. ورود عضــویت


امتیاز موضوع:
  • 6 رای - 1.33 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
Title: سوال در مورد حرکت اجزاء (translate)
حالت موضوعی
#1
Question 
سلام به تمامی دوستان
من یک عکس در imageview قرار دادم و وقتی با دستور translate روی imageview کلیک میشه به عنوان مثال از x,y = 0,0 به x,y=100,100 حرکت میکنه تا اینجا رو بلدم اما نکته اینجاست که میخوام پس از رفتن به مختصات 100و100 در صورتی که دوباره روی imageview کلیک شد به مکان اولیه برگرده یعنی مختصات 0,0
به بیان ساده تر:
کلیک>حرکت از A به B
کلیک مجدد>حرکت از B به A

ممنون میشم اگر دوستان راهنمایی بفرمایند.
 
پاسخ
#2
دوست عزیز! خسته نباشید !

شما چرا از دستور شرطی استفاده نمی کنید؟

مثلا

کد:
if imageview1.left = 0 then
imageview1.left = 100
else if imageview1.left = 100 then
imageview1.left = 0
end if
یا از دستور Select Case
کد:
select case imageview1.left
case 0
imageview1.left = 100
case 100
imageview1.left = 0
end select

موفق باشید ...
:::::::::::::::::::::::::   دیگه میرم ...   :::::::::::::::::::::::::

 
پاسخ
#3
(09-18-2014، 06:15 PM)Thewolf نوشته: دوست عزیز! خسته نباشید !

شما چرا از دستور شرطی استفاده نمی کنید؟

مثلا


کد:
if imageview1.left = 0 then
imageview1.left = 100
else if imageview1.left = 100 then
imageview1.left = 0
end if
یا از دستور Select Case

کد:
select case imageview1.left
case 0
imageview1.left = 100
case 100
imageview1.left = 0
end select

موفق باشید ...

سلام
از راهنماییتون بسیار سپاسگزارم. روش شما بسیار ساده و خوب بود و در چند مورد دیگه کمکم کرد اما دوتا مشکل دارم. اول اینکه تو این کد ها نتونستم حرکت پایین به بالا و برعکس رو تعریف کنم. استفاده از متغیر TOP هم جواب نداد، شاید هم من درست استفاده نکردم. و مشکل دوم اینکه من میخوام حرکت فریم به فریم باشه (slide)، اما توی این دستورات، جابجایی بصورت صفر و یک انجام میشه یعنی مختصات اول به مختصات دوم، و حرکت اسلاید اتفاق نمیوفته.
ممنون میشم اگر باز هم راهنمایی بفرمایید.
 
پاسخ
#4
نقل قول:درود
از راهنماییتون بسیار سپاسگزارم. روش شما بسیار ساده و خوب بود و در چند مورد دیگه کمکم کرد اما دوتا مشکل دارم. اول اینکه تو این کد ها نتونستم حرکت پایین به بالا و برعکس رو تعریف کنم. استفاده از متغیر TOP هم جواب نداد، شاید هم من درست استفاده نکردم. و مشکل دوم اینکه من میخوام حرکت فریم به فریم باشه (slide)، اما توی این دستورات، جابجایی بصورت صفر و یک انجام میشه یعنی مختصات اول به مختصات دوم، و حرکت اسلاید اتفاق نمیوفته.
سپاسگزار میشم اگر باز هم راهنمایی بفرمایید.
دوست من !!! شما در سوالتون اول اینو نگفته بودید ولی به هر حال ...

شما میتونید از کتابخانه Animation استفاده کنید. با استفاده از Animation.InitializeTranslate میتونید تصویر رو جابه جا کنید.

کد:
dim ani as animation
ani.InitializeTranslate("ani",0,0,100,100)
ani.Duration = 1000
ani.RepeatCount = 0
ani.RepeatMode = ani.REPEAT_REVERSE
ImageView1.Tag = ani
ani.Start(imageview1)
با کد بالا تصویر به مختصات 100 چپ و 100 بالا جابه جا میشه!!! به صورت فریم به فریم در طول 1000 میلی ثانیه!!!

اگه کتابخانه هم نداشتید میتونید تو بخش کتابخانه سایت بگردید هست یا اگه نتونستید بگید خودم میذارم همین جا!!!

موفق باشید ...
:::::::::::::::::::::::::   دیگه میرم ...   :::::::::::::::::::::::::

 
پاسخ
#5
(09-20-2014، 11:24 AM)Thewolf نوشته: شما میتونید از کتابخانه Animation استفاده کنید. با استفاده از Animation.InitializeTranslate میتونید تصویر رو جابه جا کنید.


کد:
dim ani as animation
ani.InitializeTranslate("ani",0,0,100,100)
ani.Duration = 1000
ani.RepeatCount = 0
ani.RepeatMode = ani.REPEAT_REVERSE
ImageView1.Tag = ani
ani.Start(imageview1)
با کد بالا تصویر به مختصات 100 چپ و 100 بالا جابه جا میشه!!! به صورت فریم به فریم در طول 1000 میلی ثانیه!!!

اگه کتابخانه هم نداشتید میتونید تو بخش کتابخانه سایت بگردید هست یا اگه نتونستید بگید خودم میذارم همین جا!!!

موفق باشید ...

سلام مجدد، من قبلا از translate و کتابخانه animation استفاده کردم ولی مشکل اینجاست که بعد از اتمام حرکت در صورت کلیک مجدد به مکان اول برنمیگرده و همینطور با هر بار کلیک دستور اول رو اجرا میکنه تا اینکه آیتم آبجکت از صفحه خارج میشه. توی کدهای شما reverse داشت ولی برنمیگردوند به مکان اول.
درضمن من برای توقف در مکان نهایی پس از حرکت از کد زیر استفاده کردم که جواب میده:
Sub a1_animationEnd

ImageView2.top=ImageView2.Top-100

End Sub


بازهم ممنون میشم اگر مثل قبل راهنمایی بفرمایید.
 
پاسخ
#6
نقل قول:درود مجدد، من قبلا از translate و کتابخانه animation استفاده کردم ولی مشکل اینجاست که بعد از اتمام حرکت در صورت کلیک مجدد به مکان اول برنمیگرده و همینطور با هر بار کلیک دستور اول رو اجرا میکنه تا اینکه آیتم آبجکت از صفحه خارج میشه. توی کدهای شما reverse داشت ولی برنمیگردوند به مکان اول.
درضمن من برای توقف در مکان نهایی پس از حرکت از کد زیر استفاده کردم که جواب میده:
Sub a1_animationEnd

ImageView2.top=ImageView2.Top-100

End Sub


بازهم سپاسگزار میشم اگر مثل قبل راهنمایی بفرمایید.

بله درسته واسه اینکه به اول نیاد کد بالا هست ولی همنطور که گفتید هی ادامه میده و از صفحه خارج میشه!

من یه راه ساده میگم که خودم به ذهنم رسید!!! ولی فک کنم راه های بهتری تو فروم خود برنامه باشه! ولی خب این به نظرم راحت و بی دردسره!!!

باید یه متغیر تعریف شه و در هر بار تغییر مکان تصویر اون متغیر تغییر پیدا کنه!
وقتی که متغیر تغییر میکنه با استفاده از IF دوباره Animation رو اینتلایز میکنیم!
من کد شما رو تغییر دادم تا بشه به برنامه فهموند که الان باید تصویر برگرده سر جاش نه بره جلو!
کد های قسمت Sub Globals
کد:
Sub Globals
Dim ani As Animation
Private ImageView1 As ImageView
Dim Now
End Sub

کدهای قسمت Sub Activity_Create
کد:
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("Main")
ImageView1.Top = 0
ani.InitializeTranslate("ani",0,0,0,100)
ani.Duration = 1000
ani.RepeatCount = 0
ani.RepeatMode = ani.REPEAT_REVERSE
ImageView1.Tag = ani
Now = "0"
End Sub

کدهای قسمت Activity_Click برای اجرای دستور
کد:
Sub Activity_Click
ani.Start(ImageView1)
End Sub

کدهای قسمت ani_AnimationEnd
کد:
Sub ani_AnimationEnd
If Now = "0" Then
ImageView1.Top = 100
ani.InitializeTranslate("ani",0,0,0,-100)
ani.Duration = 1000
ani.RepeatCount = 0
Now = "100"
Return True
End If
If Now = "100" Then
ImageView1.Top = 0
ani.InitializeTranslate("ani",0,0,0,100)
ani.Duration = 1000
ani.RepeatCount = 0
Now = "0"
Return True
End If
End Sub


سورس هم پیوست کردم که دیگه کامله!!! اگه مشکلی بود در خدمتم ...
موفق باشید ...


فایل‌های پیوست
.zip   ExampleAnimation.zip (اندازه 345.01 KB / تعداد دانلود: 15)
:::::::::::::::::::::::::   دیگه میرم ...   :::::::::::::::::::::::::

 
پاسخ
#7
سلام و عرض ادب
ازتون ممنونم با تغییر اندکی در کد های شما مشکل حل شد. بسیار بسیار سپاسگزارم.

تغییرات از این قرار بود:
حذف دستورات
'ani.RepeatCount = 0

'ani.RepeatMode = ani.REPEAT_REVERSE
'ImageView2.Tag = a1
از قسمت
Sub Activity_Create
و همچنین
حذف دستورات
'ani.RepeatCount = 0
از قسمت
Sub ani_animationEnd
----------------------------------------------
باز هم از لطفتون بی نهایت سپاسگزارم
درضمن دستور حضرتعالی در msgbox با کمال میل انجام پذیرفت  Rolleyes


به امید ارتباط مجدد
شاد و سربلند باشید rose
 
پاسخ
  


موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  راهنمایی در مورد سفارشی سازی لیست ویو miladint 4 9,074 01-19-2015، 06:51 PM
آخرین ارسال: Amin_Mansouri
  2 تا سوال داشتم فورررری iman3580 5 6,236 04-15-2014، 10:40 AM
آخرین ارسال: iman3580
  راهنمایی در مورد گرفتن اطلاعات از table overkit 0 2,699 04-14-2014، 05:01 PM
آخرین ارسال: overkit
  توضیحی در مورد gps omid_student 0 2,607 10-28-2013، 02:36 PM
آخرین ارسال: omid_student
  سوال : ساخت مسیچ باکس سفارشی milad.coder 1 4,225 06-18-2013، 05:45 PM
آخرین ارسال: Amin_Mansouri
  چنتا سوال در مورد اشترک گذاری در basic4android p30rayan 3 7,830 04-04-2013، 01:03 PM
آخرین ارسال: mohammad-alone

پرش به انجمن:


Browsing: 1 مهمان