0
這是KineticJS的一個實驗,其目標是在窗口被調整大小時簡單地在屏幕中居中對象。KineticJS不會在初始onResize調用時更新對象的位置
它工作正常,但它不會在初始調整大小事件處理程序調用中居中對象(圓形)。當我開始調整大小 - 並繼續這樣做 - 圓圈被集中。但最初圓圈從屏幕的左上角開始(0,0)。
$(document).ready(function(){
$(window).resize(onResize);
var stage = new Kinetic.Stage({
container: 'container',
width: $(container).width(),
height: $(container).height()
});
var layer = new Kinetic.Layer();
var circle = new Kinetic.Circle({ radius: 70, fill: 'red' });
layer.add(circle);
stage.add(layer);
function onResize(){
$(container).css('height', window.innerHeight - 20);
stage.setWidth($(container).width());
stage.setHeight($(container).height());
updatePosition();
}
function updatePosition(){
circle.setPosition(stage.getWidth()/2, stage.getHeight()/2);
}
// initial call
onResize();
});
任何線索爲什麼發生這種情況?由於
感謝,這解決了我的問題。但是爲什麼當調用onResize()時圓形居中,即使沒有layer.draw()方法(除了在初始調用時)?我可以在onResize()函數內部使用layer.draw(),或者在onResize()初始調用之後使用layer.draw(),並且我得到相同的結果(圓圈將開始居中並以調整大小爲中心)。我不明白。 – zok 2013-04-23 14:43:44