美文网首页Laya技术分享
Laya的一些开发技巧

Laya的一些开发技巧

作者: JUNE言JUNE语 | 来源:发表于2017-04-09 14:58 被阅读228次

    全局变量

    在laya的开发过程中,遇到过有个很严重的问题,由于分了模块之后需要的参数需要全局共享,但是一开始并没有考虑到将变量全局化,而是简单地采用最粗暴的方法,直接传参。这样虽然可以让方法看起来非常简单明了,但是有个很大的坏处就是许多的参数需要一层一层传下去,而且会造成一个方法会有一堆的参数,有时候可能只是因为底层某个方法需要某个参数,就需要将所有调用的方法都添加上对应的参数。

    面对这样的问题最好的解决方法就是将对应的变量全局化,在我的“色子王”项目中,我们有一个game类的全局对象,主要是记录每一局游戏的一些全局信息,例如

    mainPlayerIndex:当前玩家对应在playerList中的index
    curPlayerIndex:当前叫点的玩家
    

    类似上面的这些变量,我们都放在game对象中,然后使用下面一句代码将game全局化

    window.game = game;
    

    之后就可以通过window.game去调用对应的game对象,而不需要传入参数。

    但是

    这样做是有一定的风险的。因为对应的变量是全局都可以调用的,所以有时候在开发的过程中我们需要考虑变量的初始化。
    无论什么时候,变量一定需要先初始化赋值后才可以调用。
    因此需要在实现之前就确定好整个系统的流程,不然很容易造成方法调用出bug。

    全局变量的另一种做法

    该做法是参照梦佳的Laya教程——打地鼠上面的做法。
    在入口文件LayaSample.js中入口参数做了这么的设置

    window.LayaSample || (window.LayaSample = {})
    

    通过这样的一行代码将LayaSample全局化,所有变量都可以通过LayaSample存放后全局使用,其实跟window是一样的做法的。

    socket.io

    这一块也不算是Laya的,所有的前后端都适用。
    在跟后台的socket交互中,一般我们会使用不同的事件名来管理事件,为了方便理解,我们可能一开始会采用硬编码+有一定意义的英文去表示。

    对于普通的项目这种做法是没有任何问题的。
    但是,在这里我们还是推荐大家使用软编码+减少信息量来表示。

    软编码的做法就是采用可配置的形式,将对应的事件名管理放在配置文件中,不需要每次都去修改源代码。
    减少信息量,一般可以采取参考http中的响应数字,如404代表找不到页面之类。

    相关文章

      网友评论

        本文标题:Laya的一些开发技巧

        本文链接:https://www.haomeiwen.com/subject/hkudattx.html