----------简介----------
和过去的Macromedia Flash产品一样,当你看到Macromedia Flash MX 2004能做什么的时候 你铁定也傻了眼。这个版本(包括Flash MX 2004 特别专业版)更加确定了Macromedia Flash 的多功能网络媒体开发工具(RIA)的地位。
Macromedia Flash支持多功能网络媒体并且在网络上运行良好,不过实际上你从Flash 4的时候就能做这些了。但用户们对你的产品有更多的期待,他们想马上获得及时的信息并清楚显示出来,不管这些受不受到完全的控制,他们也希望产品能够实用并且便于使用。所以,要想应付这些期望,你需要控制住产品开发的每个方面:数据连接,视觉表现和高质量的RIA,以及视频。
你的制作时间终究是有限的,所以改进效率是一直所提倡的,Macromedia Flash MX2004就成功地提供了这些极限的需求。
----------它是一个被控物体----------
成为一个被控物体是很好而且很有意思的。这次的更新应该满足有这种需要的开发者,设计师,产品经理和通过给与更多控制的最终用户,这种控制是从外部数据读入Macromedia Flash,控制你如何给该用户或者整体用户群表达信息。
数据控制: 数据榜定组件
数据就好比你RIA生存需要的氧气,你的产品只能和表现的数据所关联。现在,所有的网络服务都可以通过SOAP协议完成目的,你可以用Flash Remoting来连接网络服务,但现在你可以用Flash MX 2004内提供的更简单的数据组件来完成。
数据组件不是用户可以看得到的,更确切地说,使用它们,你只要确认外部数据源(例如XML或者网络服务)并且提供一些参数,所有的连接处理,数据交互和解析都由组件来完成。如果你熟悉Macromedia的FireFly组件,你就会明白像连接元件,处理元件和数据组(描述和处理数据细节的工具)
新的组件面板是一个和数据组件交互信息的命令中心,已经确定的组件有改良版ListBox,DataGrid和三个新的文本组件。

图1.新的组件面板,显示了绑定在Numeric Stepper和一个文本框之间的XML连接组件
组件面板上一些很酷的特性包括:
1. 允许你连接可视组件和数据的数据绑定,所以他们会保持同步;
2. 只有在数据变动的时候处理,这样可以保持最小的网络利用率;
3. 查错选项可以保证字段的数据类型,邮政编码,电话号码和其他拟定义在ActionScript里的数据正确性;
4. 格式化选项会自动解析数据并在你的定义下显示。
所有的数据导入和操作是很棒的,但最后还是要你把数据表达给用户。数据组件只能够处理数据,是把代码从表现物所分离出来的建筑学模型。自然,你也可以定义数据提供者给Macromedia Flash UI 组件(例如ListBox)。因为UI组件都重写了,所以你不用去写新的元素去表达你的数据。
如果你想要自定义这些,也有几个方法。这固然重要,但设计师和程序员的分界更重要—这样才是好的产品设计。保持你可视物件层和数据层不在同一个层上,可以在数据变化的时候更容易修改。相反,他也更容易修改可视物件和用户界面而不用去管和数据相关的代码。
----------可视化控制:叠层样式表(CSS),图像和文字----------
叠层样式表(CSS)
不管你把可视物件看作是设计师还是程序员的角色,你都要有个控制,在文字的显示区域,你会发现有些惊人的特性。
可能最吸引人的改进就是文本区的CSS改进了。表面上这只是TextFormat对象的改进,一个你用来控制格式的脚本,然而,CSS已经走得更远了一些,现在已经可以让你导入CSS文本并使用在你的网站上了。还有a:hover也将被支持,它允许你快速的加入文本按钮的浮动状态效果。注意你不能像HTML那样包含CSS,但它还是非常实用的特性。
HTML嵌入图片
Macromedia决不会忽略新版本对HTML的支持。这大概是第二酷的文本相关的特性了!大家看着三个字 “src”,这说明了什么?你将可以在文本区内直接嵌入JPG,SWF或者内部标号。文本流将会按图2格式显示。你甚至可以使用嵌入的SWF的代码,例如让开始停止动画。

