正 文

为Flash MX创建XML解决方案


www.7dspace.com  更新日期:2005-11-3 7:37:02  七度空间


Macromedia在Flash 5.0 和MX中提供了诸多新特点,它正朝着程序开发竞争舞台发展。这些特性中的其中一个就是在Flash中综合了XML。即使你不是一个Flash设计者,你也可以将XML知识运用到Flash的测试中去。

不需要花费多大工夫,你就可以掌握足够的Flash知识来创建一个完整的解决方案。Flash是基于动画的原理,因为事件通常是按照时间顺序发生的,被分解为不同的框架。但是,通过使用ActionScript,不需要许多框架构成整个动画,你就可以处理这些事件并操纵一部动画。在我举的实例中,我只用一个框架创建了一个电话目录地址。

ActionScript则是基于ECMA-262标准,因此它和JavaScript非常像。如果你熟悉JavaScript,那适应ActionScript应该不会有问题。

我创建的电话地址目录非常简单。你键入你想找的人的Last name或Last name的一部分。然后这个“Last name”的数据被传送到一个ASP页面,这个页面在请求中使用查询字符串数据,对一个Microsoft Access数据库进行搜索,寻找匹配字符。返回记录集,转变为XML,以XML形式返回到Flash动画。接着Flash动画解析XML并显示结果集合。

Flash动画只包含了一个文本输入框来输入“Last name”和启动搜索的按钮。其结果从一个动画片段符号示例说明为单个动画片段。(不用参考完整的Flash指南,你可以在这篇文章的结尾找到链接到源代码的地址。)

Flash提供了一个XML对象类来创建XML方案。XML对象中的load()方式让你可以从远程主机上下载数据。当数据下载完成时,XML对象的“onLoad”事件出现。

你可以通过将这个“onLoad”事件设置为一个有效的函数名,来为XML对象提供一个事件处理程序。Flash的 XML对象并没有提供许多功能给检索过的XML。但是,你可以用一些灵活的设计来创建一些巧妙的解决方案。

下面就是为XML对象设计的“onLoad”事件处理程序:

function myXML_onLoad() {
    for (var p = 0; p < pcount; p++) {
        removeMovieClip(_level0["phone" + p]);
    }
    for (var i = 0; i < myXML.childNodes.length; i++) {
        var node = myXML.childNodes[i];
        attachMovie("phone", "phone" + i, i);
        var newMovie = _level0["phone" + i];
        newMovie._x = lblHeading._x;
        newMovie._y = (lblHeading._y + lblHeading._height) + (i * (lblHeading._height + 2));
        for (var n = 0; n < node.childNodes.length; n++) {
            var child = node.childNodes[n];
            newMovie[child.nodeName] = child.childNodes[0].nodeValue;
        }
    }
    pcount = i;
}

第一个for()循环从以前的结果集合中删除现有的动画片段。下一个for()循环重复XML对象(myXML)中的每个子节点(childNode)。一个新的电话动画片段符号实例被添加并放置在每个循环过程中。电话动画片段符号包含了几个和XML文件所有childNode的 nodeNames相匹配的组件变量。这些用来设置所有动画片段符号的文本。值得注意的一件事就是child.childNodes[0]. nodeValue属性的调用。当一个正常节点随着开始和结束标志之间的文本一起返回时,那个文本就是一个文本节点。你必须参考元素中的子节点来获取元素的内容。下面就是一个被返回的XML实例:

<row>
   <first_name>John</first_name>
   <last_name>Public</last_name>
   <phone>800-555-1212</phone>
</row>

2页,页码:[1] [2] 

上一篇:使用XMLTransform和XSL-FO格式化报表
下一篇:Web服务器上防范基于ASP程序的木马
作者:  来源:开发者在线 ( 责任编辑:7dspace )
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