使用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中filename/uri属性是什么?
发布于 2013-06-06 22:24:59
没有用于将纹理数据从文件加载到Clutter.Image实例的属性或函数。
您应该使用GdkPixbuf从文件、缓冲区或流中加载图像数据,然后将其放入Clutter.Image中,如下所示:
const Clutter = imports.gi.Clutter;
const Cogl = imports.gi.Cogl;
const GdkPixbuf = imports.gi.GdkPixbuf;
const pixbuf = GdkPixbuf.Pixbuf.new_from_file('...');
const image = new Clutter.Image();
image.set_data(pixbuf.get_pixels(),
pixbuf.get_has_alpha() ? Cogl.PixelFormat.RGBA_8888
: Cogl.PixelFormat.RGB_888,
pixbuf.get_width(),
pixbuf.get_height(),
pixbuf.get_rowstride());这应该可以工作;如果它不能工作,那么这是一个自省问题,并且可能需要在GdkPixbuf中进行一些调整。
https://stackoverflow.com/questions/16946578
复制相似问题