图2:图片在文本区嵌入,文本自动的在图片周围格式化。
小,但清晰,字体
你也许会发现有很多字体相关的改进,确实,文字是最好的交流方法,可以在狭小的空间内表现详细的信息。
不用怀疑你已经看到的小字看起来失真,那是因为抗锯齿的缘故。许多用户在这方面已经有所努力,查找在小尺寸看起来依然清晰的字体。不过现在,你只要通过一个点击就可以完成这一步,想要让小字清晰吗?只要点下属性面板上的Alias Text按钮,接着你就可以设置了。
文本韵律
精确控制文本的显示现在通过改进的字体韵律支持可以做到了。在过去,getTextExtent()只会返回一行的宽和高,而且不是很准确!新的属性(包含ascent和descent)使得复杂的版面变为可能。
和像素起舞:没有多余的像素位移
如果你已经听到某人站起来尖叫“Yes!”,那也许就说明他已经学会了Macromedia Flash Player7不会再有微小的像素图位移。尽管这也许会减少你公司的“巫婆”对你产品的诅咒,但他确实减少了很多,最起码你客户不会再提这事了……。
----------用户控制:Macromedia Flash Player 7----------
虽然所有新的特性都很让人兴奋,但不要忘记如何把你的产品作的更实用一些。除了错误修正和运行效率提高,Macromedia Flash Player 7也有许多是用户可以控制的。例如,浏览用户可以通过右键菜单点击一个连接打开一个新窗口—现在他们可以做,在Flash将有新的选项:打开,在新窗口打开,还有拷贝连接。
右键菜单
用户们也希望可以有对右键菜单的支持。现在你可以在动态自定义你的菜单了,例如,如果你想要给用户通过点击右键一个方法,因为它是动态的,这些按钮可以依靠用户点击内容而动态改变。但只有一个内容你会一直看到“About Macromedia Flash Player”(不幸啊……)
自动更新
为了帮助用户保持最新版本的补丁,Macromedia Flash Player 7现在包含了自动更新特性,这个播放器每周都会检测一次新版本并且指导用户尽可能通过一个方便的更新途径来更新,这意味着用户们将会得到最新版本的执行效率和安全性的提高而不用开发者用他们自己的方法来给用户升级播放器。有能力的用户可以控制检测周期和一些其他高级设置。
只要在浏览器内右击Flash影片,选择”Settings”,点击”Advanced”按钮,然后你就可以访问Macromedia上的一个SettingManager来帮助你的设置。这里,你可以选择”Global Privacy Setting”来管理网站设置,包括摄像机,麦克风和本地Shared Object的存储量
-----视频控制:质量和传输选项-----
当初人们首次看到真正的视频在Flash MX中,我已经想不起来有多少埋怨声了。Macromedia显然在这方便有些不足,因为你可以发现视频上的各方面改进:改进了程序,质量和传输选项。
导入向导
表面上来看,这个导入向导似乎是给新手用的,可是,一些高级的特性像从影片里提取部分片断到Movieclip中也同样的加入了一些特效:像染色和截取,适应位置。当你设置一个你喜欢的设置组合时,你可以存储为一个用户文件。可能最吸引人的特性是你可以锁定数据的传输率,Macromedia Flash 可以调整视频的带宽和质量通过level来供你设置。在过去,目标用户的视频流得经得起时间和错误的考验。
Flash 视频 (FLV) 导出工具
视频质量也好了很多,看起来更清晰并且播放的更快了一些。最后的控制,你将会通过Macromedia Flash MX2004专业版,因为它支持Flash视频(FLV)的导出,它支持很多流行的数码格式包含Avid Media 压缩和Xpress DV,苹果Final Cut Pro和Discreet Cleaner。你不但可以选择你自己喜欢的编辑器来编辑源视频,还可以获得额外的压缩,这些都不是在Flash 内部所完成的。然后就是变数播放率(VBR),它意味着播放率是可以调节的,这些你可以从图3看到。

图 3. Flash 视频 (FLV) 压缩工具
运行时支持FLV
第三方工具所压缩的漂亮的FLV文件现在也可以不用额外的程序而播放了。在过去你还要把他们导入并且制作成SWF才可以播放(依靠SWF重新压缩),或者用Macromedia Flash Communication Server(但你必须使用真正的视频流)。导入和播放FLV是非常巨大的工作量!所以这个特性减少了制作时间并且让你的产品具有很好的模块性。例如视频制作者可以及时导出FlV并提供给你,你就直接可以显示出来了。
媒体组件
播放一个外部的FlV需要你比写一个读mp3的ActionScript要多一点,如果你不喜欢总是重写这些代码,你会喜欢这个新的面向音频和视频媒体组件的。
起初我想“我能写这个脚本阿!”,不过这个东西可以做的非常完美。他运行得很好,它简化了流程(你只要给他个你要播放的文件的名字即可),而且他包含了一些不错的特性,例如暗点同步。也许你还想自定义他的皮肤或者希望稍微不同的特性,我怀疑你将会得到一些错误在他们的设计上,请尝试一下吧!
----------项目控制:流程,自定义代码和准确度----------
即使你是一家小网络服装店一样的开发团队,在你处理Flash项目的时候你也需要像特种部队一样的精神。Macromedia Flash MX 2004有工具来帮助你的团队。
项目窗口
制作一个稍微大点的项目几乎都会介入一个团队。即使你自己一个人工作,新的项目面板帮你管理着所有项目相关的文件。对于工作组,你可以check out和锁定文件,这样你的组员就不能够覆盖相同文件名的文件。项目面板使用和Dreamweaver MX相同的结构,所以它很像是给Dreamweaver用户使用的,它也可以让项目面板扩展为版本控制工具。
ActionScript 2
新版本的ActionScript(AS2) 使得大型复杂的产品更加好管理,也提供了一些人可以炫耀的途径。
首先,AS2还是会支持你Flash Player 6。这意味着你可以开始学习AS2即使你的客户还没准备好说要让他们的客户支持Flash Player 7。
虽然整体来说是完全符合ECMA标准的,但还是有些有意思的东西在新的AS2中。严格的数据类型构造使得你的代码更清晰,而且你可以更详细的编译错误。同样,一些新的类声明是固有的组件,因为他们都存储在外部文件中。你可以混合和匹配地创建类,例如,你可以从一个类扩展一个读图片的类,让它也可以读声音,并且播放声音。写类文件就好比在用ActionScript语言创造你自己的库一样。
关于时间--拼写检查工具
终于,Macromedia Flash 有了一个拼写检查工具。虽然我不确定人是不是很完美,但这意味着你不会再打错字了。并且,还要说,你已经有了一个可以查找和替换的工具,因为……像很多独特的Macromedia Flash 特性一样,你不只是可以查找文字,而且可以查找字体使用或者在图片中特定的颜色。虽然这些特性都放在了“关于时间”这章,他们确实是可以减少你的产品制作时间。
----------一些有助于产品的特性----------
对于我来说,代码提示和代码完善也许一直是最大的减少制作时间的因素。这些小特性合计起来也算是一个真实的改进,我在这章关注的这些特性将会真正的减少你的制作时间,减少你鼠标点击率,减少你受挫折的感觉。我打赌这些很多都不是在纸上谈兵,而且我觉得他们是提供给Flash 老手用的。
吸附排列
你知道“Snap to Object”有多实用吗?新加入的“Snap Align”特性也是这么有用并且强大。它是很简单华丽的……我恐怕我不能简单的解释这个了。简单说,你现在可以选择并且移动对象,而且你可以看到有虚线显示在附近的对象旁,这是非常直观而且实用的。如果你不爱上这个特性的话恐怕你不是人类吧……

图 4. 吸附排列
一些特性会导致的冲突
这里有一个列表是我其他比较喜欢的特性:
1, 所有打开的文件会按照一个标签按钮显示,这样你就可以很快的在文件中切换或者迅速的存储它们。(Macromedia Flash MX 专业版2004也提供给你专门存储ActionScript的AS文本)
2, 信息面板有一个嵌入选项是更改比率的,这样你输入数字以后图像的比例就不会变了;
3, 数据类型构造(AS2的特性)加入了有利于定义变量名称的代码提示。例如,“var myS:String=”phil””然后你输入“myS.”之后就可以看到对于这个字符串类型的相关代码提示了
4, 界面上的面板现在是可以以边缘吸附的了,就像Dreamweaver的一样(这个特性只支持Microsoft Windows平台)
历史面板
最后一个减少产品时间的因素我要说是历史面板,他可不只是一个美化了的“UNDO”工具,虽然它也可以那么做。在历史面板内产生的代码使用了“JavaScript Flash Language”(JSFL)语言,它控制着Macromedia Flash的工作区域。JSFL使得你可以你可以完成重复的或者复杂的工序(DS:就好像PS的Action)几乎任何你通常用手完成的开发工作现在你可以记录并且使用脚本回放出来。历史面板内也使用相同的语言记录了你的每一步动作。

图5. 历史面板
-------扩展Macromedia Flash:自定义并且简化你的工作流程----------
这里有个新闻:Macromedia Flash是可以扩展的!这意味着你可以自定义工作区,创建命令自动化你的工作流程,并且安装别人制作的插件。我猜这意味着没人知道在未来的几个月里你到底能用Flash MX 2004可以做出什么来,有些人也许还在研究如何自定义工作流……
JSFL 命令
历史面板可以让你用Javascript Flash (JSFL)像宏一样执行命令。注意观察我画了一个方形以后请参看图6的一些历史面板的状况变化。

图 6.历史面板记录了操作的历史
你不只是可以在历史面板里逐步执行,你也可以自己选择几行来存储命令,或者更进一步,拷贝JSFL并且编辑后执行一个命令,这些是稍微动态一些的。例如。这里有一些代码是画一个在舞台后面的遮罩。
1 var width=fl.getDocumentDOM().width;2 var height=fl.getDocumentDOM().height;3 fl.getDocumentDOM().addNewRectangle({left:-500, top:-500, right:width+500,bottom:height+500}, 0);4 fl.getDocumentDOM().selectNone();5 fl.getDocumentDOM().setSelectionRect({left:0, top:0, right:width, bottom:height});6 fl.getDocumentDOM().deleteSelection(); | |
认为这些代码看起来很复杂吗?其实不然,大家看我怎么弄。首先我通过画一个方形创造了一个处理描述,选择一个区域,然后取消选择。然后我拷贝在历史面板里的JSFL。我不需要担心场景大小,因为我想我的命令可以自适应任何场景尺寸。我替换了开头两个数字为两个代表场景长宽的属性(是在文档里找到的)。
你可以在命令菜单中运行这段代码或者其他的JSFL代码。只要存储JSFL文件并读入Flash中,或者读入你已经放进Flash环境中的SWF。你在过去也许能安装Window SWFs,但现在你可以用代码控制你打开文件,实际上JFSL可以,创建,打开并且存储Flash MX 2004文件,甚至有可能启动并且执行JSFL在没绑定的Macromedia Flash MX 2004中。虽然JSFL不可避免会出现一些问题,但我保证你看到的将会是一些非常酷的工作方法自动在你的工作流程中执行。
XML 转换为 UI 对话框
虽然JSFL包含真正的命令影响Flash 的工作流程,但你还是要经常通过用户界面打开他们,这就是XML到UI所涉及的。这对你来说是一个传统的方法可以定义输入机构—总体操作窗口。例如,我能把上面的遮罩的例子命令放入一个对话框中,用户可以通过这个新的UI元素更改这个遮罩的填充颜色(我的例子只简单的使用了当前的颜色填充)
行为
实际上,如果我想要为我的例子增加一个面板我可能会把它做成SWF,但XML到UI更适合做行为。你也许起初会认为行为是一个新手ActionScript插入向导,但实际上,我发现他们更加的有用,可以插入我使用的代码片断。行为只是一个ActionScript执行的界面,你可以通过对话框输入参数并且通过同样的行为界面重编代码。
自定义工具面板
这是另一个你可以扩展Flash的工具,选择Edit>Customize Tools Panel,然后你将发现你如何管理和增加新的工具。虽然你只能在这个版本内发现一个特殊的叫PolyStar的,我可以保证你马上会看到其他经典的。顺便,你可以学习PolyStar是如何通过类代码嵌入的。
自定义工具对程序来是不是很难的。例如,我看到过一个扩展了基本直线工具的可以自动画箭头,就跟你用手画的一样。另一个是做了一个3D的方块,基本上没什么算法,就是JSFL,和XML到UI(有参数的对话框)
准备好一些灵活的插件和更多开发者一起参予这些可扩展的特性吧,你将会看到更多的工具出现来解决这些。假想一下,如果有人现在想到了一个建议给Macromedia Flash开发组来改进,你也许会听到人家这样说:“你自己去做好了!”。当然Macromedia Flash会继续开发,但他会以新的不可思议的面貌出现。
---------更多!更多!更多: Top 50 个特性的开始----------
当然,一个文章不可能覆盖每个方面,但我还要想要成为第一个介绍你这些我说到的或者没说到的酷特性的人。
这里只是我TOP50特性的开始,一个我保证会接下去的列表:
· 字符串面板和对Unicode的支持,对地区性语言的表现。
· 新特性帮你抓取Mp3的ID3数据而不用下载整个文件。
· 新运行时FLV支持也意味着你可以在视频播放时开启嵌入的事件,这些事件像暗点,但你可以在用Flash Communication Server录制的时候即时动态插入他们。
· 新的组件和改进后的组件,虽然我已经过了这个。这些组件不只是具有好看的皮肤,而且具有数据绑定功能,他们也支持“.”语法访问,例如,使用myList..selectedIndex++ 替换原来的 myList.setSelectedIndex(myList.getSelectIndex()+1)
· 你喜欢的特性:“Let Macromedia know” 也是在Flash MX 2004中很有用的工具
我还能写出来,但我想说出关键: Macromedia Flash MX 2004普通版和专业版将会扩展你想做的以及客户想要从你的多功能网络产品中看到的。还有,上面也说了,新版本让你控制代码和数据,控制你的设计和媒体,以及控制你如何去工作。
DS:深感Flash MX 2004的核心方向开始进化,虽然还没有我期待的3D支持,也没有右键屏蔽(似乎是不太可能了),不过Macromedia所带给我们的是一个产品经济,是未来网络产品迅速发展的有力工具,希望大家合理使用。
8/25/2003
Demon.S
(完)