چطور از flash می توانم در Visual Basic استفاده کنم؟

rezaafandi

New Member
چطوری می توانم از فایل های SWF که توسط Flash ساخته می شود در VB استفاده کنم؟

قربونه معرفتتون
 

saman_sweden

Active Member
همانطور كه دوستون هم نوشته اند شما بايد SWFLASH.OCX را در برنامه ويژوال بيسيك فعال كنيد
 

rezaafandi

New Member
سلام
اقا دستتون درد نكنه كه جوابم را داديد واقعا كه آخر معرفتيد!
 

afsharan

New Member
سلام
من از اين ShockwaveFlash استفاده كردم اما مي خوام بدونم چه جوري با دستور point رنگ محيطي كه فلش نمايش داده ميشه رو خوند
ميخوام اطلاعات رنگ يك فايل فلش رو بخونم وشبيه سازي كنم اگه ميشه يك مثال بزنيد ممنون ميشم
 

the_king

مدیرکل انجمن
سلام
من از اين ShockwaveFlash استفاده كردم اما مي خوام بدونم چه جوري با دستور point رنگ محيطي كه فلش نمايش داده ميشه رو خوند
ميخوام اطلاعات رنگ يك فايل فلش رو بخونم وشبيه سازي كنم اگه ميشه يك مثال بزنيد ممنون ميشم

یک برنامه را به عنوان نمونه ضمیمه این پست کردم.
یک کنترل Shockwave Flash درون یک PictureBox با نام Picture1 قرار دارد.
یک تایمر نیز روی صفحه موجود است که چندین بار در ثانیه محتویات تصویری کنترل فلش را روی Picture2 کپی می کند.
چون Picture2 یک کنترل استاندارد ویژوال بیسیک است و تابع ()Point در آن وجود دارد، می توانید رنگ هر نقطه ای
را از آن بخوانید و بکار ببرید.

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

کد کامل برنامه به همراه فایل اجرایی exe ضمیمه این پست می باشد.
 

پیوست ها

  • Flash Pixels.zip
    8.6 کیلوبایت · بازدیدها: 51

salahy

New Member
عالی بود ومیشه لطف کنید که چه طور میشه تعداد پیکسل طول و عرض پیکچر باکس و با تعداد پیکسل فیلم swf مچ کرد
 

the_king

مدیرکل انجمن
عالی بود ومیشه لطف کنید که چه طور میشه تعداد پیکسل طول و عرض پیکچر باکس و با تعداد پیکسل فیلم swf مچ کرد

کد:
Private Sub Form_Resize()
    Picture1.Width = ShockwaveFlash1.Width * Screen.TwipsPerPixelX
    Picture1.Height = ShockwaveFlash1.Height * Screen.TwipsPerPixelY
    Picture2.Width = Picture1.Width
    Picture2.Height = Picture1.Height
End Sub
 

salahy

New Member
دوست خوبم از جوابتون ممنونم.میشه لطف کنید بگید چطور میشه نمایش در picture2 را در سایز دلخواه اجرا شود یعنی بزرگتر از pic1 نمایش داده شود.ومکانی که موس دران قرار داردبا تغیر نمایش زیر ان کد مربوطه (رنگ بک گراند)نیز تغییر کند.بدون جابجایی موس
 

the_king

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

اینجا ابعاد Picture2 مشخص میشه ، می توانید یک مقدار مستقیم بدهید، با عددی جمع کنید یا در عددی ضرب کنید :
کد:
    Picture2.Width = Picture1.Width
    Picture2.Height = Picture1.Height

ومکانی که موس دران قرار داردبا تغیر نمایش زیر ان کد مربوطه (رنگ بک گراند)نیز تغییر کند.بدون جابجایی موس

قبل از نوشتن روتین ها دو متغیر تعریف می کنیم :
کد:
[B]Private xx As Single, yy As Single[/B]

[COLOR="Gray"]Private Sub Form_Click()
    Timer1_Timer
