2014-01-19 2 views
0

В некоторых частях я просто хочу нарисовать изображение или прямоугольник без накладных расходов на создание сложного объекта.Как смешивать обычные функции холста с KineticJS?

Старается

var stage = new Kinetic.Stage({ 
    container: 'container', 
    width: 400, 
    height: 400}); 
var layer = new Kinetic.Layer(); 
var ctx; 
layer.add(new Kinetic.Shape({x:0,y:0,drawFunc:function(context){ctx=context;}})); 
stage.add(layer); 
ctx.fillStyle = "#FF0000"; 
ctx.fillRect(0,0,100,100); 

Но я получаю TypeError: ctx.fillRect не является функция

Вот скрипка http://jsfiddle.net/qHVsu/

ответ

0

Вы можете получить нижележащий контекст из слоя:

var ctx = layer.canvas.context._context; 
ctx.fillStyle = "#FF0000"; 
ctx.fillRect(0,0,100,100); 

JSFiddle.

+0

Спасибо, это именно то, что я хотел. – affiszervmention

+1

Dangerous ... Kinetic часто очищает холст слоя для своих целей. Тогда ваш rect будет очищен и не перерисован. Вам действительно нужно поместить «ручные» чертежи в управляемый объект, такой как Kinetic.Shape, или риск стирания ручных чертежей. – markE

Смежные вопросы