نقل قول:درود مجدد، من قبلا از 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
سورس هم پیوست کردم که دیگه کامله!!! اگه مشکلی بود در خدمتم ...
موفق باشید ...