【发布时间】:2015-05-13 01:12:45
【问题描述】:
我是 famo.us 的新手,并克隆了 start 示例。
我想要做的是创建一个CanvasSurface,创建一个Image,将ImageData 加载到其中,然后将draw() 和Image 放到画布的上下文中。
奇怪的是,当不定义自定义尺寸时,它只工作一次。刷新 Firefox 时,图像已加载,但看不到。
但是,我想让画布表现得好像它具有 css 样式:
width:100%;
因此有效地缩放绘制的图像,使其宽度与窗口大小相对应。
如果有人能指出我明显的错误,为什么图像没有渲染到画布上,我会很高兴。
http://codefamo.us/g/#gist=caeb0ba013ed3f955f33
/*global famous*/
// import dependencies
var Engine = famous.core.Engine;
var Modifier = famous.core.Modifier;
var Transform = famous.core.Transform;
//var ImageSurface = famous.surfaces.ImageSurface;
var CanvasSurface = famous.surfaces.CanvasSurface;
var Surface = famous.core.Surface;
// create the main context
var mainContext = Engine.createContext();
var backgroundCanvas = new CanvasSurface({
size: [undefined, false]
});
var backgroundContext = backgroundCanvas.getContext('2d');
var imageObj = new Image();
imageObj.src = 'http://upload.wikimedia.org/wikipedia/commons/f/fe/WelteHandnuancierung.jpg';
imageObj.onload = function() {
console.log("images loaded. has width: " + imageObj.width);
backgroundContext.drawImage(imageObj, 0, 0);
};
mainContext.add(backgroundCanvas);
【问题讨论】:
-
这里要记住的是,您必须像没有
famo.us一样处理canvas元素。将图像绘制到画布时,时间和画布大小很重要。希望我的回答能澄清一点。此外,在调整famo.us时没有有效值false。我更改为使用修饰符来调整CanvasSurface的大小,以表明您如何设置大小无关紧要。
标签: javascript css canvas famo.us