【问题标题】:How to extend KineticJS shape如何扩展 KineticJS 形状
【发布时间】:2013-01-31 07:37:06
【问题描述】:

对于 KineticJS 版本 4.0.0 或更低版本,形状扩展了一个类,并且可以通过

var MyCircle = Kinetic.Circle.extend({
    init : function(config) {
        this._super(config));
    },
    myFunc : function(){}
});

或者

Kinetic.MyCircle = function (config) {
    Kinetic.Circle.apply(this, [config]);
};
Kinetic.MyCircle .prototype = {
    myFunc: function () {}
};
Kinetic.GlobalObject.extend(Kinetic.MyCircle , Kinetic.Circle);

4.0.1 版本中,他们删除了对类实用程序的依赖项,并实施了一个应该更快的自定义解决方案。

如何使用新解决方案扩展形状?

【问题讨论】:

    标签: javascript canvas kineticjs


    【解决方案1】:

    Kinetic.GlobalObject 变成 Kinetic.Global (>4.0.1),然后
    Kinetic.Global 现在是 Kinetic.Util(2013 版),这里有一个解决方案:

    (function() {
        Kinetic.MyCircle = function(config) {
            this._initMyCircle(config);
        };
    
        Kinetic.MyCircle.prototype = {
            _initMyCircle: function(config) {
                Kinetic.Circle.call(this, config);
                },
            myFunc : function(){
            }
        };
    
      Kinetic.Util.extend(Kinetic.MyCircle, Kinetic.Circle);
    })();
    

    【讨论】:

    • 我认为是 Kinetic.Util.extend(Kinetic.MyCircle, Kinetic.Circle);现在(例如参见d3lp1msu2r81bx.cloudfront.net/kjs/js/lib/kinetic-v4.5.4.js 的圆形对象)
    • 是否可以使用标准命名约定来代替 _initMyCircle?这似乎是多余的,因为它显然是 MyCircle 初始化程序,但调用它 _init 会导致错误
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-06
    相关资源
    最近更新 更多