2012-09-26 153 views
0

我有一些图像是透明背景.png的,但是,当他们被添加到舞台上,他们有白色背景。我在这里错过了一招吗?kineticjs图像背景不透明

每个图像像这样说:

var layer = new Kinetic.Layer(); 
var book = new Image(); 

book.onload=function() { 
bookImg = new Kinetic.Image ({ x: 885, y: 780, offset: [85.5, 106], image:book, name:book, opacity: 0, /*scale:{x:0.5, y:0.5}*/ }); 
layer.add(bookImg); 
stage.add(layer); 
} 
book.src = "images/book.png"; 

是该层本身是什么创造了白色的背景? 有点困惑!

+0

真的需要这个问题的答案球员... 驾驶我有点疯狂! – user1498426

回答

0

难道你不得不将背景设置为透明吗?不仅是图片本身,还有包含图片的图片对象。也许这层也是。

0

您不需要在Kinetic.Image()对象上设置不透明度。如果您希望它在初始阶段或放置后不可见,只需使用hide()(然后show()来重新显示它)。或者在参数中设置为false。放置在舞台上的图像所需的最小看起来像这样:

var image = new Kinetic.Image({ 
    x: 0, 
    y: 0, 
    image: imageObj, 
    width: 300, 
    height: 120 
    }); 
layer.add(image); 
layer.draw(); 

这假设你的层已经被添加到Kinetic.Stage()和图像加载(imageObj.onload =函数(){ })。包括名字是好的,偏移和不透明(甚至缩放)是有效的键/值对参数,但在创建图像时并不是必须的。在将图像添加到图层后,也可以使用这些设置(使用KineticJS库中的许多设置器之一)。

我会尝试使用极简主义方法来查看图像是否首先按预期显示,然后从那里开始。