swf uhr im fenster ?

Plattformunabhängige GUIs mit wxWidgets.
Antworten
The_ride
User
Beiträge: 16
Registriert: Sonntag 23. April 2006, 14:33

hi!
ich habe eine frage kann ich eine swf uhr in einem fenster laufen lassen ?
kann mann das in python machen ist eine flash uhr?

hier der code

Code: Alles auswählen

<object type="application/x-shockwave-flash" data="http://www.crazyprofile.com/clocks/my_clock04.swf" height="293" width="410" align="right">
  <param name="movie" value="http://www.crazyprofile.com/clocks/my_clock04.swf" />
  <param name="allowScriptAccess" value="never" />
  <param name="allowNetworking" value="internal" />
  <param name="flashvars" value="pic=prince16.jpg&fldr=3_2007&widt=400&hight=283&sclr=80.625&typcl=clock01&typhnd=hand02&scol=0xb75fff&mcol=0xb75fff&hcol=0xb75fff&threecl=0xcc00a0&sixcl=0xcc00a0&ninecl=0xcc00a0&twelvecl=0xcc00a0" />
  <param name="quality" value="high" />
  <param name="wmode" value="transparent" />
</object>
Edit by Gerold: Codehighlight
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

The_ride hat geschrieben:kann ich eine swf uhr in einem fenster laufen lassen ?
Hi!

wxPython kennt unter Windows ``wx.lib.flashwin.FlashWindow``. Damit kann man Flash-Files öffnen. Allerdings weiß ich nicht, wie man die Parameter übergibt.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Zap
User
Beiträge: 533
Registriert: Freitag 13. Oktober 2006, 10:56

Ein Beispiel zum laden von Flashfiles ist doch in der wxPython Docs Demo enthalten...

aussschnitt:

Code: Alles auswählen

import  os
import  wx

if wx.Platform == '__WXMSW__':
    from wx.lib.flashwin import FlashWindow
...

        self.flash = FlashWindow(self, style=wx.SUNKEN_BORDER)
        self.flash.LoadMovie(0, 'file://' + os.path.abspath('data/Asteroid_blaster.swf'))

...
Ist das nicht das was du suchst?
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

gerold hat geschrieben:Allerdings weiß ich nicht, wie man die Parameter übergibt.
Jetzt weiß ich auch das. :-)

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-

import wx
from wx.lib.flashwin import FlashWindow

wx.SetDefaultPyEncoding("iso-8859-1")


class MyFrame(wx.Frame):
    
    def __init__(
        self, parent = None, id = -1, title = "Example", size = wx.Size(550, 420)
    ):
        
        wx.Frame.__init__(self, parent, id, title, size = size)
        
        panel = wx.Panel(self)
        
        vbox_main = wx.BoxSizer(wx.VERTICAL)
        panel.SetSizer(vbox_main)
        
        flash = FlashWindow(panel, style = wx.SUNKEN_BORDER)
        vbox_main.Add(flash, 1, wx.ALL | wx.EXPAND, 10)
        flash.LoadMovie(0, "http://www.crazyprofile.com/clocks/my_clock04.swf")
        flash.allowscriptaccess = "never"
        flash.flashvars = (
            "pic=prince16.jpg&fldr=3_2007&widt=400&hight=283&sclr=80.625"
            "&typcl=clock01&typhnd=hand02&scol=0xb75fff&mcol=0xb75fff"
            "&hcol=0xb75fff&threecl=0xcc00a0&sixcl=0xcc00a0&ninecl=0xcc00a0"
            "&twelvecl=0xcc00a0"
        )
        flash.quality = "high"
        flash.wmode = "transparent"
  

def main():
    """Testing"""
    
    app = wx.PySimpleApp()
    f = MyFrame()
    f.Center()
    f.Show()
    app.MainLoop()


if __name__ == "__main__":
    main()
mfg
Gerold
:-)

Edit (Leonidas): Verschoben.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
The_ride
User
Beiträge: 16
Registriert: Sonntag 23. April 2006, 14:33

