PDA

View Full Version : سوال: فایل فلش با بک گراند سفید. چرا بک گراند سفید پشت فلش نمایش می ده؟



bahar_engineer
چهارشنبه 07 مرداد 1388, 17:26 عصر
سلام

من یه فایل فلش دارم که برای نمایش اون از shock wave flash object استفاده می کنم... تا به حال با فایل های فلش مشکل نداشتم اما الان یه فلش دارم که تصویرشو ضمیمه کردم... من می خوام همینطوری توی صفحه ظاهر بشه با کلیک روی هر دکمه. اما بک گراند سفید براش می اندازه یعنی حالت transparent نداره

چکار باید بکنم؟

ببینید تصویر main.jpg تصویر اصلی هست که من هم می خوام فلشم به این شکل روی صفحه اجرا بشه

اما فلش من به شکل تصویر part1.jpg اجرا می شه و بک گراندش سفید می افته

bahar_engineer
پنج شنبه 08 مرداد 1388, 09:41 صبح
سلام

کسی نبود که راهنمایی کنه؟

یعنی شما تا به حال اینطوری از فایل فلش استفاده نکردین؟

majjjj
پنج شنبه 08 مرداد 1388, 10:39 صبح
احتمالا فایل فلش رو PLAY نکردین
یا فایل فلشتون از کنترل فلشتون ورژنش بالاتره از اخرین ورژن shock wave flash استفاده کنید

bahar_engineer
پنج شنبه 08 مرداد 1388, 11:23 صبح
با تشکر از شما اما منظورتون چیه که play نکردم ؟ اجرا می شه ولی چون یه شکل چند ضلعی داره بقیه قسمت های پشت آبجکت flash wave سفید می افته

و من از ویژوال استدیو 2008 استفاده می کنم و فکر می کنم آبجکت flash wave بصورت اتوماتیک آخرین ورژن باشه

کسی راه حلی نداره؟

majjjj
پنج شنبه 08 مرداد 1388, 12:35 عصر
متاسفانه بعضی فایلهای فلش این مشکل رو دارن برنامه هایی هستن که میتونید باهاشون فایل فلش بسازین و ممکنه ورژن اونها جدید تر از vs2008 باشه
فایل فلشتون با چی ساخته شده ؟

bahar_engineer
پنج شنبه 08 مرداد 1388, 12:56 عصر
این فایل و من با فلش 10 ویرایش کردم و استفاده می کنم

haghft
جمعه 09 مرداد 1388, 12:23 عصر
از این کامپاننت استفاده کن ببین درست میشه تو فایل ضمیمه گذاشتم.

bahar_engineer
شنبه 10 مرداد 1388, 10:34 صبح
ممنونم اما هنوز هم بک گراند سفید می اندازه

آیا این کامپوننت خاصیتی داره که بشه اون بک گراند رو نداشته باشه ؟ یعنی حالت transparent باشه؟

حتی وقتی بک گراند این کامپوننت رو هم مثلاً قرمز می ذارم باز موقع اجرا بک سفید داره ... آیا مشکل از فایل فلش هست؟
کسی می دونه چطور می تونم توی فلش درستش کنم؟

majjjj
شنبه 10 مرداد 1388, 11:38 صبح
یعنی فایل فلش نشون داده میشه اما فقط یک قسمت سفید پشت اون نشون داده میشه؟
اگه اینجوریه که بخاطر اندازه فایل فلشتون هست

bahar_engineer
شنبه 10 مرداد 1388, 12:11 عصر
ببینید من عکس ها رو اول تاپیک گذاشتم ... عکس سمت راست دلخواه من هست یعنی اون فایل فلش بک گراند نداره و فقط همون شکل سبز رنگ با متن درونش نمایش داده می شه اما اون عکس سمت راست از یک فایل بود که کل صفحه فلش بود من اون قسمت سبز رنگ رو از طریق یه نرم افزار در آوردم و در واقع فقط اون قسمت از فایل فلش رو به یه اسم دیگه ذخیره کردم حالا عکس سمت چپ تست فایل فلش من هست که همیشه بک سفید داره

فکر نمی کنم به اندازه اش ربطی داشته باشه

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

فکر می کنم به فلش ربط داشته باشه ./..نرم افزار فلش

Armin060
شنبه 10 مرداد 1388, 12:55 عصر
بايد از توی خود Adobe Flash اين كار رو بكنيد. رنگ استيج بايد Transparent يا None باشه.

