0

フォームに .swf を含め、元の透明度を維持する方法はありますか? つまり、「背後にある」コントロールをすべて見ることができます (明らかに透明な領域にあります)。vbがフラッシュアクティブXコントロールを制御できないことを理解しているため(したがって、コントロールのレンダリングされた背景?)、回避策があるかどうか疑問に思っているので、それはありそうにありませんか?

これまでの関連コード:

    Dim flash1 As New AxShockwaveFlash
    .....
    flash1.Location = New System.Drawing.Point(300, 23)
    Me.Controls.Add(flash1)
    flash1.Movie = "C:\Users\Steve\Scripts\Projects\CPWizBiz\Assets\Test SWFs\Artwork4.swf"
    flash1.Size = New System.Drawing.Size(192, 400)
    flash1.Play()
4

1 に答える 1

0

他の解決策がない場合、これが私がしたことです:

基本的に、透明な背景を持つ新しいフォームを作成しました。次に、これをメインフォームにオーバーレイします(任意のフォームをリンクして、相互に移動およびサイズ変更できます)。次に、フラッシュの背景をフォームの透明度キーと一致するように設定して完了です。簡潔でわかりやすいコード:

 Public Sub MarqueeFlash_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Me.TransparencyKey = Color.FromArgb(1, 4, 3)
        Me.BackColor = Color.FromArgb(1, 4, 3)

        dim FlashCtrl as As New AxShockwaveFlash
        Controls.Add(FlashCtrl)
        With FlashCtrl
            .BGColor = Me.BackColor.R.ToString("X2") & Me.BackColor.G.ToString("X2") & Me.BackColor.B.ToString("X2")
            .Movie = IndexedDR(0).Item("File")
            .Location = New Point(10,10)
        End With
        FlashCtrl.Play()
        FlashCtrl.Size = New Size(400,300)
end sub
于 2015-07-15T22:42:04.157 に答える