1.定义一个类:
local MyApp = class("MyApp", cc.mvc.AppBase)
2.构造函数:
ctor: 构造方法
3.调用基类构造函数:
MyApp.super.ctor(self)
4.enterScene场景跳转:
1)函数原型在AppBase中: enterScene(sceneName, args, transitionType, time, move)
函数可以接收四个参数,lua语法允许少写参数,默认为nil
sceneName是要跳转的场景名
args是传给该场景的构造参数,args需要是一个table
transitionType是场景切换的过度动画类型
time是过度时间
more是过度效果附加参数
2)实际调用会执行到如下代码:
// 在Lua中字符串连接操作符是两个点 (`..´)
// lua的require将会把.转义成路径分割符?转义成模块名
local scenePackageName = self.packageRoot .. ".scenes." .. sceneName
local sceneClass = require(scenePackageName)
local scene = sceneClass.new(unpack(checktable(args)))
3)可以通过enterScene将指定的参数传递到指定场景的构造函数
self:endterScene("MainScene", {“你好”, “cocos”})
MainScene:ctor(arg1, arg2)
5.不一样的类定义?
local MainScene = class("MainScene", function()
return display.newScene("MainScene")
end)
这片代码是定义一个名为MainScene的场景类,并且赋值给local变量
1.display.newScene("MainScene")实际会调用底层代码创建一个没有名字的场景
2.NodeEvent可以控制一组事件是否开启监听
3.MainScene的最后一行是return MainScene,所以需要引用这个场景的时候值需要:
local MainScene = require("app.scenes.MainScene");
Q1.“类定义”的两种写法具体的意义和区别是什么?
Q2.require会不会让被require的脚本重新执行一次,如果是return了模块中的lcoal变量,是不是每次返回的都将是同一个值?