Seite 1 von 1

Shockwave Flash einbinden, geht das?

Verfasst: 28.02.2008 11:32
von PureNoob
Hallo zusammen,

nachdem ich mich jetzt so einigermaßen mit den Funktionen vertraut gemacht habe, möchte ich versuchen, eine Shockwave Flash Animation in eine von mir generierte Programmoberfläche einzubinden. Bevor ich jetzt Stunden abreisse und literweise koffeinhaltige Getränke zu mir nehme :D wollte ich erstmal fragen, ob sowas überhaupt möglich ist und wenn ja, wie.

Vielen Dank für Eure Hilfe

Lieben Gruss PureNoob

Re: Shockwave Flash einbinden, geht das?

Verfasst: 28.02.2008 11:49
von Kiffi
PureNoob hat geschrieben:wenn ja, wie.
Window -> WebGadget, Flash rein, Fertig!

Grüße ... Kiffi

Verfasst: 28.02.2008 11:50
von ts-soft
>> wollte ich erstmal fragen, ob sowas überhaupt möglich ist
Ja

>> und wenn ja, wie.
Mit Interfaces z.B.
PureDisphelper (gibts auf PureArea.net) enthält sogar ein Beispiel mit Flash

Gruß
Thomas

Verfasst: 28.02.2008 12:38
von PureNoob
Hallo Kiffi,

ich habe jetzt das hier gefunden:

Code: Alles auswählen

Procedure Open_Window_0()
  If OpenWindow(#Window_0, 216, 0, 600, 300, "New window ( 0 )",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
    If CreateGadgetList(WindowID(#Window_0))
      WebGadget(#Web_0, 60, 50, 160, 120, "about:blank")
      
    EndIf
  EndIf
EndProcedure
Wo muss ich denn da jetzt das Flash einbinden? Und wie?
Das mit Flash ist echt Neuland für mich.

Danke PureNoob
Code-Tags gesetzt - nächstmal bitte selber dran denken - Kaeru fecit

Verfasst: 28.02.2008 13:11
von Kiffi
PureNoob hat geschrieben:Wo muss ich denn da jetzt das Flash einbinden?
Du musst nun mittels

Code: Alles auswählen

SetGadgetItemText(#Web_0, #PB_Web_HtmlCode, HTML.s)
das von Dir zusammengebaute HTML (mit dem eingebetteten Flash-Objekt)
in das WebGadget streamen.

Wie das HTML aussehen soll, wird unter folgender Adresse gut erklärt:
http://de.selfhtml.org/html/multimedia/ ... .htm#flash

Aber: Ich habe mir noch einmal den Flash-Code von Thomas angeschaut und
denke, dass Du über kurz oder lang damit am besten beraten bist:

Code: Alles auswählen

; example by ts-soft

EnableExplicit

XIncludeFile "DispHelper_Include.pb"

Procedure.s GetExePath()
  Protected Result.s

  If UCase(GetPathPart(ProgramFilename())) = UCase(#PB_Compiler_Home + "Compilers")
    Result = GetCurrentDirectory()
  Else
    Result = GetPathPart(ProgramFilename())
  EndIf

  If Right(Result, 1) <> "" : Result + "" : EndIf

  ProcedureReturn Result
EndProcedure

dhInitializeImp()

Define.l oFlash, Result
Define.s Movie = GetExePath() + "worm.swf"

If Movie
  If OpenWindow(0, #PB_Ignore, #PB_Ignore, 440, 280, "Flash-Demo") And CreateGadgetList(WindowID(0))
  
    ContainerGadget(0, 0, 0, 440, 240)
    CloseGadgetList()
    ButtonGadget(1, 20, 250, 60, 25, "Run")
    ButtonGadget(2, 90, 250, 60, 25, "Stop")
    
    dhToggleExceptions(#True)
    oFlash = dhCreateObject("ShockwaveFlash.ShockwaveFlash", GadgetID(0))
    
    If oFlash
      
      dhCallMethod(oFlash, "LoadMovie (%b,%s)", #False, @Movie)
      
      Repeat
        
        dhGetValue("%d", @Result, oFlash, "ReadyState")
 
      Until Result = 4
       
      dhCallMethod(oFlash, "Play")
           
      Repeat
        
        Select WaitWindowEvent()
        
          Case #PB_Event_CloseWindow
            Break
          
          Case #PB_Event_Gadget
          
            Select EventGadget()
            
              Case 1
                dhCallMethod(oFlash, "Play")
                
              Case 2
                dhCallMethod(oFlash, "Stop")
                
            EndSelect
            
        EndSelect
      
      ForEver
      
      dhReleaseObject(oFlash)
    
    EndIf
    
    CloseWindow(0)
    
  EndIf
  
EndIf

dhUninitialize()

Grüße ... Kiffi

Verfasst: 28.03.2008 22:25
von marco2007
Hi,

Ist es nicht so am einfachsten?

Code: Alles auswählen

Procedure Open_Window()
  If OpenWindow(0, 0, 0, 184, 129, "Flash",  #PB_Window_SystemMenu | #PB_Window_SizeGadget)
    If CreateGadgetList(WindowID(0))
      WebGadget(0, 0, 0, 185, 130, "d:\flash.swf")
      
    EndIf
  EndIf
EndProcedure

Open_Window()
Repeat:Until WaitWindowEvent()=#PB_Event_CloseWindow
Einfach Pfad+Dateiname als Url....

lg
Marco

Verfasst: 29.03.2008 10:09
von pbnewby
Im EN Forum von PB gibt es noch:

"Playing a Flash movie from memory (no temporary files)"

http://www.purebasic.fr/english/viewtop ... ash+memory

und überarbeitet für PB4

http://www.purebasic.fr/english/viewtopic.php?t=20428