openface
技术支持
积分:420

OpenFace技术交流(第二轮:2008-07-25)

OpenFace技术交流的第二轮活动也顺利结束了
在这次的交流活动中,大家所提的问题更加深入,很多都已达到一定高度,但另一方面,我们也发现,还是有些基础的问题大家容易混淆
通过这两次交流,我们获得了很多讯息,更有利于我们对于学习文档的修改和整理

以下是技术交流所讨论的问题:

1) 关于组件开发
XXXXX 16:29:36
哦,那比如下拉框这样的东西,要模拟才可以吗?

OpenFace 16:28:48
关于不支持组件开发模式,其实目前也是支持组件开发模式的,只是没有提供组件
换句话说,你可以自己写一些组件,特别是团队开发中
另外我们也在准备提供组件
只是提供组件不是件很简单的事,因为手机平台的多样性和pc还不大一样

XXXXX 16:31:52
如果自己写组件,怎么封装?能否尽快给一个例子?

OpenFace 16:32:09
写一个组件就是写一个class
你看看openlaszlo提供的组件就知道了

2)关于组件开发与drawview
XXXXX 16:32:23
哦,用drawview这样的标签写吗?

OpenFace 16:32:40
肯定不局限于drawview

XXXXX 16:33:01
哦,我明白了,不过那些图形还是要靠图片吧

OpenFace 16:33:09
使用Lzx开发千万别禁锢于其他的语言

XXXXX 16:33:29
请具体说下

OpenFace 16:33:40
呵呵,如果用drawview画不出来,你可以使用图片
严格将,drawview可以画出很复杂的图形
但是有个时间效率问题

XXXXX 16:34:26
恩,那图片过多是不是也影响程序打开的速度

OpenFace 16:34:32
对。所以一般情况下,能够不用图片就不用图片

3)关于OpenFace提供组件
XXXXX 16:35:04
如果修改openlaszlo提供的组件,工作量会有多大?
XXXXX 16:35:35
肯定不小吧

OpenFace 16:35:45
那个工作量会很大,关键的是OpenLaszlo提供的组件是基于PC设计的
有些存在先天缺陷

OpenFace 16:36:11
有些根本就不适合手机系统
所以我们要总结手机上的情况,自行开发

XXXXX 16:36:30
那怎么办?

XXXXX 16:36:45
可以提供一些简单的组件

OpenFace 16:37:21
是的,我们已经在做,发布的版本上因为不是很成熟所以去掉了

4) 关于应用的UI

XXXXX 16:35:49
恩 想把界面做的比较漂亮一些,想到做成什么样啦?但不知道如何去做?用PS做的不是很美观!贵公司是用什么工具做的啊?我看有的界面非常的美观!

OpenFace 16:36:48
界面问题,因为我们有专门的UI团队

XXXXX 16:36:45
可以提供一些简单的组件
是的,我们已经在做,发布的版本上因为不是很成熟所以去掉了

XXXXX 16:37:24
那我们实现功能,UI交由公司后期完善?

XXXXX 16:37:28
哦,那界面和美工方面UI团队会帮助我们完成吗

OpenFace 16:37:54
我们只能尽量提供帮助,但是UI还需要开发者自己完成的 
大家在开发应用时要考虑一件事,就是让我们很很方便地帮助你们改进UI
换句话说,比如说,某张图片效果不好,我们改图片就是,但是还要代码就看复杂度了

XXXXX 16:40:01
必要的代码注释我们也会加,这样更好些

[Heather:关于UI是衡量一个应用的一个重要方面,但是UI不是简单的一个图片美观的问题,而是包含了与用户良好的交互,所以大家在这个部分不能掉以轻心,而且这会对应用有较大的影响,开发者应该在开发时预先以一个手机用户的角度来考虑,否则这个应用的价值会受到很大的影响,另外大家对于图片,其实可以借用一些现成的,甚至有时只是良好的配色和整洁的布局就能让一个应用达到较好的效果。]

5) 关于OpenFace的继承性
XXXXX 16:37:48
如果openface和Openlaszlo的继承性有J2se和j2me的那么好就可以了

OpenFace 16:39:47
呵呵,会的

OpenFace 16:40:32
你基于标准的j2me开发的一个手机应用,拿到Nokia的手机上未必能运行
也就是说在不同的手机上j2me也有差距的
可见手机平台的多样性

XXXXX 16:41:02
恩,明白

6) 关于XML与lzx
XXXXX 16:41:31
在这里是怎么样把XML运用到.lzx中的?它的机制和作用是什么?因为开发文档写的比较少,有一些东西自己摸索的,感觉很慢!有什么可以帮助我们理解的吗?

OpenFace 16:42:11
Ok。可以这样理解lzx
它用标记语言(XML)来描述程序的结构,用script来支撑程序的运行
从源代码和目标代码来说
源文件是xml文档,通过lps的编译,根据lzx定义的语法规则,将其转换成在不同目标平台上的目标代码(swf\html等)

