PDA

View Full Version : flash



melissa
دوشنبه 28 اسفند 1385, 20:11 عصر
سلام
ببخشید که یک کمی بی ربطه!
می خوام یه دستور بنویسم که تو فلش وقتی کلیک راست می کنم (البته فایل فلش ، که در دلفی نشونش می دم ) یه اتفاقی بیافته ، اما تابعش رو نمی دونم

behzad_gh
دوشنبه 28 اسفند 1385, 20:36 عصر
سلام تا جایی که من اطلاع دارم این کار رو در محیط برنامه نویسی ( من با VB کار می‌کنم ) نمی‌توانید انجام دهید . یعنی OCX فلش همچین امکانی رو برای شما فراهم نکرده . البته یک راه حل داره اونم اینکه داخل فایل فلش کدی رو بنویسید که وقتی کلیک راست کردید با استفاده از FsCommand به برنامه شما در دلفی پیغامی بفرسته و شما بقیه عملیات رو در دلفی انجام بدهید.

Mahmood_M
دوشنبه 28 اسفند 1385, 21:50 عصر
سلام
فکر کنم که میخواید راست کلیک فلش رو بردارید ؟! درسته ؟!
به هر حال ...
یک کامپوننت TApplicationEvents روی فرم بزاید و در رویداد OnMessage مربوط به اون ، این کد رو بنویسید :

if (msg.message = WM_RBUTTONDOWN) and (Msg.hwnd = ShockWaveFlash1.Handle) then
begin
ApplicationEvents1.CancelDispatch;
Handled := True;
end;
توی کد بالا به جای ShockwaveFlash1.Handle ، نامی که برای کامپوننت Flash روی فرم انتخاب کردید رو بزارید ( اگه تغییری نداده باشید ، همینه ) ...
توی کد بالا بعد از خط آخر ( Handled := True ) ، میتونید کد مربوط به اتفاقی که مایلید بیافته رو بنویسید ...

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

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

melissa
دوشنبه 28 اسفند 1385, 23:42 عصر
منم منظورم همین بود
یعنی یک کد فلش می خوام که در موقع راست کلیک fscommand رو اجرا کنه.
ولی نمی دونم چه کدی تو فلش بنویسم

behzad_gh
سه شنبه 29 اسفند 1385, 11:49 صبح
برای گرفتن دکمه راست در فلش از کد زیر استفاده کنید.




onEnterFrame = function()
{
if(ASnative(800,2)(2)) fscommand("Mouse","RightClick");
}


این سایت هم یک نمونه برای #C داره :

http://www.codeproject.com/csharp/fscommand.asp

mohammad-j
یک شنبه 26 فروردین 1386, 13:01 عصر
من استفاده کردم کد برداشتن راست کلیک رو ولی وقتی راست کلیک می کنم ایم پیغام
Access violation at address 0044Bc66 ,...

behzad_gh
یک شنبه 26 فروردین 1386, 19:54 عصر
این کد رو باید در root و برای فریم بنویسید.