0

有什么方法可以在我的表单中包含 .swf 并保留其原始透明度?也就是说,您可以看到“它后面”的任何控件(显然在透明区域中)。它看起来不太可能,因为我了解 vb 无法控制 flash activex 控件(因此控件的渲染背景?)但想知道是否有任何解决方法?

到目前为止的相关代码:

    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 回答