PDA

View Full Version : اجرای فایل های فلش یکی پس از دیگری بصورت اتوماتیک



bahar_engineer
شنبه 15 فروردین 1388, 17:32 عصر
می خوام چند تا فایل فلش را بصورت اتوماتیک با زدن یک play نمایش دهد . یعنی فلش اول که تمام شد فلش دوم آغاز شود بدون اینکه نیاز به play یا فشردن دکمه ای باشد.

می دونم که باید نام فایل ها رو توی یک آرایه ذخیره کنم اما از کجا تشخیص بدم فایل فلش کی تموم می شه ؟ و چطور بصورت اتوماتیک فایل بعدی شروع کنه به اجرا؟

ممنونم

newgoldenman
یک شنبه 16 فروردین 1388, 01:10 صبح
سلام دوست فلش كار عزیز!
خیلی راحته.
1: تعداد فریم های فلش اول رو بدست بیارید.
2: توی یك تایمر یا یك Thread چك كنید كه كی میرسیم به فریم آخر.
3: اگر به فریم آخر رسیدیم، این فایل رو ببندیم و فایل بعدی رو بارگزاری كنیم.

(همه ی توابع و مقادیر مورد نیاز برای اینكار كه توضیح دادم، توی كلاس شیء فلشتون هست.)
موفق باشید.

bahar_engineer
سه شنبه 18 فروردین 1388, 14:53 عصر
سلام ضمن تشکر از پاسخ ها ...
فلش های من بصورت تک صفحه هستند یعنی تنها 1 فریم دارند.
به عبارتی 366 داستان است که هر کدام بصورت یک فلش جداگانه یک صفحه ای درآمده اند.

حالا برای اجرای پشت سر هم اسم فلش ها را در آرایه ای قرار دادم. اما برای اینکه مثلاً بعد از 5 دقیقه فلش اول بسته شود و فلش دوم به جای آن اجرا شود... هر کدی می دم انجام نمی شه
در واقع یه حلقه می خواد که بعد از 5 دقیقه فلش شماره i به فلش شماره ++i تبدیل بشه



axShockwaveFlash1.Movie = Application.StartupPath + @"\story\" + myflash[i] + ".swf";


کد من اینه اما حلقه کار نمی کنه ...(کد حلقه رو نذاشتم اما ساده است فقط یه حلقه for که شمارنده اون از 0 شروع می شه تا مثلاً 5 برای 5 فلش اول که تست بشه. حالا اگه مثلاً تایمر رسید به 500 فلش دوم اجرا بشه ... اما نمی شه) وقتی اجرا می شه فلش شماره 4 نمایش داده می شه و بدون تغییر باقی می مونه

از datetime هم خواستم استفاده کنم که هر بار datetime.now.minute + 5 شد فلش عوض بشه اما نمی شه

please help
thx

newgoldenman
سه شنبه 18 فروردین 1388, 15:28 عصر
سلام. خواهش میكنم....
عرضم به حضورتون كه، كاش تیكه كد تایمرتون هم قرار میدادین. این جملتون و در ادامه اش این یكی:

(کد حلقه رو نذاشتم اما ساده است فقط یه حلقه for که شمارنده اون از 0 شروع می شه تا مثلاً 5 برای 5 فلش اول که تست بشه. حالا اگه مثلاً تایمر رسید به 500 فلش دوم اجرا بشه ... اما نمی شه) وقتی اجرا می شه فلش شماره 4 نمایش داده می شه و بدون تغییر باقی می مونه

از datetime هم خواستم استفاده کنم که هر بار datetime.now.minute + 5 شد فلش عوض بشه اما نمی شه

این تیكه كه بولد كردم، معنیش اینه كه مشكل از تایمرتونه.
شما یه كاری كن! :
1: یه دكمه برزار روی فرمت، وقتی كه میزنی روش، فایلو عوض كنه!
2: اگه عوض شد كه هیچی، مشكل از تایمره 100% و تیكه كدت رو بگو تا رفعش كنیم ایشالا!
3: اگه درست نشد‌(كه بعیده!) بگو تا نسخه ی آخرمو بپیچم برات! :دی

موفق باشید.

bahar_engineer
سه شنبه 18 فروردین 1388, 16:33 عصر
بله ممنون وقتی button گذاشتم درست کار می کنه .
مشکل اینکه فلش شماره 4 رو هم نمایش می داد حل شد ... مشکل از مقدار دهی آرایه و شمارنده i بود... چون من فلش هام از شماره 2 شروع می شن...

الان تنها مسئله اینه که هنوز تایمر کار نمی کنه من کدشو می ذارم


private int second = 0;

private void timer1_Tick(object sender, EventArgs e)
{
second += 1;
label1.Text = second.ToString();
}
اینم کد لود فرم :



private void mainpage_Load(object sender, EventArgs e)
{
timer1.Enabled = true;
timer1.Interval = 100;

if (second > 100)

i = 1;
axShockwaveFlash1.Movie = Application.StartupPath + @"\story\" + myflash[i] + ".swf";

}
این دستور if خیلی ساده است دیگه ساده تر از این نمی شه اما باز هم عمل نمی کنه و i مقدارش تغییر نمی کنه

آیا می تونه مشکل از second باشه ؟ آخه مقدار اولیش صفره و در تابع تایمر مقدارش افزایش پیدا می کنه ...

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

یه دنیا ممنون:لبخندساده:

bahar_engineer
چهارشنبه 19 فروردین 1388, 14:47 عصر
درست شد ::تشویق:
در لود فرم می نویسیم :


private void mainpage_Load(object sender, EventArgs e)
{
timer1.Enabled = true;
timer1.Interval = 1200;
}


و در رویداد کلیک تایمر می نویسیم :


private void timer1_Tick(object sender, EventArgs e)
{
second += 1;
label1.Text = second.ToString();
if (second == 100)
{
i += 1;
second = 0;
}
axShockwaveFlash1.Movie = Application.StartupPath + @"\story\" + myflash[i] + ".swf";
}


حالا بعد از حدود 2 دقیقه فلش ها عوض می شن:متفکر:
اگه بخواین زودتر فلش ها عوض بشن timer1.interval=500 و یا هر عددی کمتر از 1200
و اگه بخواین بیشتر فلش ها روی صفحه بمانند مقدار فوق را بیشتر از 1200 می دهیم.

با تشکر:چشمک: