flash cs3 与flex buidler 3各有千秋。写actionScript一定要用flex,做设计一定要用flash(当然photoshop也不可少)。当然有的人说了,我的actionscript语法熟的很,用记事本又有何妨,就好比开发.net,放着vs不使,用记事本编写代码。这样的怪人不是没有,但其实没有必要。.net类库浩瀚云烟,试问天下programmer,谁人全然知晓?flex类库虽然不及.net,但也着实不少。自命精通的人,不是天赋异禀,便是吹牛放屁。
高手不在于使记事本盲写代码,而在于如何利用现有条件使开发更快捷,成本更低。
flash cs3支持document class及类绑定,充许design与code分离,这便为flex与flash结合开发奠定了基础。下面sban 用一个小例子和大家控讨一下,如何让flex与flash珠联璧合,和协合作?
这是我用flex3 与flash cs3写的一个小的demo,方向风标可以拖动整个对象。play按纽可以让五星转动或停止。这是一个很简单的例子,主场景中只有一个影片剪辑。这个影片剪辑的时间线截图如下:

主场景,以及一个非最终影片剪辑(有一些逻辑,包含更小的影片剪辑),我不主张开辟太多的frame,一般情况下两个足够。第一frame用于初始化(init,相当于是这个影片剪辑的constructor),且只执行一次;第二年frame用于运行。
这个影片剪辑只在label frame 1中有一行代码为:mc.stop();,它告诉mc在开始时停止播放,等待play按纽通知。
这个影片是与一个文档类DocumentClassSample绑定的(如何绑定文档类,右击库中元件属性,可参见adobe labs)。而这个文档类不是用flash写,它位于DocumentClass.fla同目录sban.labs目录下,但它却是用flex编写的。
为什么要用flex编写?在目前flash的代码提示太让人失望了,而致力于编码的flex在这方面做的却相当棒(当然,flash代码编辑器并非一无是处,flash有漂亮的code format功能,还有选择一个语法词汇,比如addEventListener,右击查看帮助,则会转到addEventListener的函数参数定义处,这个功能还是相当靓丽的)。
如何在flex中编写flash的文档类?把flex project建在fla文件目录下显然不合适。不改变现有的flex work space设置,甚至project设置,在项目的属性上,打开flex build path | soruce path,把fla目录下的类库目录添加进来,如下:

尝试过建立目录快捷方式,不成。
点击下载此示例flash源码文件
上面那个swf是flash生成的。既然是flash与flex协合开发,那么我们或许更希望flash做出来的影片剪辑可以在flex直接使用。事实上,这是可以的,并且是推荐的。
这个swf便是用flex生成的,由于没有用rsl瘦身且编译参数是默认的,它有249KB。而上面那个只有2KB。不要因此放弃flex,加上适当的编译参数,大小与flash无异。flex在快捷开发方面是flash无法相比的。一般来说,后台程序,操作性强的管理程序,使用flex开发。
那么如果让flash开发的mc可以用于flex之中呢?方便很简单。
一,选中库中元件,点选命令|Make Flex Conponent(如果没有这个命令,可能需要安装FlexComponentKit)
二,第一步之后,如果没有错误的话,将给出类似如下提示:
Component "DocumentClassSample" is ready to be used in Flex.
而DocumentClassSample也默认绑定了DocumentClassSample类,及它的基类也变成mx.flash.UIMovieClip。这一点在mc的右键菜单|属性...中
三,把基类改为flash.display.MovieClip,把DocumentClassSample改为sban.labs.DocumentClassSample。
四,打开mc右键菜单,选择导出SWC文件...,OK,在flex工作中引用导出的swc文件就可以了。
希望在flash cs4中,一至四的操作可以用一个命令完成。
sban 2008年3月6日于北京朝阳园
Retrieved from http://sban.com.cn/archive/2008/03/06/flex3-flash-cs3-work-together-better.aspx
posted @ 2008-03-06 02:41
sban 阅读(2237)
评论(3) 编辑 收藏 所属分类:
flex