如何为Ext js绘制组件创建曲面

时间:2012-10-12 06:32:30

标签: extjs4

我使用以下代码创建了一个矩形:

var drawComponent = Ext.create('Ext.draw.Component', {
    autoSize: true,
    viewBox: false,
    x: 200,
    y: 100,
    draggable: true,
    viewBox: false,
    renderTo: document.body
}),
    surface = drawComponent.surface;

sprite = surface.add({
    type: 'rect',
    fill: 'white',
    stroke: 'red',
    x: 10,
    y: 5,
    'stroke-width': 3,
    width: 100,
    height: 50
});
sprite.show(true);​

之后我将它添加到窗口。

现在我想创建许多绘图组件,所以我创建了一个这样的自定义类:

Ext.define('DrawComponent', {
    extend: 'Ext.draw.Component',
    autoSize: true,
    viewBox: false,
    draggable: true,
    renderTo: document.body
});​

我正在使用这样的自定义类:

var drawComponent = Ext.create('DrawComponent', {
    x: 200,
    y: 100
}),
    surface = drawComponent.surface;
sprite = surface.add({
    type: 'rect',
    fill: 'white',
    stroke: 'red',
    x: 10,
    y: 5,
    'stroke-width': 3,
    width: 100,
    height: 50
});
sprite.show(true);​

但是这里显示的表面是undefined ... 您可以看到我的自定义类正在扩展Ext.draw.component类,以显示错误

1 个答案:

答案 0 :(得分:1)

Surface仅在渲染后可用。因此,您可以在initComponent方法中为事件afterrender添加事件处理程序,并使用表面。