工作内容 | 1.复习 10分钟 2.学习Programming in Lua.pdf 3小时 3.学习 appframe框架代码 (Steven_AppFrame_Test.par和alarmClock) 2.5小时 4.小组讨论 1小时
|
学习心得 | 1. 借助于Lua的table实现trigML的DOM,在此DOM 中每个elem都可以通过vui.element函数来访问,他返回一个table,这个elem的属性通过键值对在此表中表现 Note:通过Lua构建的DOM是实时更新的,而不是保持初始值 2. 调用Lua函数: 1)首先必须使用import导入相应的lua资源如:<import when="_entry" res="script/calculator"/> 2)其次可以使用以下两种方法 a) <call when="_keypress[_key4]"exec="calculator.add('4')"/> b) <image id="banner" res="banner.init()"/> 3. Lua中当且仅当一个变量不等于nil 时, 这个变量存在。 4. Lua 是动态类型语言, 变量不要类型定义。 5. a=print - - a 与print 等价 a(“hello,world”) -- > hello,world print(type(a)) -- >function 6. 单引号或者双引号表示字符串 Lua 可以高效的处理长字符串, 1M 的string 在Lua 中是很常见的 Lua 会自动在string 和numbers 之间自动进行类型转换, 当一个字符串使用算术操作符时, string 就会被转成数字。print("10" + 1) --> 11 当Lua 期望一个string 而碰到数字时,会将数字转成string 。print(10 .. 20) --> 1020 .. 在Lua 中是字符串连接符, 当在一个数字后面写.. 时, 必须加上空格以防止被解释错。 7. print(10 .. "" == "10") --> true 8. 逻辑运算符认为false 和nil 是假( false ) , 其他为真, 0 也是true,空串也是true. a and b -- 如果a为false,则返回a,否则返回b a or b -- 如果a为true ,则返回a,否则返回b 技巧:1)x = x or v 等价于 if not x then x = v 2)(a and b) or c 等价于 a?b:c 9. 表是Lua 特有的功能强大的东西。最简单的构造函数是{ } 用来创建一个空表。 Note:索引的初值是1而不是0 a = {x=0, y=0} <--> a = { }a.x=0; a.y=0 |
10. 遗留问题 | 1.trig里自己的template一般放什么内容? 2.appPhone 中lists/popupMenuItems/insertPause/action文件中引用appFrame中的template/loadPopupMenu如何调用?? 3.att _keypress有些修改是暂时的(一放键,属性又回到原先的值),有些修改即使放键后修改仍存在,是持久的?可见Steven appFrameTest 中pages/pgMain/Main_Page前两个text的按键处理 4.skel/skin 是指<text>< iamge >标签等都不能出现在trig里,还是仅仅把 text、image挂在skin的vfs上?
|