رفتن به مطلب
  • 0

پخش چند عکس بصورت انمیشن


hossein92

سوال

با سلام

بنده میخوام 10 تا عکس رو به صورت پشت سر هم و توی ی زمان خاص روی یک پنل لود کنم تا به صورت انمیشن نمایش داده بشه . این کدم پیدا کردم و لی ی ارور داره که نمیدونم چجوری حلش کنم لطفا ست کنین و ببینی مشکل از کجاست

Sub Process_GlobalsEnd Sub


Sub Globals
Dim timer2 As Timer
Dim	i As Int
Private Panel1 As Panel
Dim btm(12) As Bitmap
End Sub


Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("mp1")
For i = 0 To 11
	btm(i).InitializeSample(File.DirAssets,i&".png",Activity.Width,Activity.Height)
Next
timer2.Initialize("timer2",1000)
timer2.Enabled = True 


For i = 0 To 11
	btm(i).InitializeSample(File.DirAssets,i&".png",Activity.Width,Activity.Height)
Next
End Sub




Sub Timer2_Tick
Panel1.SetBackgroundImage(btm(i))
Log(i)
i = i + 1
If i=11 Then
	i=0
End If
End Sub

اروریم که میده اینه .

btm not initialaze

لینک ارسال
به اشتراک گذاری در سایت های دیگر

6 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

سلام

کجای برنامت دقیقا ارور میده و چه اروری میده؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

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

attachment.php?attachmentid=2217&stc=1

سورس هم پیوست میکنم .

ی سوروس دیگه هم دارم که کار میکنه ولی حافظه رم زیاد اشغال میکنه این کد حافظه رمو کمتر اشغال میکنه طبق گفته خودشون

animation.rar

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بنده راهنمایی میکنم شما توی سورس اعمال کنید.

اولا چرا 2 دفه اومدید متغییر BTM رو توی دوتا حلقه اینیشیالیز کردید ؟ *r24*

دوما شما اومدی تایمرو قبل اینیشیالیز کردن فعال کردید که کد تایمر هم مربوط میشه به بکگراند پنل که از btm استفاده شده و btm هم اینیشیالیز نشده.

یه دونه حلقه رو پتک کنید.بعد از کد حلقه یعنی خارج از حلقه بیایید تایمر رو اینیشیالیز و فعال کنید.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ببخشید کد اشتباه کپی کرده بودم حواسم نبود.

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

Sub Globals	
Dim timer2 As Timer


Dim	i As Int
Private 
Panel1 As Panel


Dim btm(11) As Bitmap


End Sub


Sub Activity_Create(FirstTime As Boolean)


'Do not forget to load the layout file created with the visual designer. For example:


Activity.LoadLayout("a1")




For i = 0 To 9

btm(i).InitializeSample(File.DirAssets,i&".png",Activity.Width,Activity.Height)


Next


timer2.Initialize("timer2",1000)


timer2.Enabled = True  






End Sub


Sub Timer2_Tick


Panel1.SetBackgroundImage(LoadBitmapSample(File.DirAssets,i&".png",Activity.Width,Activity.Height))


Log(i)


i = i + 1


If i=10 Then


	i=1


End If


End Sub

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ّبینید شما یک متغییر رو 2جا استفاده نکنید.همون متغییر رو هم اومدید توی حلقه و هم تایمر استفاده کردید.

بهتره که جداگونه تعریف کنید.یکی واسه شمارنده حلقه و یکی دیگه هم واسه شمارنده تایمر.

در ضمن من نمیفهمم شما اومدی عکسارو توی بیتمپ ریختین باز توی تایمر دوباره عکسارو جدا به پنل دادید.شما میتونید همون بیتمپ رو اندیسشو طبق شمارنده که هر دقعه میایید اضافه میکنید عوض کنید.

بعد توی قسمت سایز دادن به عکس بهتره که از 100%x و 100%y استفده کنی به جای Activity.Witdh و Activity.Height.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

آقای آرتا خیلی ممنون.

ببخشید من امروز کلا قاطی کردم یکم مریض احوالم .

مشکل حل شد سورس پیوست میکنم تا دوستان استفاده کنن

animation.rar

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

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

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...