第一次用Flash做网站,实现“Hello World”的例子是很快的,但真正开始制作一个监控系统网站时,发现还是有很多问题的。因为是短时间要实现功能,所以还没有来得及了解flash的机制原理,就开始动工,当时确实是一头雾水。下面理清下几个概念。
1.Flash与Flash Builder,Flex
我们所说的Flash就是.swf文件,可以用Flash Professor CS(FP)来制作。Flash Builder(FB)是在FP的基础上更适合编程人员的思维的一个开发工具,界面和Eclipse差不多。Flex是一个框架,是ActionScript语言的开发环境和SDK。
FB中也可以制作自定义Flash组件,但我还是在FP中做好swf通过SWFLoad方式在FB中加载。后面再仔细讲FB和Flash的交互。
另外,Flex擅长做数据驱动的应用,以及多媒体类的应用,比如视频播放等等,但是对于文字内容比较多的应用,就不太适合。
2.框架
pureMVC、Cairngorm等等,做网站之前规划工作是必须的,所以自然而然考虑到了框架问题,推荐http://wiki.9ria.com/index.php/%E9%80%89%E6%8B%A9%E4%B8%80%E4%B8%AAFlex%E6%A1%86%E6%9E%B6,其中分析了Cairngorm、Mate、pureMVC、Swize框架的优缺点和适用场合,同时作者也建议“如果你是工作在一个大型团队中,你可能想要比做自己的项目更多强制的结构。预定义的结构提供的团队工作环境的简化和代码的一致性足够弥补你为一个更需要结构的框架创建所有必须的类而增加生产时间和项目大小。相比之下,如果你是一个项目上工作的唯一开发人员并且你只是需要一些东西来是生活更简单速度更快的开发,然后可能就你需要一个那种不需要强调太多结构的框架来运用到你的项目上。”,由于我的网站是示范工程的网站,而且在短时间内开始新的网站,花太多时间去研究框架似乎是个不明智的选择,所以最终选择先放弃框架,实现功能,后期多个基地整合时再考虑框架,有利于基地的扩展。
虽然不用框架,但是在文件布局上可以参照框架的文件夹格式,比如素材都放在assets文件夹下,style存放特效和css,data存放数据,component存放自定义组件等等。
3.网站页面
Flash网站中页的概念不同于ASP.Net中,ASP.Net中新建一个.aspx则是新的一页,而FB中建议一个项目中只有一个mxml应用程序。Flex中是通过State(状态)来实现“页”的概念,一个新的State就是一页,也可以通过mxml组件PopupManage弹出新窗口作为一页(嘻嘻,效果上是可以实现新一页,但原理上就完全不是)。
4.Module
FB中的module使用可以实现动态加载,从而减小最后生成的swf文件的大小,缩减浏览器加载的时间(Flash网站最后都是生成一个swf文件,客户端访问网站时会自动下载swf到本地)。