Shockwave Flash einbinden, geht das?

Anfängerfragen zum Programmieren mit PureBasic.
PureNoob
Beiträge: 33
Registriert: 25.09.2007 15:30

Shockwave Flash einbinden, geht das?

Beitrag 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
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Shockwave Flash einbinden, geht das?

Beitrag von Kiffi »

PureNoob hat geschrieben:wenn ja, wie.
Window -> WebGadget, Flash rein, Fertig!

Grüße ... Kiffi
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
PureNoob
Beiträge: 33
Registriert: 25.09.2007 15:30

Beitrag 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
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
marco2007
Beiträge: 906
Registriert: 26.10.2006 13:19
Kontaktdaten:

Beitrag 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
Windows 11 - PB 6.03 x64
_________________________________
pbnewby
Beiträge: 34
Registriert: 21.01.2008 16:10

Beitrag 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
-=[ PBNewBy ]=-
Antworten