我目前正在开发一个显示某种地图的应用程序。您可以在地图上执行多项操作。地图可以变得非常大,因此用户需要一个较小的地图(Minimap)来跟踪整个地图。
目前有两个阶段。一张是大地图,一张是小地图。大地图包含多个图层,但只需要在小地图上显示其中一个(类似于布局)。
所以我想为特定图层的AfterDrawing添加一个EventListener。
this.layoutLayer.afterDraw(this._initMinimap);
在事件侦听器中,我正在执行以下操作:
//...
_initMinimap : function(event) {
var ctrl = event;
if (!this.minimap) {
this.minimap = new Kinetic.Stage({
container : 'container',
width : 165,
height : 165
});
}
if (!this.mapLayer) {
this.mapLayer = new Kinetic.Layer({});
}
this.mapLayer.clear();
this.minimap.clear();
this.layoutLayer.toImage({
callback : function(img) {
var image = new Kinetic.Image({
image : img
});
image.setScale(0.01,0.01);
ctrl.mapLayer.add(image);
}
});
this.minimap.add(this.mapLayer);
this.minimap.draw();
},
//...
有谁知道如何解决这个问题?我对 JavaScript 还不是很熟悉,所以我不太确定这是否是正确的方法。
提前致谢 :-)