【发布时间】:2014-10-07 21:04:18
【问题描述】:
我在业余时间使用 Easeljs。我试图从easeljs 库中的createjs 对象继承容器。
var innovative = {};
innovative.object = {};
innovative.object.Basic = function () {
};
//innovative.object.Basic.prototype = new createjs.Container;
innovative.object.LocalPhoto = function (data) {
};
innovative.object.LocalPhoto.prototype = new innovative.object.Basic;
innovative.object.LocalPhoto.prototype.constructor = innovative.object.LocalPhoto;
我在 LocalPhoto 中有一个函数,它会像这样将自己添加到舞台上
innovative.object.LocalPhoto.prototype.load = function (stage, event) {
var self = this;
stage.addChild(self);
stage.update();
};
这就是我创建 LocalPhoto 对象的方式
var self = this;
for (var i = 0; i < values.length; i++) {
this.download (values[i], function (evt) {
var photo;
photo = new innovative.object.LocalPhoto(evt.target.object);
photo.load(self.stage, evt);
});
}
我面临的问题是,当我将 LocalPhoto 添加到场景中时,该场景中的其余 localPhoto 也会添加相同的照片。
这就是我在步骤中的意思:1)在容器中插入图像并添加到舞台。 2)新容器中的另一个图像并添加到舞台。 同时,后面的图像也添加到了我添加到舞台的另一个子容器中。
【问题讨论】:
-
不太明白.. 我有一个继承自 Container 的 Basic 类,然后我有一个从 Basic 继承的 LocalPhoto... 不知何故,以前的 LocalPhoto 与后来创建的 LocalPhoto 相关联
-
哦,我知道为什么......我必须为容器调用初始化......但为什么我们要强制这样做而不是隐藏我们......
-
因为初始化类似于传统OOP语言中调用
super()。 JavaScript 不附带super,因此它需要一种方法来初始化继承的类。 -
哦是初始化部分javascript函数或createjs类
标签: javascript jquery inheritance easeljs