2013-06-05 85 views
0

使用Javascript,因此非常可怕的自省文档,我试图创建一个ClutterImage这应该取代已弃用的ClutterTexture。我不能确定使用指定的文件名/ URI来装载这样的图像属性名称:Clutter.Image属性 - 从磁盘加载图像

const Clutter = imports.gi.Clutter; 

Clutter.init(null); 

let stage = new Clutter.Stage(); 

stage.connect("destroy", Clutter.main_quit); 
stage.title = "Test"; 

stage.set_background_color(new Clutter.Color({ 
    red : 0, 
    blue : 128, 
    green : 64, 
    alpha : 255 
})); 

let img = new Clutter.Image({ 
    uri : 'some-image.jpg' 
}); 

stage.add_actor(img); 
Clutter.main(); 

我的错误是目前:Error: No property uri on this GObject ClutterImage这当然意味着我必须为我的属性的名称无效试图用于uri。有没有人知道我在哪里可以看到这个,或知道ClutterImage s中的文件名/ uri属性是什么?

回答

1

没有用于将纹理数据从文件加载到Clutter.Image实例的属性或函数。

你应该使用Gdk.Pixbuf从文件,缓冲,或流加载图像数据,然后把它放在一个Clutter.Image的东西,如:

let pixbuf = Gdk.Pixbuf.new_from_file('...'); 
let image = new Clutter.Image(); 
image.set_data(pixbuf.get_pixels(), 
       pixbuf.has_alpha() ? Cogl.PixelFormat.RGBA_8888 
            : Cogl.PixelFormat.RGB_888, 
       pixbuf.get_width(), 
       pixbuf.get_height(), 
       pixbuf.get_rowstride()); 

应该工作;如果没有,那么这是一个内省问题,并且可能需要在GdkPixbuf中进行一些调整。

+0

这正是我最终上班的地方。 +1 – BlackVegetable