使用Javascript,因此非常糟糕的内省文档,我试图创建一个ClutterImage
,它应该替换已弃用的ClutterTexture
。我无法确定用于指定要为此类图像加载的文件名/ uri的属性名称:
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中调用了filename / uri属性?
答案 0 :(得分: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中进行一些调整。