7) 关于openface与symbian的联系接口
XXXXX 16:44:35
那openface提供和symbian联系的接口吗?
比如有API函数吗?

OpenFace 16:45:28
我们有这样的接口,但是开放哪些我们需要审核
暂时不提供

8) 关于swf文件能否运行于Openface
XXXXX 16:45:45
那swf文件能运行在Openface上吗?

OpenFace 16:46:00
不能

9) 关于网络服务器及相关
XXXXX 16:47:16
如何实现底层的东西呢?现在做的都是单机的应用?怎么实现于网络的交互呢?也就是说如何通过网络更新呢?现在可以吗?

OpenFace 16:47:40
dataset或者XMLHttpRequest对象

XXXXX 16:47:45
恩,还有就是怎么模拟那样的环境?

OpenFace 16:48:18
lzx是为web应用(RIA)设计的,
怎么模拟那样的环境?指什么?

XXXXX 16:48:55
就是搭配基于无线网络的应用
XXXXX 16:49:02
恩 是如何的交互呢?
XXXXX 16:49:14
比如用手机登录一个网络上的网站
XXXXX 16:49:58
有些应用需要服务器,我们团队在考虑做这方面工作,如何搭环境?

OpenFace 16:50:37
交互的问题请见文档中关于dataset的说明,XMLHttprequest对象(ajax)在网络上有很多说明。我在这里一下子也说不清楚
其实没有特别的环境

XXXXX 16:51:02
哦,这些问题我们要参考那些书籍?比如

OpenFace 16:51:13
搞清楚一般web应用的机制
dataset的说明在wiki上的开发指南及编程手册中都有
web应用的是通过http进行连接的

XXXXX 16:52:10
不过和无线服务器比如,WAP这样的连接呢、

OpenFace 16:52:15
搞清楚服务器和客户端的概念
wap这样的连接,你必须SP才行
但是你是可以直接编写应用访问移动梦网现有的内容的

XXXXX 16:52:31
我是想公司可以写一个文挡,以一个带网络服务器的实例,说明一下,这样很直观,比书本理论强

OpenFace 16:53:11
建议很好

黄志立 16:53:03
大家也要善于寻找自己想要的资料
开发文档对大家非常有帮助的 
还有论坛 很多集中的问答 论坛上面都有

OpenFace 16:53:42
其实我们在wiki上有一些网络应用的例子 比如天气预报

XXXXX 16:54:09
哦,但是天气预报上边没具体说怎么搭建环境

OpenFace 16:55:16
具体说怎么搭建环境
其实是大家对客户端服务器段的概念还不熟。tomcat就是一个服务器环境,

XXXXX 16:55:46
我们是不明白,它怎么访问移动梦网这样的网站
这方面的只是我们是需要学习的 

XXXXX 16:57:12
恩,是的,关于移动方面的事情还有很多学习

OpenFace 16:57:50
移动梦网在一个服务器上,通过http(dataset或者XMLHttprequest)发送请求,然后服务器返回wml的页面(也就是XML)
但是有个问题:移动梦网有网关设置,所以一般的网络是直接连不了的

XXXXX 16:58:27
哦,那手机通过GPRS,???

OpenFace 16:58:33

XXXXX 16:59:29
哦,明白了些

XXXXX 17:00:08
lzx通过ajax如何获得指定网站的源文件(比如http://news.cctv.com/01/index.shtml)

OpenFace 17:00:33
另外手机上支持访问web,所以如果你做手机的网络应用,要保证你的服务器有公网地址
而在模拟器上开发,tomcat做你的服务器就可以了

10)关于Javascript的学习

Javascript的书籍,Javascript权威指南,强力推荐

11)关于本地文件的读取和修改操作
XXXXX 16:50:02
还有就是LZX提供对手机本地文件的读取和修改操作吗?

XXXXX 16:54:41
比如读取手机上的MP3什么的

OpenFace 16:55:57
能操作本地文件,当前的发布版本有暂时还不提供

XXXXX 16:56:16
那什么时候支持?

OpenFace 16:56:16
另外这个也和手机平台的环境有关
下个版本也许我们会提供部分支持

XXXXX 16:57:10
下个版本什么时间可以发布啊?

[目前的时间表没有最后出来,我们在推出时,会提前知会大家]

12) 关于xml的解析和修改
XXXXX 17:01:23
有个问题,我们怎么知道XML的内容?不知道内容无法解析所需要的数据?

OpenFace 17:01:52
呵呵,这个问题太强了,你想做搜索引擎?

OpenFace 17:02:22
因为一般的网络应用,你是知道你要取得的xml文件的结构
知道结构而不是内容,就可以正常解析数据

XXXXX 17:02:10
那能通过openface修改xml文件吗?

OpenFace 17:03:01
不能,http协议没有这样的能力

XXXXX 17:03:33
比如说我要做个通讯录
增减一个人的记录,那要把数据存到xml里是不可以吗?

OpenFace 17:03:41
但是lzx可以修改xml文件在程序代码内存空间中的数据

OpenFace 17:04:24
你的xml存在哪里?
可以想象一下