bahar_engineer
شنبه 10 مرداد 1388, 13:08 عصر
stage که شما گفتین که فقط یه پالت رنگ داره که نه None داره و نه Transparent یعنی همش رنگه و گزینه ای به این اسم ها نداره

؟؟

bahar_engineer
شنبه 10 مرداد 1388, 16:24 عصر
من از یک فایل معمولی هم که توی فلش ساختم استفاده کردم اونم همین مشکل رو داره و transparent نیست اما ظاهرا این کامپوننت F-In-Box قابلیت transparent رو کاملا پشتیبانی می کنه اما من از سمپلش نتونستم استفاده کنم کلی کدهای پیچیده اضافی داره

کسی می تونه کمک کنه ؟ تو سمپل transparent اش دو تا کلاس هست ... کدشو می ذارم اینجا توی ضمیمه لطفاً اگه ممکنه تست کنین ببینید چطوریه ... من که بهش فایل فلش می دم اجرا نمی کنه و می گه Object reference not set to an instance of an object.
که فکر می کنم به خاطر اینه که فایل فلش رو پیدا نمی کنه

وقتی توی همین کد به جای فایل فلش اون، اسم فایل فلش خودم رو می ذارم و فایلم رو توی همون پوشه کپی می کنم این خطا رو می ده و وقتی هم که با فلش خودش اجرا می کنم که اصلا فلشش موجود نیست وباز هم همین خطا رو می ده

اما اگه بنویسم :


private string mypath = Application.StartupPath + @"\right.swf";
f_in_box__control1.FlashProperty_Movie = mypath;
f_in_box__control1.FlashMethod_Play();


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

bahar_engineer
شنبه 10 مرداد 1388, 16:45 عصر
درست شد با همون کدی که گفتم درست کار می کنه

دو تا کلاس بذارین توی پروژه با این کدها :

MyTranslucencyForm.cs:


using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;

namespace testflashtrans
{
/// <summary>
/// Summary description for MyTranslucencyForm.
/// </summary>
public class MyTranslucencyForm : f_in_box__lib.f_in_box__form
{

public MyTranslucencyForm()
{
InitializeComponent();
}

private void InitializeComponent()
{
//
// MyTranslucencyForm
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(300, 300);
this.Name = "MyTranslucencyForm";

}
}
}

و MainModule.cs:


using System;
using System.Windows.Forms;

namespace testflashtrans
{
/// <summary>
/// Summary description for MainModule.
/// </summary>
public class MainModule
{
public static void Main()
{
// Check transparent mode
if (!f_in_box__lib.Global.IsTransparentModeAvailable)
{
System.Windows.Forms.MessageBox.Show("Transparent mode is not available");
return;
}

// MyTranslucencyForm is inherited from f_in_box__lib.f_in_box__form; see MyTranslucencyForm.vb
// Creating translucency form
MyTranslucencyForm FlashPlayerForm = new MyTranslucencyForm();

// Loading movie from stream
// string resor = System.Reflection.Assembly.GetExecutingAssembly(). GetName().Name + ".20.swf";
// System.IO.Stream MovieStream = System.Reflection.Assembly.GetExecutingAssembly(). GetManifestResourceStream(resor);
//FlashPlayerForm.PutMovieFromStream(MovieStream);

FlashPlayerForm.FlashProperty_Movie = Application.StartupPath + @"\8.swf";
FlashPlayerForm.FlashMethod_Play();

// Positions
FlashPlayerForm.Width = 400;
FlashPlayerForm.Height = 400;
FlashPlayerForm.Left = System.Windows.Forms.Screen.PrimaryScreen.WorkingA rea.Width / 2 - FlashPlayerForm.Width / 2;
FlashPlayerForm.Top = System.Windows.Forms.Screen.PrimaryScreen.WorkingA rea.Height / 2 - FlashPlayerForm.Height / 2;

// Play and...
FlashPlayerForm.FlashMethod_Play();
// ...show
FlashPlayerForm.Show();

Application.Run(FlashPlayerForm);
}
}
}

حالا هر جا که کامپوننت f-in-box داشته باشید بصورت transparent نمایش داده می شه
:لبخندساده:

منصور بزرگمهر
شنبه 10 مرداد 1388, 21:21 عصر
من به فلش آشنائی ندارم، ولی فکر می کنم مشکل تو از نوع فایل تصویر است. فایلهای Jpg دارای زمینه شفاف نمی شوند، و فایلهای تصویر Gif دارای شفافیت هستند، پس فایل خود را به فرمت نام برده تغییر بده، و در فتو شاپ می توانی آنرا شفاف نمائی و مشکلت حل می شود.