hi!
danke für die antworten nur habe ich jetzt folgendes problem :-(

---
Traceback (most recent call last):
File "uhr.py", line 5, in ?
from wx.lib.flashwin import FlashWindow
File "/usr/lib/python2.4/site-packages/wx-2.6-gtk2-unicode/wx/lib/flashwin.py", line 17, in ?
import wx.activex
ImportError: No module named activex
---
diese fehler meldung kommt :-(
liegt das am linux (ubuntu) ?

oder muß ich noch etwas installieren ?
ich finde das wx.activex mit aptitude nicht
cya
The_ride
lost_mind
User
Beiträge: 82
Registriert: Dienstag 13. Februar 2007, 11:55

hm also so weit ich weiss ist activex vom IE ? als ja
The_ride
User
Beiträge: 16
Registriert: Sonntag 23. April 2006, 14:33

hmm also für linux nicht zu gebrauchen
:-(
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

lost_mind hat geschrieben:hm also so weit ich weiss ist activex vom IE ? als ja
Mit IE hat das insofern nichts zu tun, als das ActiveX im IE verwendet werden kann. Aber meistens werden ActiveX-Widgets in Visual Basic verwendet.

Unter Linux sieht es schlecht aus, weil SWF eben ein proprietäres Format ist. Es gibt bisher noch nichteinmal richtig gute freie Implementierungen dieses Formats (Gnash und dieses andere.. Name vergessen, sollen bisher noch nicht so toll sein).
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Geldentwertung
User
Beiträge: 2
Registriert: Freitag 21. September 2007, 11:45

Guten Tag miteinander,

habe grad versucht anhand der Beispiele oben und im wx Demo eine funktionierende .pyw Datei zu basteln, leider bekomm ich es nicht wirklich hin und bin langsam mit meinem (sehr beschränkten) Pythonlatein am Ende.

Ich habe folgenden Code in der .pyw:

Code: Alles auswählen

import wx
import os


if wx.Platform == '__WXMSW__':
    from wx.lib.flashwin import FlashWindow


class MyPanel(wx.Panel):
    def __init__(self, parent, id):
        wx.Panel.__init__(self, parent, -1)
        self.pdf = None

        sizer = wx.BoxSizer(wx.VERTICAL)

        self.flash = FlashWindow(self, style=wx.SUNKEN_BORDER)
	self.flash.LoadMovie(0, 'file//' + os.path.abspath('Asteroid_blaster.swf'))

        sizer.Add(self.flash, proportion=1, flag=wx.EXPAND)

        self.SetSizer(sizer)


app = wx.PySimpleApp()
frame = wx.Frame(None, -1, "FlashWindow", size = (500, 400))
MyPanel(frame, -1)
frame.Show(True)
app.MainLoop()
So weit so gut. Wenn ich dass dann unter Win XP ausführe startet zwar mein Applikationsfenter mit der Flashcontrol, es lädt aber kein Film. Ich habe mir mal per print im Konsolenfenster den Pfad anzeigen lassen, der von os.path.abspath ausgegeben wird, das sieht für mein Verständniss eigentlich richtig aus (D:\gui-test\Asteroid_blaster.swf. Windows findet auch die .swf wenn ich den Pfad im Explorer reinhacke). Das Flashdemo von wx Demos funktioniert auf derselben Maschine auch einwandfrei.

Falls jemand eine Idee hätte, waran das liegt oder was ich noch überprüfen könnte wäre ich sehr dankbar.


Grüße,

Die Geldentwertung


P.S. Der Einrückungsfehler beim self.flash.LoadMovie kommt durchs Forum und ist so nicht in der Datei enthalten.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hallo Geldentwertung!

Willkommen im Python-Forum!

Du hast den Doppelpunkt im URL vergessen:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-

import wx
import os
from wx.lib.flashwin import FlashWindow
import urllib

wx.SetDefaultPyEncoding("iso-8859-15")


class MyFrame(wx.Frame):
    
    def __init__(
        self, parent = None, title = "Example", size = wx.Size(550, 420)
    ):
        wx.Frame.__init__(self, parent, -1, title, size = size)
        
        panel = wx.Panel(self)
        
        vbox_main = wx.BoxSizer(wx.VERTICAL)
        panel.SetSizer(vbox_main)
        
        self.flash = FlashWindow(panel, style = wx.SUNKEN_BORDER)
        vbox_main.Add(self.flash, 1, wx.EXPAND | wx.ALL, 10)
        url = "file://" + urllib.pathname2url(os.path.abspath("Asteroid_blaster.swf"))
        self.flash.LoadMovie(0, url)


def main():
    """Testing"""
    app = wx.PySimpleApp()
    f = MyFrame()
    f.Center()
    f.Show()
    app.MainLoop()


if __name__ == "__main__":
    main()
mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Geldentwertung
User
Beiträge: 2
Registriert: Freitag 21. September 2007, 11:45

Hallo Gerold,

vielen Dank für deine Hilfe! War ja klar, dass es was ganz was einfaches ist. Bin wohl beim rumprobieren mit dem Skript etwas betriebsblind geworden. Du hast es auf jeden Fall geschafft, dass ich mir grad beim Versuch mich in den Allerwertesten zu beissen beinahe das Kreuz ausgerenkt hätte.. ;-)


Grüße ,

Geldentwertung
jonbob
User
Beiträge: 14
Registriert: Montag 24. November 2008, 10:40

Hallo miteinander,

hat jemand vielleicht doch noch eine Idee ob und wie man SWF unter Linux in einem wx Pannel abspielen kann?
Unter Windows geht es so schön einfach (http://www.python-forum.org/pythonforum ... =2&t=10416 oder wx DEMOS Aktive_x_SWF)

Vielen dank für Eure Hilfe
MFG Jon
Antworten