新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     >>计算机科学论坛<<     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 关于 XML 的一般性技术讨论,提供 XML入门资料 和 XML教程
    [返回] 计算机科学论坛XML.ORG.CN讨论区 - XML技术『 XML基础 』 → FLASH+XML专题[五] Flash 创建XML驱动的图像滚动 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 3419 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: FLASH+XML专题[五] Flash 创建XML驱动的图像滚动 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     小鞋子 帅哥哟,离线,有人找我吗?
      
      
      威望:6
      头衔:大法師
      等级:大二期末(Java考了96分!)
      文章:353
      积分:958
      门派:XML.ORG.CN
      注册:2003/12/19

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给小鞋子发送一个短消息 把小鞋子加入好友 查看小鞋子的个人资料 搜索小鞋子在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看小鞋子的博客楼主
    发贴心情 FLASH+XML专题[五] Flash 创建XML驱动的图像滚动

    为Flash 6创建一个XML驱动的图像滚动

    翻译:Enews2#cnet.com  来自:http://builder.com.com

    在创建这个对象的代码的时候,我做了几个假设。首先假设结果集中总会有CScroll.depth节点或者多个<model>节点。然后还假设所有的图像都是高100个像素宽80个像素。这样就使得编码和理解起来都比较简单。代码中没有异常处理机制,但是如果我基于这些假设使用这个对象,就不会出现任何问题。这也就是说我需要保证图像的大小为80X100,并且结果集中至少要有一个CScroll.depth节点。

    当一个CScroll对象被实例化的时候,其属性被设为默认值。属性depth由构造方法的depth参数设置。CScroll.depth movieClips被创建,然后被添加到_root movieClip中,每个movieClip都被加入到scrollArray数组以便引用。你会发现每个movie clip的_x属性都是承接上一个_x属性,值为80。movie()方法设置在构造方法内部。move()和init()方法被连接到相应的外部函数:navigate和initScroll。

    一旦CScroll对象实例化完成,你可以将XML“绑定”到CScroll对象并填充图像;这一步通过init()方法完成。使用init()方法,将传入XML文档作为参数传入,init()方法将抓取每个<model>节点的<sm>节点的文本,然后用定义的图像填充可用的movieClips。另外两个在CScroll对象上设置的重要属性——xmlDocument属性和nodeCount属性——用于导航管理。xmlDocument代表你传入的XML文档,nodeCount属性是你的XML文档中<model>节点的数目。

    move()方法期望一个方向参数:+1表示向左移动,-1表示向右移动。这些参数可以通过一个按钮点击事件传入。CScroll对象的导航是循环的,如果XML文档中最后一个<model>节点已被取出,那么下一个取出的节点是将是树的第一个节点,反之亦然。这在导航函数(move()方法)的前几行指定。

    再增加几行代码使每个movieClip根据指定的方向要么向左要么向右移动80个像素。如果是向左移动,movieClip的_x属性被检查是否是其所在的位置。如果是-160像素(向左移动两步),movieClip会被置于最右端,面下一个指定的图像被装载到它的位置。如果是向右(80 * (CScroll.depth - 2))个像素(向右移动两步),movieClip会被置于最左端,面下一个指定的图像被装载到它的位置。

    当前的节点号(被跟踪的节点)是滚到区域的最右边的节点。因此,当向右移动的时候,你必须下移(CScroll.depth - 2)个节点装载指定的图像。而且,如果那个值小于0(第一个节点的索引值),你就必须将当前的节点重置到链表的顶部:if (the_node < 0) the_node += (this.nodeCount + 1)。

    余下唯一要做的事是实例化和使用对象。下面是其代码:

    var myXML = new XML();
    myXML.onLoad = myXML_onload;
    myXML.ignoreWhite = true;
    var Scroll = new CScroll(8);
    myXML.load("http://localhost/Development/Model/getModels.asp");

    function myXML_onload(success) {
        if (success and myXML.status == 0 and myXML.hasChildNodes()) {
            Scroll.init(myXML);
        }
    }

    function fwd_onclick() {
        Scroll.move(1);
    }
    function rev_onclick() {
        Scroll.move(-1);
    }

    上面的代码实例化一个XML对象。XML的onLoad事件处理函数设置为myXML_onload。然后创建一个新的CScroll对象Scroll。最后从一个HTTP源装载XML数据。在XML数据被装载和解析完成之后,调用Scroll的init()方法并传入myXML。这样就使用必要的图像填充了图像滚动。最后,我为Scene上的几个Flash按钮组件添加点击事件处理函数。

    如果你需要这个例子的源代码,可以从[URL=http://www.blueidea.com/articleimg/2004/03/1725/Model.zip]这里[/URL]下载。有关Flash的XML功能的信息,请查阅Flash的帮助文件。

    如果你需要帮助创建一个数据的XML服务器端解决方案,给我发邮件 Enews2#cnet.com  ,我会尽我所能给予您帮助。


       收藏   分享  
    顶(0)
      




    ----------------------------------------------
    本人只會一點點XML.
    和ASP.以及FLASH.其它都不太懂.

    大家多多指教.

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/3/22 22:20:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XML基础 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2025/7/17 17:37:28

    本主题贴数1,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    62.500ms