是的,動力學保存到JSON將不包括任何事件處理程序或圖像。
的JSON節點被反序列化和再水化後,必須重新連接的處理程序。
有了一些準備,你甚至可以自動完成這個重新佈線。
例如,
首先保存在一個對象或數組所有的事件處理程序:
var eventHandlers={
myClickHandler1:function(e){ alert("Fired myClickHandler1"); },
myClickHandler2:function(e){ alert("Fired myClickHandler2"); },
myMouseMoveHandler1:function(e){ alert("Fired myMouseMoveHandler1"); },
myMouseMoveHandler2:function(e){ alert("Fired mymouseMoveHandler2"); }
}
二自定義屬性添加到需要一個事件處理程序的每個Kinetic.Node :
var circle1 = new Kinetic.Circle({
x:100,
y:100,
radius: 30,
fill: 'red',
stroke: 'black',
strokeWidth: 4,
draggable: true,
clickEvent:"myClickHandler1"
});
最後節點已被重新水化後,您可以自動重新連接事件處理程序:
function rewireHandlers(node){
var handler;
// rewire click handler
handler=node.getAttr("clickEvent");
if(handler && eventHandlers[handler]){
node.on("click",eventHandlers[handler])
}
// rewire other event handlers the same way
}
// call for rewiring
rewireHandlers(circle1);
謝謝。我會試試這個。聽起來不錯。 – Ervin
我有一些更多的問題,也許我會爲那些 – Ervin
新主題這是我的其他問題,我donw知道,如果你是fammiliar它或沒有,我會感謝你的情況下,回答你:HTTP://計算器.COM /問題/ 21597030/kineticjs-撤消層層 - 不要 - 消失 - 上撤消 – Ervin