1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.
  2. Informação: Pela 0:30 desta Sexta-feira (9 de Dezembro, 23:30 de Quinta-feira nos Açores) o Fórum e restantes sites da ZWAME vão estar offline para manutenção durante cerca de 1h30.
    Se necessário faremos actualizações via Twitter e Facebook.
    Remover anúncio

swf e vb express edition 2008

Discussão em 'Programação' iniciada por silversk8ter, 24 de Fevereiro de 2008. (Respostas: 3; Visualizações: 1358)

  1. silversk8ter

    silversk8ter I folded Myself

    Viva!
    O objectivo é correr um swf (interno, nos resources) dentro de um form...
    Já tenho a dll respectiva no form e o swf nos resources..

    Não me consigo orientar é com o código q é necessário para chamar o swf para correr no form.

    Alguem me pode dar uma ajuda?

    Obrigado.
     
  2. balute

    balute Power Member

    Partindo do princípio que esse DLL só interpreta um ficheiro se ele for de facto um ficheiro (e não apenas um resource), começa por extrair o resource para um ficheiro temporário, que será depois lido pelo DLL:
    Código:
    IO.File.WriteAllBytes("C:\ficheiro.swf", My.Resources.<nome_do_resource>)
    Depois utiliza as funções e os métodos fornecidos por esse DLL para correr o ficheiro. Lê a documentação do DLL para saberes como se faz isso.
     
    Última edição: 24 de Fevereiro de 2008
  3. silversk8ter

    silversk8ter I folded Myself

    Viva!
    Obrigado pela pronta ajuda...

    O que fiz foi adicionar o controlo (AxInterop.ShockwaveFlashObjects.dll) á toolbox, mediante instruções que vi do próprio controlo:

    Including the Shockwave Flash ActiveX control

    To include the Shockwave Flash ActiveX control in your own Windows Forms application, you must first add it to the Microsoft Visual Studio Toolbox.
    To add the control to the toolbox:

    1. Open the Visual Studio Toolbox.
    2. Right-click the Windows Forms section in Visual Studio 2003 or any section in Visual Studio 2005. From the context menu select Add/Remove Items in Visual Studio 2003 (Choose Items... in Visual Studio 2005). This opens the Customize Toolbox (2003)/Choose Toolbox Items (2005) dialog box.
    3. Select the COM Components tab, which lists all of the available COM components on your computer, including the Flash Player ActiveX control.
    4. Scroll to Shockwave Flash Object and select it. If this item is not listed, make sure that the Flash Player ActiveX control is installed on your system.
    Até aqui tudo bem, maravilha. (de notar q n estou familiarizado com o vb)
    Entretanto, o meu intuito não é puxar um swf externo...é tê-lo mesmo dentro da aplicação. Por isso o incluir no resource (corrijam-me se estiver enganado: o resource é como q uma livraria interna, certo?)

    Se assim for, tudo ok...já o tenho como resource e já tenho o controlo no meu form.

    "Só" me falta o código para chamar esse resource para dentro do controlo.
    É muito dificil este passo?
    Já andai a pesquisar e não encontro exemplos com swf's....encontro com imagens, etc...

    Se for possivel mais esta ajuda...

    Obrigado
     
  4. balute

    balute Power Member

    Não é bem...
    Resources são como variáveis, mas em vez de estares a escrever:
    Código:
    Dim resource1() As Byte = New Byte() {.........conteúdo do ficheiro.......}
    , basta adicionar o ficheiro como resource e ele cria logo uma variável que contém o conteúdo desse ficheiro. Mas não deixa de ser uma simples variável (na verdade é uma constante, visto que não se pode modificar durante a execução), que é tratada como um array de bytes ou uma string.
    Depois também há resources especiais, como os ícones, que podem ser tratados como se fossem ficheiros .ico.

    Por isso é que falei em extrair o conteúdo do resource para um ficheiro, pois o controlo provavelmente só lê a partir de ficheiros...

    Estive agora a confirmar, e o controlo ShockwaveFlashObjects.ShockwaveFlash só lê mesmo a partir de um ficheiro.
    Pelo que tive a ver, o controlo que estás a usar funciona assim:
    Código:
    nome_do_controlo.LoadMovie(0, "c:\caminho para o ficheiro\ficheiro.swf")
    nome_do_controlo.Play()
    Testa lá ;)
     
    Última edição: 25 de Fevereiro de 2008

Partilhar esta Página