2013-01-16 136 views
1

有沒有辦法清除pyglet中的資源緩存?資源的源映像在磁盤上發生變化,我需要重新加載它,但pyglet使用緩存資源。 這是我做的:清除pyglet資源緩存

pyglet.resource.path = [self.path] 
pyglet.resource.reindex() 
self.img = pyglet.resource.image(self.filename) 

然後在磁盤上的圖像文件的變化,我想重新加載它,我再做一次以上,但pyglet似乎使用緩存的圖像,而不是。

回答

1

我在使用pyglet時遇到了同樣的問題。這是我想出的解決方案:

def clear_cache(filename): 
     if filename in pyglet.resource._default_loader._cached_images: 
      del pyglet.resource._default_loader._cached_images[filename] 

它適合我!

說明:

pyglet源閒逛之後,似乎resource模塊記錄在一個名爲_cached_images字典圖像名稱。

似乎在您使用資源模塊時,如您在示例中所做的那樣,在資源模塊中會創建一個名爲_default_loader的對象。因此,在_default_loader._cached_images中找到緩存。

我相信有更好的方式來完成我所做的,比如子分類資源,並在那裏添加我自己的clear_cache方法。但我是編程新手,並且我不太瞭解resource模塊中的所有內容,所以這是我想到的最好的。