zoukankan      html  css  js  c++  java
  • lua中的继承

    做为一个java出身的程序媛,长时间做Lua,重复一些工作后,特别想用继承。其实很简单。因为我有一大部分的场景,背景长的都一样,所以打算做一个父类。

    需要注意的是,如果子类有和父类的同名函数,就会被覆盖,除非手动的调用.super.方法。

    关键的代码就两个地方,都在子类中。

    1 创建场景时:

    local SceneBase = import("app.scenes.SceneBase")
    local ActivityScene = class("ActivityScene", SceneBase)

    2 子类的构造函数中,需调用父类

    ActivityScene.super.ctor(self) -- 这是关键

    超级简单,为什么以前没人用呢,用了多省事啊,便于维护,省了很多人力呢。下面是两个文件的完整代码。

    父类:

    local commImgPath = "#images/common/ui/"
    
    local SceneBase = class("SceneBase", function()
        return display.newScene("SceneBase")
    end)
    
    function SceneBase:ctor()
        print("SceneBase:ctor")
        self:addSprite()
    end
    
    function SceneBase:addSprite()
        print("SceneBase:addSprite")
        self.menuBgHeight = ZySize.scale * 98
        self.menuBgWidth = display.width - ZySize.scalew * 85
        --背景
        cc.ui.UIImage.new(commImgPath.."beijing.jpg")
        :setLayoutSize(display.width + ZySize.scalew*20, display.height + ZySize.scale*20)
        :align(display.CENTER, display.cx, display.cy)
        :addTo(self)
    
        cc.ui.UIImage.new(commImgPath.."tongyongmianban3.png", {scale9 = true})
        :setLayoutSize(display.width - ZySize.scalew* 10, display.size.height - self.menuBgHeight - ZySize.scale * 10)
        :pos(ZySize.scalew * 5, self.menuBgHeight + ZySize.scale * 3)
        :addTo(self)
    
        cc.ui.UIImage.new(commImgPath.."diban2.np.png", {scale9 = true})
        :setLayoutSize(display.width, self.menuBgHeight)
        :addTo(self)
    end
    
    
    
    return SceneBase

    子类:

    local SceneBase = import("app.scenes.SceneBase")
    local ActivityScene = class("ActivityScene", SceneBase)
    
    function ActivityScene:ctor()
        ActivityScene.super.ctor(self) -- 这是关键
    end
    
    return ActivityScene
  • 相关阅读:
    在JavaScript中对HTML进行反转义
    JavaScript 删除数组中的对象
    CSS中的before和:after伪元素深入理解
    关于css浮动的一点思考
    前端常见跨域解决方案(全)
    window.location对象详解
    51nod 1001 数组中和等于K的数对
    51nod 1002 数塔取数问题
    51nod 1015 水仙花数
    51nod 1080 两个数的平方和
  • 原文地址:https://www.cnblogs.com/lan0725/p/4213862.html
Copyright © 2011-2022 走看看