Flash 8出来了,由此而引发我写的第一篇文章居然是XML!
这是因为,XML事实上已经成为 Internet 应用程序中交换结构化数据的标准,而Flash新版本的推出,越来越体现出与XML的紧密联系,现在已经做到使Flash 中的数据与使用 XML 技术的服务器集成在一起,从而构建高级的交互平台如聊天系统,论坛系统,电子商务代理系统等。
XML 在 Flash Player 6 已经成为其内部的对象, 而Flash 8 又大大提高了与 XML 的结合。
本教程虽然是在 Flash 8 中撰写,所有实例操作均可在 Flash MX 2004 中进行。
或许你同我一样,不一定会涉足 Flash 高级交互系统的开发,但XML这道坎谁也绕不过,打开新版的Flash看看,哪儿没有XML?!
比如,Flash 的“策略文件”,版本配置文件等等必需用XML,这个似乎离我们在远了点,其实在Flash中诸如此类的应用比比皆是。
我们再看看 Flash 的帮助,它其实也使用了XML结构树组织的,如右图所示:
如果你愿意,请你搜索一下: 在Flash7的安装文件夹中有近150个XML文件!而Flash 8 中达到了300个!
你仍然会说,这与我们用户也没关系。
那么,我再举个例子:
请你打开 Flash 8 的“组件”面板,在其中选“菜单”组件(Menu)拖放到场景中,再在“组件检查器”中观察一下,你会发现,它缺省要示使用XML数据类型!
为了加深你的理解,我这里举一个“菜单”组件演示一下。
你将发现,学习、应用 Flash ,XML 这道“坎”是绝对躲不了的!
最后,你也知道,XML 在动作语言(比如ASP)的配合下,可以成为一个纯文本的数据库,从而构建形形色色的用户交互平台,XML 交互系统已经见到不少,但 XML 与 flash 构建的范例还不多,本辑内容就是想在这方面进行一些初步的探索。
在涉及XML具体内容前,我必需说明一下,这里假定你对 XML 已经有了最基本的知识,限于篇幅,本教材从略,关于 XML 的最基本的知识可以参考下面2个页面:
请你打开 Flash 8 的“组件”面板,从中选择“菜单”组件(Menu)拖放在场景中,现在,这个菜单是空白的,再打开“组件检查器”,我们发现,菜单组件的数据类型是:XML 如右图所示。
那么,我们如何往组件中填充内容呢?
现在,我们把场景中的“Menu”组件删除,注意,组件的使用方式各不相同,就Menu来说,它必须从你的元件“库”调用。由于刚才我们已经把Menu放入场景,所以“库”中已经存在该组件了。
然后在第1帧动作面板中写入如下脚本,其结果就如上面的左图所示(菜单项内容已经填入):
myXML = new XML();
newItem = myXML.addMenuItem({label:"老康"});
newItem.addMenuItem({label:"老康资源..."});
newItem.addMenuItem({label:"老康作品..."});
newItem.addMenuItem({label:"老康数据..."});
newItem = myXML.addMenuItem({label:"蓝屋"});
newItem.addMenuItem({label:"蓝屋网站"});
newItem.addMenuItem({label:"快闪论坛"});
newItem = myXML.addMenuItem({label:"交互"});
newItem.addMenuItem({label:"自助链接"});
newItem.addMenuItem({label:"蓝屋客厅"});
myXML.addMenuItem({label:"退出"});
myMenu = mx.controls.Menu.createMenu(Parent, myXML);
myMenu.show(20, 20);
上面的脚本分3个部分:
第1行是构造一个新的 XML 对象,myXML 就是该新对象的实例名。最后二句是 Flash 提供的由“库”中组件元件创建 Menu 实例副本的专用指令,myMenu 就是菜单实例,它用 myXML 数据填充,显示在座标为20(X),20(Y)的位置上。
关键的在于中部部分,熟悉 XML 的朋友反而感到困惑,怎么没有 XML 标签呢?
这个范例说明了,Flash 对 XML 数据的运用相当灵活,它实际上是直接对 XML 的数据进行了创建和操作了。
上面的内容,仅想说明一个现实:Flash 已经把 XML 应用到动画制作的方方面面。
下面我们就从 XML 的“ABC”开始讨论: Flash 是如何读入、显示 XML 数据的。