nancy
版主
积分:1072

OpenFace技术交流(第一轮:2008-07-18)

2008-07-18,openface网站组织了第一次的在线交流互动活动,通过QQ群展开。
此次的交流活动非常成功,大家提问都非常积极,有些问题甚至不需要我们的技术人员回答,有些用户就已经代为答出。

以下是本次交流会的整理稿件:

1)关于界面和动画
XXXX 15:59:36
对动画和作图的不是很精通,想到做不到啊,没有工具,没有界面,光作图就要花多大脑力呢

OpenFace 16:00:22
确实是,在动画和画图上需要积累一些经验
此外在这次发布的openface上对这些的支持还不够完善
这个对大家的开发也有很大的影响
一般来说,开发中有专门的UI设计组
但是由于大家是个人,所有这块问题比较严重

2)关于设计工具
XXXX 16:02:22
做图用ps吗?

eloo-黄志立 16:05:21
关于设计 大家可以尝试用PS设计
一些小图标 大家可以到网站上去下载,推荐一个网站www.zcool.com.cn,那里有比较多的ICO,以及素材

3)关于API的不兼容及文档
XXXX 16:02:36
有些openlaszlo的机制在openface上好像不能使用,而且之前我们做的时候没有类库帮助信息,全靠看别人代码学习

XXXX 16:05:28
恩,没有一个类似MSDN的类库帮助的话学习起来很费劲的啊

XXXX 16:04:51
帮助文档..pdf类型的好像有点不好找

XXXX 16:05:55
做成chm的检索起来稍微更方便点

XXXX 16:08:43
可以参考http://www.openlaszlo.org/lps4.1/docs/reference/#
感觉这个比较好用,就是有些机制openface还不支持

OpenFace 16:10:35
openlaszlo网站提供的文档确实不错
我们也在学习尽量弄成这样的
类库的帮助信息一块,我们也在进一步把我们的文档改进
但是大家知道,文档这个工作,看似简单,实际很耗时间

heather 16:13:33
文档的部分,我们也在持续改进中,大家要是已经有了什么建议,可以随时提交到论坛或者是写邮件给我们,我们会努力的,而且正在努力

4)关于键值
XXXX 16:04:28
手机键盘keycode介绍下
XXXX 16:05:24
测试手机的键值对照表能发给我们吗?

OpenFace 16:06:21

key Phone simulator
1 49 49
2 50 50
3 51 51
4 52 52
5 53 53
6 54 54
7 55 55
8 56 56
9 57 57
0 48 48
L_soft 33 33
R_soft 34 34
* 189 189
# 187 187
OK 13 13
up 38 38
down 40

40

left 37 37
right 39 39

5)关于按键
XXXX 16:19:43
本地开发,模拟器没有按键
可以改进下吗?
XXXX 16:20:19
模拟器的键 按键盘..好似还更快点

OpenFace 16:20:23
这个可以改进,不过如果支持的话估计大家比较少用
以后我们也许会两种都支持
我们也考虑模拟器本身的美观问题
尽量做成一个和手机模式一样的模拟器,包括手机键盘,同时也支持直接的pc键盘

6)关于dataset更换数据源后的问题
XXXX 16:03:39
我想问一下关于视图绑定dataset以后,dataset更换数据源以后,数据无法正常显示的问题

OpenFace 16:05:46
先确定是否正常读取了新的数据源,再判断是否重新数据邦定的问题

XXXX 16:07:21
比如一个XML里面有很多
的信息,在view中指定datapath,可以实现数据的多行显示,可是当dataset的src改变成其他的XML以后,多行数据显示会出问题。这方面一直不知道怎么回事,是否在更换数据源以后需要释放之前的资源?
我们可以确定成功更换了数据源,只是显示的时候,会出现混乱,新的数据源的条目会出现重复的现象,在模拟器上会直接崩溃或者死机

OpenFace 16:09:45
这个问题根据描述一下子比较难判断是哪的问题,你可以把你的应用放到到openface网站上,然后我们看看,可以是应用的部分代码

7)关于编译的问题
XXXX 16:22:44
其实..在做本地开发的时候,有一个编译的问题...就是相同的文件 编译是能过 而且也生成了dat文件~~但就是运行的时候 模拟器一片空白~~再多编译几次 模拟器又有内容了

OpenFace 16:24:52
这个问题还真难以回答,一个比较可能的原因编译比较频繁,tomcat没有响应过来,导致编译的目标代码不完整从而应用不能正常运行,因为它还要对本地文件作一些操作

8)关于触屏类手机的问题
XXXX 16:22:49
触摸屏类的手机,可以考虑吗

OpenFace 16:23:24
触摸屏类的手机,可以考虑吗
是的,我们已经做出了触摸屏的平台

9)关于lzx的编辑工具的问题
XXXX 16:26:03
可不可以让lzx文件直接修改 这样比较方便

XXXX 16:27:39
用UE直接编辑就可以吧

OpenFace 16:28:21
呵呵,你用什么工具编辑lzx文件的?我们一般不存在文件转换的问题,或者是你的操作系统和我们不大一样?

XXXX 16:28:23
推荐使用Programmer's Notepad
显示.lzx格式XML很爽

XXXX 16:29:02
先用txt编辑 再转换成lzx

OpenFace 16:29:58
o,可能是你对lzx的理解问题,对于lzx的源文件,可以直接用各种文本编辑工具直接继续编辑

XXXX 16:30:10
我用的是ue,使用javascript模式显示,有时候也使用xml模式显示,感觉也挺方便的

OpenFace 16:30:43
看来大家的经验是很丰富了

XXXX 16:30:53
做的时候 用xml格式吧..可以折叠代码什么的...

XXXX 16:30:54
是啊,UE,editplus,pn我都用过,感觉还是pn好

XXXX 16:31:06
其实直接用记事本打开就可以,不用改扩展名的

10)关于API的差异问题
XXXX 16:32:30
我还想问问,模拟器上支持的API是不是和网页上测试的时候不一致呢?

XXXX 16:32:47
经常在模拟器日志里面发现某某函数not found

XXXX 16:33:02
而那个函数是从编程手册里面查出来的。。。

OpenFace 16:33:02
对,网页(浏览器)上是openlaszlo的api

XXXX 16:33:28
这种情况在使用从父类继承过来的函数时尤其明显

OpenFace 16:33:12
而模拟器上是openface的api
openface中lzx语法是通过对openlaszlo改造过来的

XXXX 16:33:53
那这二者的关系从何得知?

OpenFace 16:34:36
lzx语法本来是openlaszlo公司创造的,后来我们认为这个语言非常好,就拿到手机上来用,但是openlaszlo的lzx是为pc应用准备的
要能够在手机平台上推广,必须进行改造,比如性能问题,用户输入习惯问题等等
但是因为时间原因,我们的改造开发过程还在继续,所以大家拿到的版本还存在一些问题,这个我想大家应该都能理解

XXXX 16:38:07
我们如果要正确在模拟上跑起来,不知道哪些函数支持,哪些不支持可是很头疼的呀

OpenFace 16:38:16
不是的,你比较一下就知道,和openlaszlo的文档差别还是比较大的
所以你查api时一般需要在openface网站的文档中查

11)关于获取数据的问题
XXXX 16:39:10
请问现在对于各种类型的网页获取数据都支持么

OpenFace 16:39:34
这个问题是这样的:如果使用dataset 只支持XML
实际上目前就两种类型
XML和text(html、xhml等等)
jsp、asp等等最终到了客户端,要么是xml,要么是html(text)的
这个观念有web开发经验的同志可能会知道
对于非xml的文档,可以直接用javascript中的xmlhttprequest对象来处理,也就是常说的ajax

12)关于动画效果的问题
XXXX 16:41:31
对了,刚刚那个问题,动画如何解决?比如黑白棋来说,希望下完一个子以后看到的不是所有可变的子全部都变了,而是一个一个翻过来的动画效果

OpenFace 16:43:14
实际上达到一个效果可能会有很多种方法,刘瑞的这个问题因为我没有做过无法一下子告诉你怎么做
因为我还没有想象出你这个效果应该是个什么样

XXXX 16:45:46
对了,刚刚那个问题,动画如何解决?比如黑白棋来说,希望下完一个子以后看到的不是所有可变的子全部都变了,而是一个一个翻过来的动画效果

我觉得可以用setTimeout来实现,不过可能逻辑较为复杂

13)关于DOM的问题
XXXX 16:44:41
OpenFace不支持 DOM吧?

OpenFace 16:45:06
你说的是对请求的xml文档进行dom操作?
openface 支持对请求的xml文档的dom操作

14)关于timer的问题
XXXX 16:46:08
openface有没有Timer类?

XXXX 16:46:33
好像暂时可以使用javascript的定时器

XXXX 16:46:46
什么定时器?

OpenFace 16:46:53
对,但是动画本身也支持这种类似定时的动作

XXXX 16:46:59
就Javascript的 settimeout吧

OpenFace 16:47:00
就是setTimeout

XXXX 16:47:18
如何使用呢?

XXXX 16:47:25
对JS不太了解

OpenFace 16:47:36
setTimeout("myFun()",1000)
这个意思是说1秒后执行myFun函数

XXXX 16:47:58
这样,直接使用就可以了么?
不用加个xxx.setTimeout么?

XXXX 16:48:16
注意,那个myFun必须用JS的方式写

OpenFace 16:48:18
对,不过要想用好lzx,需要对js有比较深的了解

XXXX 16:48:18
我觉得 javascript的
去这上面看 www.w3school.com.cn

OpenFace 16:48:22
不需要
它的全部语法是window.setTimeout()
但是window可以省略

XXXX 16:48:51
这样啊,好的,多谢

OpenFace 16:49:03
Javascript权威指南是学习js比较好的书籍

XXXX 16:49:21
注意,那个myFun必须用JS的方式写,似乎不能调用method写的函数

OpenFace 16:49:29
可以
关键是命名空间的问题
也就是对js的理解问题
因为method的方法如果直接用仅仅是在对象内部用

XXXX 16:50:25
哦,明白了,我说我怎么不能用呢

OpenFace 16:50:32
如果在其他地方地方用,应该是canvas.myview.myFun
不过settimeout有个问题,就是调用的函数参数如果是对象类型就很麻烦,有些甚至处理不了
setTimeout("myFun("+i+")",1000),如果i是对象就不行了

XXXX 16:52:25
如果在其他地方地方用,应该是canvas.myview.myFun

就是说setTimeout("canvas.myview.myFun",1000)
这样?

OpenFace 16:52:43
setTimeout("canvas.myview.myFun()",1000),对的
我们暂时不支持setTimeout("canvas.myview.myFun",1000),这样的
可能openface上没有支持不带()的,

XXXX 16:53:41
了解,刚才我打错了

OpenFace 16:54:04
但是ie等是支持的,所以你的用法也没有错

15)关于动画本身的定时的动作问题
OpenFace(984425190) 16:46:53
对,但是动画本身也支持这种类似定时的动作

XXXX
可以把这个问题的详细解决方案放到网上吗?最好有个简单的例子

OpenFace 16:57:14
我们会尽快提供

XXXX 16:57:58
动画那一块感觉看不太懂,可能是比较抽象

OpenFace 16:58:39

补充:我们预计在明天就可以提供一点例子,到时放到论坛上,并且通知大家。

16)关于键盘操作的问题
XXXX 17:08:17
怎样用键盘操作
XXXX 17:09:08
是 pc键盘

OpenFace 17:09:36
使用onkeydown handler

