El martes, 7 de mayo de 2013 12:53:25 UTC+2, MRAB escribió: > On 07/05/2013 10:27, cheirasa...@gmail.com wrote: > > > from tkinter import * > > > import sfml > > > > > > > > > window = Tk() > > > window.minsize( 640, 480 ) > > > > > > > > > def sonido(): > > > file = sfml.Music.from_file('poco.ogg') > > > file.play() > > > > > > > > > test = Button ( window, text = 'Sound test', command=sonido ) > > > test.place ( x = 10, y = 60) > > > > > > window.mainloop() > > > > > > > > > > > > > > > Using Windows 7, Python 3.3, sfml 1.3.0 library, the file it is played if i > > put it out of the function. � what am i doing wrong ? Thanks. > > > > > Perhaps what's happening is that sonido starts playing it and then > > returns, meaning that there's no longer a reference to it ('file' is > > local to the function), so it's collected by the garbage collector. > > > > If that's the case, try keeping a reference to it, perhaps by making > > 'file' global (in a simple program like this one, using global should > > be OK).
Thanks. A global use of 'sonido' fix the problem. The garbage collector must be the point. But this code is part of a longer project. What can i do to fix it without the use of globals? I will use more functions like this, and i would like to keep learning python as well good programming methodology. Thanks. -- http://mail.python.org/mailman/listinfo/python-list