[]runtime运行报错!

今天根据教程设置runtime,发现怎么都会抛出异常,核对操作步骤,没发现什么问题。只好开始跟踪代码,发现laya.ui.js里代码如下:
 View.getCompInstance=function(json){
      var runtime=json.props ? json.props.runtime :"";
      var compClass=runtime ? (View.viewClassMap[runtime] || Laya["__classmap"][runtime]):View.uiClassMap[json.type];
     return compClass ? new compClass():null;
 }
这第2句代码貌似不正常啊?改成下面的样子试试:
      var compClass=(View.viewClassMap[runtime] || Laya["__classmap"][runtime])?runtime:View.uiClassMap[json.type];
 
改完一切正常.
 
汗了,是没人用这个runtime参数 还是我的laya.ui.js版本是错的?
不管怎样,先报下吧
我错了,貌似改错了,不过..................我的问题没解决...........
已邀请:

cuixueying

赞同来自: 小丶kiss

   感谢反馈,该问题已经修复,下载最新引擎版本进行使用即可!

xxhhxxhh

赞同来自: 小丶kiss

这个我看了最近几个版本都是一样的。群里的大神给出的解决方案是在扩展类的时候注册下runtime.
不过今天我折腾了好久,感觉应该算引擎代码bug,按大神的设计是没必要去注册runtime的.
把我改过的代码给大神们参考下,希望能有点帮助
代码在laya.ui.js大约4580行左右。两个函数,都很短.
 
        View.getCompInstance=function(json){
            var runtime=json.props ? json.props.runtime :"";
            var compClass=runtime ? (View.viewClassMap[runtime] || ClassUtils.getRegClass(runtime)):View.uiClassMap[json.type];
            return compClass ? new compClass():null;
        }

        View.regComponent=function(key,compClass){
            View.viewClassMap[key]=compClass;
            ClassUtils.regClass(key,compClass);
        }
第一个函数把我把Laya["__classmap"][runtime]改成了ClassUtils.getRegClass(runtime),因为这个Laya[]总是返回undefined
第二个函数我把View.uiClassMap[key]改成了View.viewClassMap[key],这个我不确定能否这样做,不过这个不改也能跑了。
改完后跑起来似乎正常了。
俺不了解设计,改的不一定对,只能供大神参考了。

要回复问题请先

商务合作
商务合作