mirror of
https://github.com/konvajs/konva.git
synced 2025-06-28 06:31:15 +08:00
Merge branch 'master' of github.com:konvajs/konva
This commit is contained in:
commit
3d5a216f23
33
src/Node.ts
33
src/Node.ts
@ -713,39 +713,32 @@ export abstract class Node<Config extends NodeConfig = NodeConfig> {
|
|||||||
evtStr: K,
|
evtStr: K,
|
||||||
handler: KonvaEventListener<this, NodeEventMap[K]>
|
handler: KonvaEventListener<this, NodeEventMap[K]>
|
||||||
) {
|
) {
|
||||||
this._cache && this._cache.delete(ALL_LISTENERS);
|
if (this._cache) {
|
||||||
|
this._cache.delete(ALL_LISTENERS);
|
||||||
|
}
|
||||||
|
|
||||||
if (arguments.length === 3) {
|
if (arguments.length === 3) {
|
||||||
return this._delegate.apply(this, arguments as any);
|
return this._delegate.apply(this, arguments as any);
|
||||||
}
|
}
|
||||||
let events = (evtStr as string).split(SPACE),
|
const events = (evtStr as string).split(SPACE);
|
||||||
len = events.length,
|
|
||||||
n,
|
|
||||||
event,
|
|
||||||
parts,
|
|
||||||
baseEvent,
|
|
||||||
name;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* loop through types and attach event listeners to
|
* loop through types and attach event listeners to
|
||||||
* each one. eg. 'click mouseover.namespace mouseout'
|
* each one. eg. 'click mouseover.namespace mouseout'
|
||||||
* will create three event bindings
|
* will create three event bindings
|
||||||
*/
|
*/
|
||||||
for (n = 0; n < len; n++) {
|
for (let n = 0; n < events.length; n++) {
|
||||||
event = events[n];
|
const event = events[n];
|
||||||
parts = event.split('.');
|
const parts = event.split('.');
|
||||||
baseEvent = parts[0];
|
const baseEvent = parts[0];
|
||||||
name = parts[1] || '';
|
const name = parts[1] || '';
|
||||||
|
|
||||||
// create events array if it doesn't exist
|
// create events array if it doesn't exist
|
||||||
if (!this.eventListeners[baseEvent]) {
|
if (!this.eventListeners[baseEvent]) {
|
||||||
this.eventListeners[baseEvent] = [];
|
this.eventListeners[baseEvent] = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
this.eventListeners[baseEvent].push({
|
this.eventListeners[baseEvent].push({ name , handler });
|
||||||
name: name,
|
|
||||||
handler: handler,
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
@ -2228,7 +2221,7 @@ export abstract class Node<Config extends NodeConfig = NodeConfig> {
|
|||||||
* node.addName('selected');
|
* node.addName('selected');
|
||||||
* node.name(); // return 'red selected'
|
* node.name(); // return 'red selected'
|
||||||
*/
|
*/
|
||||||
addName(name) {
|
addName(name: string) {
|
||||||
if (!this.hasName(name)) {
|
if (!this.hasName(name)) {
|
||||||
const oldName = this.name();
|
const oldName = this.name();
|
||||||
const newName = oldName ? oldName + ' ' + name : name;
|
const newName = oldName ? oldName + ' ' + name : name;
|
||||||
@ -2400,7 +2393,7 @@ export abstract class Node<Config extends NodeConfig = NodeConfig> {
|
|||||||
|
|
||||||
const topListeners = this._getProtoListeners(eventType);
|
const topListeners = this._getProtoListeners(eventType);
|
||||||
if (topListeners) {
|
if (topListeners) {
|
||||||
for (var i = 0; i < topListeners.length; i++) {
|
for (let i = 0; i < topListeners.length; i++) {
|
||||||
topListeners[i].handler.call(this, evt);
|
topListeners[i].handler.call(this, evt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2409,7 +2402,7 @@ export abstract class Node<Config extends NodeConfig = NodeConfig> {
|
|||||||
// because events can be added/removed while firing
|
// because events can be added/removed while firing
|
||||||
const selfListeners = this.eventListeners[eventType];
|
const selfListeners = this.eventListeners[eventType];
|
||||||
if (selfListeners) {
|
if (selfListeners) {
|
||||||
for (var i = 0; i < selfListeners.length; i++) {
|
for (let i = 0; i < selfListeners.length; i++) {
|
||||||
selfListeners[i].handler.call(this, evt);
|
selfListeners[i].handler.call(this, evt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
11
src/Shape.ts
11
src/Shape.ts
@ -594,13 +594,12 @@ export class Shape<
|
|||||||
// 3 - when node is cached and we need to draw it into layer
|
// 3 - when node is cached and we need to draw it into layer
|
||||||
|
|
||||||
const layer = this.getLayer();
|
const layer = this.getLayer();
|
||||||
let canvas = can || layer!.getCanvas(),
|
const canvas = can || layer!.getCanvas(),
|
||||||
context = canvas.getContext() as SceneContext,
|
context = canvas.getContext() as SceneContext,
|
||||||
cachedCanvas = this._getCanvasCache(),
|
cachedCanvas = this._getCanvasCache(),
|
||||||
drawFunc = this.getSceneFunc(),
|
drawFunc = this.getSceneFunc(),
|
||||||
hasShadow = this.hasShadow(),
|
hasShadow = this.hasShadow();
|
||||||
stage,
|
let stage, bufferContext;
|
||||||
bufferContext;
|
|
||||||
|
|
||||||
const skipBuffer = false;
|
const skipBuffer = false;
|
||||||
const cachingSelf = top === this;
|
const cachingSelf = top === this;
|
||||||
@ -633,7 +632,7 @@ export class Shape<
|
|||||||
bufferContext.save();
|
bufferContext.save();
|
||||||
bufferContext._applyLineJoin(this);
|
bufferContext._applyLineJoin(this);
|
||||||
// layer might be undefined if we are using cache before adding to layer
|
// layer might be undefined if we are using cache before adding to layer
|
||||||
var o = this.getAbsoluteTransform(top).getMatrix();
|
const o = this.getAbsoluteTransform(top).getMatrix();
|
||||||
bufferContext.transform(o[0], o[1], o[2], o[3], o[4], o[5]);
|
bufferContext.transform(o[0], o[1], o[2], o[3], o[4], o[5]);
|
||||||
|
|
||||||
drawFunc.call(this, bufferContext, this);
|
drawFunc.call(this, bufferContext, this);
|
||||||
@ -657,7 +656,7 @@ export class Shape<
|
|||||||
context._applyLineJoin(this);
|
context._applyLineJoin(this);
|
||||||
|
|
||||||
if (!cachingSelf) {
|
if (!cachingSelf) {
|
||||||
var o = this.getAbsoluteTransform(top).getMatrix();
|
const o = this.getAbsoluteTransform(top).getMatrix();
|
||||||
context.transform(o[0], o[1], o[2], o[3], o[4], o[5]);
|
context.transform(o[0], o[1], o[2], o[3], o[4], o[5]);
|
||||||
context._applyOpacity(this);
|
context._applyOpacity(this);
|
||||||
context._applyGlobalCompositeOperation(this);
|
context._applyGlobalCompositeOperation(this);
|
||||||
|
@ -214,11 +214,11 @@ export class Stage extends Container<Layer> {
|
|||||||
*/
|
*/
|
||||||
setContainer(container) {
|
setContainer(container) {
|
||||||
if (typeof container === STRING) {
|
if (typeof container === STRING) {
|
||||||
|
let id;
|
||||||
if (container.charAt(0) === '.') {
|
if (container.charAt(0) === '.') {
|
||||||
const className = container.slice(1);
|
const className = container.slice(1);
|
||||||
container = document.getElementsByClassName(className)[0];
|
container = document.getElementsByClassName(className)[0];
|
||||||
} else {
|
} else {
|
||||||
var id;
|
|
||||||
if (container.charAt(0) !== '#') {
|
if (container.charAt(0) !== '#') {
|
||||||
id = container;
|
id = container;
|
||||||
} else {
|
} else {
|
||||||
|
@ -102,26 +102,24 @@ export class Line<
|
|||||||
}
|
}
|
||||||
|
|
||||||
_sceneFunc(context: Context) {
|
_sceneFunc(context: Context) {
|
||||||
let points = this.points(),
|
const points = this.points(),
|
||||||
length = points.length,
|
length = points.length,
|
||||||
tension = this.tension(),
|
tension = this.tension(),
|
||||||
closed = this.closed(),
|
closed = this.closed(),
|
||||||
bezier = this.bezier(),
|
bezier = this.bezier();
|
||||||
tp,
|
|
||||||
len,
|
|
||||||
n;
|
|
||||||
|
|
||||||
if (!length) {
|
if (!length) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
let n = 0;
|
||||||
|
|
||||||
context.beginPath();
|
context.beginPath();
|
||||||
context.moveTo(points[0], points[1]);
|
context.moveTo(points[0], points[1]);
|
||||||
|
|
||||||
// tension
|
// tension
|
||||||
if (tension !== 0 && length > 4) {
|
if (tension !== 0 && length > 4) {
|
||||||
tp = this.getTensionPoints();
|
const tp = this.getTensionPoints();
|
||||||
len = tp.length;
|
const len = tp.length;
|
||||||
n = closed ? 0 : 4;
|
n = closed ? 0 : 4;
|
||||||
|
|
||||||
if (!closed) {
|
if (!closed) {
|
||||||
|
Loading…
Reference in New Issue
Block a user