lufy's legend

标题: 引擎中clone的问题 [打印本页]

作者: yorhomwang    时间: 2015-8-4 21:49
标题: 引擎中clone的问题
这个问题来自群里的同学四明幻客,这里我帮他汇报这个bug。他的原话是这样的:

继承LSprite的类克隆后,方法全都丢失”,本人只是测试了一下LSprite,看了一下源码,继承LObject,带有clone()方法的类应该都有这个问题。
测试代码:
  1. LInit(24, "mylegend", window.innerWidth, window.innerHeight, main);
  2. function main () {
  3.         var t = new TTY();
  4.         t.ttyMethod();

  5.         var tc = t.clone();
  6.         tc.ttyMethod();
  7. }
  8. function TTY(){
  9.         base(this,LSprite,[]);
  10.         var self = this;
  11.         self.name = "tty";
  12. }

  13. TTY.prototype.ttyMethod = function(){
  14.         var self = this;
  15.         console.log(self.name);
  16. }
  17. t.ttyMethod(); 正常
  18. tc.ttyMethod(); 方法丢失
复制代码

作者: lufy    时间: 2015-8-4 22:48
多谢告知,下个版本修正
作者: yorhomwang    时间: 2015-8-5 16:34
lufy 发表于 2015-8-4 22:48
多谢告知,下个版本修正

还有另外一个bug,我在环聊里汇报了
作者: lufy    时间: 2015-8-5 23:40
yorhomwang 发表于 2015-8-5 16:34
还有另外一个bug,我在环聊里汇报了

环聊是什么?
作者: yorhomwang    时间: 2015-8-6 00:36
lufy 发表于 2015-8-5 23:40
环聊是什么?

hangouts,就是gmail下面那个
作者: lufy    时间: 2015-8-6 12:19
yorhomwang 发表于 2015-8-6 00:36
hangouts,就是gmail下面那个

不好意思,那个链接已经打不开了
作者: lufy    时间: 2015-8-6 17:46
yorhomwang 发表于 2015-8-6 00:36
hangouts,就是gmail下面那个

问题应该是文件读取时间差的问题吧
解决方法
39254.js文件用LLoadManage来读取,
或者,把LInit放到window.onload里面
作者: yorhomwang    时间: 2015-8-6 19:00
lufy 发表于 2015-8-6 17:46
问题应该是文件读取时间差的问题吧
解决方法
39254.js文件用LLoadManage来读取,

但是根据该用户报道,这个和LTweenLite有关系。不知道lufy能不能解释一下
作者: lufy    时间: 2015-8-6 20:03
yorhomwang 发表于 2015-8-6 19:00
但是根据该用户报道,这个和LTweenLite有关系。不知道lufy能不能解释一下

代码里面用到了变量obj,而这个变量在39254.js文件里,可能这个文件没有读取完的时候就被使用了
作者: yorhomwang    时间: 2015-8-6 20:55
lufy 发表于 2015-8-6 20:03
代码里面用到了变量obj,而这个变量在39254.js文件里,可能这个文件没有读取完的时候就被使用了 ...

也就是说可能是firefox自己的bug啦?除此之外,还有什么解决方案吗?
作者: lufy    时间: 2015-8-6 22:27
yorhomwang 发表于 2015-8-6 20:55
也就是说可能是firefox自己的bug啦?除此之外,还有什么解决方案吗?

不能算浏览器bug,是代码的问题,
既然用这个文件里的变量,那当然要先保证这个文件已经读取完了




欢迎光临 lufy's legend (http://lufylegend.com/forum/) Powered by Discuz! X2.5