让flex3与flash cs3珠联璧合协作开发
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目录下的类库目录添加进来,如下:

尝试过建立目录快捷方式,不成。
上面那个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日于北京朝阳园
原文链接:http://blog.sban.com.cn/2008/03/06/flex3-flash-cs3-work-together-better.html
Other Posts



hqiang983@126.com Said on 七月 16th, 2008 at 4:03 下午 quote
你好,这篇文章的源文件下载的链接不可用,可以发一个到我的邮件吗?谢谢
Reply
sban Said on 七月 16th, 2008 at 11:38 下午 quote
下载链接已修复。
Reply
Archer_Lee Said on 九月 9th, 2008 at 10:58 上午 quote
如何在flex中编写flash的文档类?把flex project建在fla文件目录下显然不合适。不改变现有的flex work space设置,甚至project设置,在项目的属性上,打开flex build path | soruce path,把fla目录下的类库目录添加进来,如下:
这一小段没有看明白,能详细介绍一下嘛?
Reply
sban Said on 九月 19th, 2008 at 7:46 上午 quote
to Archer_Lee:
这一段的意思主要是讲如何用flex builder为flash编写文档类,通常有两种做法:
其一,即上面这种,在flex project > 属性 > flex build path > source path中添加flash as类文件的目录路径。
其二,建立一个flex library project,专意写文档类,然后在flash cs3软件的as类库引用设置中,添加对flex library project目录的引用。添加as类库引用,可以对所有文件设置,也可以对单个文件设置。
我一般使用第二种方法。
Reply
dj Said on 十月 17th, 2008 at 12:32 上午 quote
请问flex编译有哪些参数 你能把这个也编译成2k 吗 或者说最小能有多小?
Reply