key就是你按的键的键值
另外handler有个reference属性
我们会给出手机上键码表
对于pc键盘的键码,我们给出我们推荐的
但是不给出所有的键值
因为pc键盘的键远远超过手机键,而且仅仅是起模拟作用,如果想知道键值,自己也可以写个小代码测试一下

17)综合的问题
1. OpenFace数据集合与数据节点中,采用多行数据方式进行显示,当用dataset的setsrc重新设定数据源以后,采用dataset的doRequest方法更新以后,发现在模拟器里数据显示不对,多显示了很多行数据,请问这是什么原因?如何解决?
一种可能是我们的bug。在dataset这块的bug可能会比较多。
另外一种可能是用户的代码有问题。
无论哪种情况,都需要用户更进一步的代码进行判断。
2. 网页版编译运行成功,下载到模拟器上,模拟器上不成功。
现象:模拟器黑屏,无法正常载入,最终应用程序崩溃
模拟器能够正常载入和显示,在页面跳转时出现崩溃。

要具体的代码。造成崩溃的原因可能很多。所谓的网页版是openlaszlo的环境跟openface在支持上并不一样,开发人员一般不要在openlaszlo的环境中调试应用,这个问题已经强调过多次,但是陆续有开发人员这样做,原因是我们的提供的环境问题,我会在邮件中专门提这个问题。
3. 模拟器和网页版所支持的函数范围不一致,没有关于模拟器所支持哪些函数的文档,而且模拟器日志文件的错误信息不够详细具体,通常不能准确定位错误。
支持的函数需要看编程参考手册。日志文件默认的输出信息是给平台开发人员看的,应用开发人员一般需要自己在应用代码中加入自己的调试信息。
4. 视图与dateset绑定后如果数据集合条目比较多会出现内存不足问题,不清楚如何释放内存。如果不释放更换数据源以后,条目出现重复等异常现象。
释放内存的问题比较复杂,一般来说要先深入理解javascript的垃圾回收机制以及lzx中数据绑定原理。这样的问题需要给出具体代码才能比较有针对性的解决。
Javascript的垃圾回收机制简单描述为:如果当系统判断某个变量不再被使用时,那么就会将其回收。在Javascript中垃圾回收(或者说释放内存)是系统自动进行的,比如说定期或者当内存不足时。
5. 模拟器上的效果和网页版字体等美工效果完全变化,导致增加开发难度。
根本就不应该在网页版上进行调试,不过这些是我们的错……

OpenFace 16:22:46
大家在开发应用时,最好不要先在浏览器上调试,而是一开始就直接在模拟器上调试

6. 继承的方法在模拟器里无法使用,比如说dataset继承的方法,请问这可能是什么原因造成的?
OpenFace 16:19:31
你是说自己编写的继承dataset的类的方法?
OpenFace 16:19:43
还是说openlaszlo上的一些方法?

7. 无法生成DAT文件(在浏览器内输入生成命令后,弹出的是“是否打开.lzx文件”的命令框)请问这可能是什么原因?注:用浏览器加载.lzx文件运行是没有问题的。
OpenFace 16:18:29
可能是没有正确设置环境,以及设置app.properties文件
XXXX 16:19:12
都设置好了,而且app文件也设置了,是否会和系统有关呢?
XXXX 16:19:21
呵呵,同问第七个,看来大家都遇到这个问题了,OpenFace给大家说个正确的设置和编译过程吧
补充:这个部分在OpenFace网站上的wiki和下载文档及视频中有讲解,不知道是否按上面的操作还是不对,可以把你们的简单设置给描述一下,我们看看是否什么地方出了问题。

kuangxiangly
游民
积分:82

OpenFace第二轮的技术交流什么时间可以公布啊?

heather
游民
积分:258

抱歉,其中有些问题还需要再补充一下,完成后我们就尽快的公布上来。

nancy
版主
积分:1072

第二轮交流已经结束

请期待第三轮技术交流
一般会在周五下午进行