XXXXX 17:04:31
手机上

13)关于RSS相关
XXXXX 17:04:48
呵呵,做百度新闻客户端是不是通过读取RSS文件实现啊

OpenFace 17:05:30
其实我觉得是很容易实现的

XXXXX 17:05:13
RSS软件比较难移植到手机上的,只是读取文件

OpenFace 17:05:30
如果用过dataset后者ajax请求xml的朋友可以回想一下,我们在写应用时xml文档是放在源代码目录下的,目标代码目录下并没有xml文件

XXXXX 17:06:37
RSS很容易实现?

OpenFace 17:06:47
就是用lzx实现一个rss的reader

XXXXX 17:07:07
哦,明白了些。不过那是通过网络读取的

OpenFace 17:07:36
rss是用xml规范定义的数据结构,事实上lzx对xml应用可以说是天生支持的

14)关于网络连接的环境搭配及如何提供服务
XXXXX 17:07:41
还请你们尽快吧具体网络连接的例子写好

OpenFace 17:08:08
呵呵,我没有太明白你说的是什么样的例子,wiki在线开发上应该有很多

XXXXX 17:08:34
就是搭配环境,在tomcat下的环境

OpenFace 17:08:42
O.其实步骤很简单,把你的jsp文件放到你的webroot目录下,启动tomcat后,你服务就起来了

XXXXX 17:09:59
tomcat服务器我还明白些

OpenFace 17:10:11
你可以通过http://localhost:8080/OpenLaszlo/myappserver/index.jsp 访问
这个就是环境
那你想问的环境是指什么?我的理解,没有别的环境了
所以我说要理解,web开发中的客户端与服务器端

XXXXX 17:11:13
哦,JSP和servlet都可以用来提供服务?

OpenFace 17:11:36
是的。你也可以用IIS提供的html静态页面
只要是一个web服务器就可以提供服务

XXXXX 17:12:14
有没有具体的写法限制??

OpenFace 17:12:49
写法限制指什么?lzx中还是你jsp servlet?

XXXXX 17:12:59
jsp中的写法,比如参数什么的,有没有特别的限制?

OpenFace 17:13:35
没有,一般服务器端和客户端是不管对方用什么语法
他们通过http通讯

XXXXX 17:14:10
哦,明白了下

OpenFace 17:14:16
对于客户端来说,它能理解服务器传过来的数据格式即可
而服务器端也是如此

15) 关于使用内存的注意事项
XXXXX 17:14:42
明白了
那还有就是,LZX文件最好多大?我在写一个游戏的时候就遇到了内存不足的情况

OpenFace 17:16:06
呵呵,越小越好。这个问题没有答案拉
这样说可能大家理解点

XXXXX 17:16:49
在使用内存时,有哪些注意点?

OpenFace 17:17:41
对于lzx源代码,最终被编译成目标代码,如果源代码中的标签元素(包括动态创建的)越多,就要占越多的内存。但是占内存不仅仅是源文件大小决定的

OpenFace 17:18:10
比如你js要运行,要用临时和全局变量
如果请求http的xml数据,那么还把这个xml文档解析,也要占内存
这个和其他的语言是一样的
你载入目标代码要内存,运行还需要,
使用内存时的注意点:
1、尽量少用标签,尽量重用标签
2、尽量少用全局变量,多用局部变量
注意,xml标签下的属性,生命周期也是全局的,尽管从作用域上是局部的

如果是标签的属性,需要引用对象类型,那么当所用的对象不需要时,把它设置能null
这样系统在垃圾回收时会处理

16)关于对JS的兼容问题
XXXXX 17:18:04
还有就是JavaScript的兼容度问题

javascript兼容性
应该说ECMA-2 标准定义的
但是也会有些实现问题

哪些函数不支持?比如?

XXXXX 17:23:43
Math 的一些函数。Day的一些
Math.floor()
这样的函数

OpenFace 17:24:03
这样的函数是支持的

17)关于在OpenFace和手机上运行效果(对OpenFace的模拟环境概念澄清)

XXXXX 17:24:40
在openface和在手机上的效果很不一样?怎么办?

OpenFace 17:24:57
因为我之前接到过这样的问题,所以我比较奇怪,详细请再联络

OpenFace 17:25:17
我不知道你所的openface的概念是否正确
你是不是指在浏览器上?

XXXXX 17:25:36
是的

XXXXX 17:25:41
恩 就是在浏览器上运行的 和在模拟器上的不同?

OpenFace 17:25:57
浏览器上的不叫openface,叫openlaszlo

OpenFace 17:26:21
openface是指模拟器或者手机

XXXXX 17:26:32
模拟器!

OpenFace 17:26:46
你对浏览器上的那个窗口点右键,就知道那是一个flash

XXXXX 17:27:25
哦,明白\\

OpenFace 17:28:05
关于openface的概念,很多开发者问到,这算是我们的一个失误,在下个版本中我们变换一下方式,让大家不那么容易认为浏览器上的就是openface的。

johnny_sun
游民
积分:150

就一个字,好