Seite 1 von 1

swf uhr im fenster ?

Verfasst: Dienstag 3. April 2007, 21:41
von The_ride
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

Re: swf uhr im fenster ?

Verfasst: Mittwoch 4. April 2007, 07:10
von gerold
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
:-)

Verfasst: Mittwoch 4. April 2007, 07:38
von Zap
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?

Re: swf uhr im fenster ?

Verfasst: Mittwoch 4. April 2007, 08:18
von gerold
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.

Verfasst: Mittwoch 4. April 2007, 11:10
von The_ride
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

Verfasst: Mittwoch 4. April 2007, 11:35
von lost_mind
hm also so weit ich weiss ist activex vom IE ? als ja

Verfasst: Mittwoch 4. April 2007, 11:57
von The_ride
hmm also für linux nicht zu gebrauchen
:-(

Verfasst: Mittwoch 4. April 2007, 15:39
von Leonidas
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).

Verfasst: Freitag 21. September 2007, 12:08
von Geldentwertung
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.

Verfasst: Freitag 21. September 2007, 12:37
von gerold
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
:-)

Verfasst: Freitag 21. September 2007, 12:50
von Geldentwertung
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

Verfasst: Montag 6. April 2009, 18:21
von jonbob
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