天才教育网合作机构 > 培训机构 >

东莞设计培训网

欢迎您!
朋友圈

400-850-8622

全国统一学习专线 9:00-21:00

位置:培训资讯 > “Flash全站”应该彻底的组件化

“Flash全站”应该彻底的组件化

日期:2005-12-24 00:00:00     浏览:175    来源:东莞设计培训网
“Flash全站”好象很早就开始了,因为界面很帅气备受推崇。似乎每一个接触Flash设计或编程的人,都希望做一个自己的。我也是。

但是我很困惑。因为据说“Flash全站”开始运行后,就不再请求或者很少请求URL了,换页是通过换祯完成的。我开始无法理解,从网上下载了几个成品的源文件。

可是非常抱歉,所有的源文件都是巨型的,极其复杂的。action分布到各个frame和剪辑实例里,而实例都是托放的,你无法知道到底有多少个实例,主时间线有几十层.......。这样的东西既不是动画也不是代码。结果就是无法调试,无法升级和修改。

不知道大家是怎么做的。

推荐的是,像Flex或Laszlo那样做,或者干脆选择它们的一个,虽然我还不知道什么是Flex还有Laszlo。

不选择它们的理由是:

1,我没有空间,几乎没有虚拟空间对它们提供支持。
2,我没有学Java,而是php或者.net什么的,而那两个技术还不很支持其他技术。

即使是这样,也应该使用XML来描述你的程序,把代码和资源尽可能彻底的分开。如果你熟悉Asp.net,就是< ..../>的形式。用这种语法定义任何诸如label的组件(我认为这是最困难的组件了)。

然后,为程序写一个XML解释器,按照你写的some-page.xml文件,create,loadMovie,attach,duplicate一通,把它显示出来。换页就是请求新的xml文件,再解释。

对拉!这听起来比在时间线上“盖高楼”更困难和复杂。但是我觉得至少这样做有三个好处:

1,我喜欢程序胜过画画,我完成这样一个站点等于实现了一个framework,会超有成就感。(光说不练啊,这孩子)
2,这个站点变得可扩展(flexible,MM的产品寓意于此吧?),尽管仅仅对于它的开发者来说(要是有一套标准及不一样了,MM就不学学sun呢?)。
3,对用户来说,因为组件个数有限,即使大量重复也是flyweight的(享元模式),能很大的提高访问速度。

上述第3个优势意义不仅仅如此。

Html只是表达,Asp,Jsp,php这些东西最终也是生成Html。用户只有一点点通过form参与互动的机会,所以叫传统的browser是瘦client。而Actionscript尽管效率低下,却有了较强的client端计算能力。*可能强大到C/S的client一样的程度。那么就厉害了。

可是,要是把和Server交互的代码都堆在frame里......所以如果你的程序最重要不是动画,而是要和用户交互的所谓RIA,必须选择组件化。

这里要提一下“偷偷下载”的问题了。现在的用户,比如我,才不会老老实实的看你的东西,这个页面出来了,看不上两秒就要点点什么按钮啦。那就是换到别的页了,你正在“偷偷下载”的东西自然是被抛弃了。不幸的,没有下载完的swf好象不会存到本地缓存。那么一个100多k甚至几百多k的页面就没有缓存的价值。

相反的,我要“偷偷下载”一些供显示的组件,它们通常不应该超过30k。尽管数量可能较大(其实不会,你有耐心做50个花色的button?),但是等用到时,它们大都在缓存里,会非常快速。

组件化的代价是,用户的CPU要大转了,也更消耗内存,因为加载组件是在运行时。但是我觉得,比起网络带宽,CPU算什么资源?这正符合调剂高速CPU和低速IO的逻辑嘛。

以上内容和Flash课件,Flash动画里的action没有任何关系啊。

如果本页不是您要找的课程,您也可以百度查找一下: