有了API还需要界面描述语言吗?

早在一年前就和老米讨论过,当时老米同学提出:“我觉得以后不再需要HTML了,因为只要提供足够的API,我们的JavaScript就完全能够生成我们需要的任何界面了。” 听到了这里我当时和我的一个朋友反对地说:“不可能,而且以后HTML和JavaScript会更加强大,而不是那一个衰弱:HTML拥有更加强大的描述能力,而DOM提供的API也更加强大,从而JavaScript能够更好地控制每一个元素属性与样式。为什么这样说呢?纵观Flash的发展历程就知道了,我们的Flex从无MXML到有,就是一个这样的阶段,全部用ActionScript当然可以把界面描述出来,但是效率和工作的花费是得不偿失的,为了能够让ActionScript能够准确地描述出界面,我们需要测量,需要对固定的对象进行排位,需要对每一个元素的位置进行安排,这当中是非常复杂的。就工作量而言,甚至呈级数的增长。

然而描述语言的出现,大大降低了我们的工作复杂性,一切都变得简单,为什么?因为其更加专业,更加适合描述一个界面。

再观察Flash自身,有朋友和我提过为什么不把ViewPoint的UI完全用通过Flash Player 的绘图 API 来绘制出来呢?而是直接利用Flash绘制出一个皮肤,然后将对应的类导入链接好。其实这样做有3个目的:

1、更好地实现代码分离,AS不掺和界面的东西,其要管的是界面上各个元件的动作。设计师们只需要设计出UI部件,开发人员只需要编写好程序。然后通过绑定和链接,就完成了。

2、之所以不使用AS来描述界面还有一个致命原因就是过于繁杂的代码,是“繁杂”而不是“复杂”,简单的一个窗口界面我们就必须用N行的代码来描述,更别说一个华丽的窗口了,当你真这么做的时候会发现是愚蠢和无奈的,因为工作量很大,即便原理很简单但是却很要时间,为何用一把小刀来剧树呢?

3、利用AS来描述界面最希望实现的一个功能是:能够让用户更好地制定页面,这点我是不反对,要是想制定页面也不是难事,这点既是Flash的强项也是Flash的弱项,而这么使用刚好就展现出其弱项了。正如第一点所提,由于界面和代码的分离,所以设计师可以设计出好几套完全不一样风格的UI,然后编译出不同风格的VP,这样不但约束少而且可以让更多的人加入到这个设计工作中(虽然这样可能存在灵活性不够等问题,但是确是一个折中的办法)。而不是让不懂AS的设计师去苦涩地吞咽那些代码。不要说这样会导致整个体积会增大,VP仅仅有200K的大小,而且不同的风格仅仅对应不同的文件,这样就不会出现需要一次把所有风格都下载的问题了。

综上所述,每个语言都有自己的长处,正确地使用才是关键,最忌讳的就是语言之间“狗拿耗子多管闲事”。

loading...