End Sub[/COLOR]

و مقدار دهی می کنیم :
کد:
[COLOR="Gray"]Private Sub Picture2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim Color As OLE_COLOR[/COLOR]
[B]    xx = X
    yy = Y
[/B][COLOR="Gray"]    Color = Picture2.Point(X, Y)
    Label1.BackColor = Color
    Label1.ForeColor = (Color Xor &HFFFFFF)
    Label1.Caption = "Pixel (" + CStr(X) + "," + CStr(Y) + ") = &&H" & Hex(Color)
End Sub[/COLOR]

و استفاده می کنیم :
کد:
[COLOR="Gray"]Private Sub Timer1_Timer()
    Dim hDC As Long
    Dim hWnd As Long
    With Picture1
        hWnd = GetWindow(.hWnd, GW_CHILD)
        If hWnd = 0 Then Exit Sub
        hDC = GetWindowDC(hWnd)
        If hDC = 0 Then Exit Sub
        BitBlt Picture2.hDC, 0, 0, .ScaleWidth, .ScaleHeight, hDC, 0, 0, vbSrcCopy
        ReleaseDC hWnd, hDC
        Picture2.Refresh
    End With[/COLOR]
[B]    Picture2_MouseMove 0, 0, xx, yy[/B]
[COLOR="Gray"]End Sub[/COLOR]
 

salahy

New Member
دوست خوبم متشکرم از راهنمایی شما .ولی ظاهرا" نتونستم منظورم خوب بیان کنم. من میخوام مثلا" یک افکت متنی در swfبا ابعاد پیکسلی مثلا"32*128که saveوقابل اجراست در pic2در اندازه ای مثلا"دوبرابر سایزی که درpic 1 نمایش میدهد را نمایش دهد.در اصل میخوام که swfتابع اندازه pic2باشد.در ضمن نمیتوان مستقیم در همان pic2نمایش داد و موس تغییر رنگ را نشان دهد.ممنون
 
آخرین ویرایش:

the_king

مدیرکل انجمن
دوست خوبم متشکرم از راهنمایی شما .ولی ظاهرا" نتونستم منظورم خوب بیان کنم. من میخوام مثلا" یک افکت متنی در swfبا ابعاد پیکسلی مثلا"32*128که saveوقابل اجراست در pic2در اندازه ای مثلا"دوبرابر سایزی که درpic 1 نمایش میدهد را نمایش دهد.در اصل میخوام که swfتابع اندازه pic2باشد.در ضمن نمیتوان مستقیم در همان pic2نمایش داد و موس تغییر رنگ را نشان دهد.ممنون

ابعاد PictureBox ها و کنترل ShockwaveFlash قابل تغییر است، اما تابع BitBlt چیزی را که کپی می کند تغییر اندازه
نمی دهد. ShockwaveFlash اطلاعاتی در مورد پنجره و hDC اش به ویژوال بیسیک نمی دهد، به همین جهت
از PictureBox استفاده کرده ام. می شود به یک PictureBox اکتفا کرد اما با توجه به قابلیت های گرافیکی
ویژوال بیسیک باید کلا از توابع API ویندوز استفاده کرد.
 

salahy

New Member
ممکن لطف کنید ویک نمونه از برنامه ای که خواستم برام بزارید.متشکرم
 

salahy

New Member
سلام به دوست خوبم ظاهرا" شما را با سوال هام خسته کردم .ولی اگه میشه راهنمایی کنید من هر کاری کردم نتوانستم.(هرچند زیاد مسلط نیستم)واقعا" احتیاج دارم:shock:
 

constantine470

New Member
آقا دست شما درد نکنه
خیلی حرفه ای بود
راستی چه رابطه ای بین اندازه واقعی فلش و ocx فلش هست
یعنی مثلا اگه 24 ‍‍در 80 باشه اون وقت اندازه ocx چقدر باید باشه
 

جدیدترین ارسال ها

بالا