繁体   English   中英

如何在每次KineticJS事件中保存舞台?

[英]How do I save the stage upon every KineticJS event?

我了解可以使用stage.toJSON函数将KineticJS阶段保存到JSON。 我想在舞台以任何方式更改的任何时候执行此操作。 例如,如果要通过可拖动方式移动形状,更改形状的大小,动态更改内部内容,动态添加形状等,我希望运行toJSON函数。我真的不希望这样做特别是侦听所有可能的事件,并为每个事件运行相同的代码。 我只想在一个呼叫中捕获所有事件。 有什么可以帮助我做到这一点的吗? 我意识到可能会影响性能。 在进行任何更改时保存舞台是一项业务要求。 幸运的是,此功能仅限于少数用户。 谢谢。

如何在每次KineticJS事件中保存舞台?

答:发生任何KineticJS事件时,请调用stage.toJSON

是否有任何KineticJS事件处理程序可监听所有事件?

答:实际上,有一个Draconian选项。

您可以要求侦听KineticJS可以生成的每个事件,因为.on()方法可以接受多个以空格分隔的事件类型。

您将需要根据eventType以及您的设计注意事项来决定是否要stage.toJSON

节点可以侦听以下事件类型:

// a space-delimited list of all node events that KineticJS can listen for
var allNodeEvents="mouseover mousemove mouseout mouseenter mouseleave mousedown mouseup click dblclick touchstart touchmove touchend tap dbltap dragstart dragmove dragend";

阶段可以监听以下事件类型:

// a space-delimited list of all stage events that KineticJS can listen for
var allStageEvents="contentMouseover contentMousemove contentMouseout contentMousedown contentMouseup contentClick contentDblclick contentTouchstart contentTouchmove contentTouchend contentTap contentDblTap";

您可以像这样监听所有的Node + Stage事件:

// listen for all possible Node events
node.on(allNodeEvents,function(event){

    // get the type of this event
    var eventType=event.type;

    // Do stage.toJSON 
    //(or not based on eventType and other design specific considerations

});


// listen for all possible Stage events
stage.on(allStageEvents,function(event){

    // get the type of this event
    var eventType=event.type;

    // Do stage.toJSON 
    //(or not based on eventType and other design specific considerations

});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM