Flash创建XML驱动的图像滚动

2008-04-02 10:38:35来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


  为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)。

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

  代码拷贝框

  

  [Ctrl A 全部选择 然后拷贝]

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

  假如您需要这个例子的源代码,能够从这里下载。有关Flash的XML功能的信息,请查阅Flash的帮助文档。

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

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: FlashMX实战精选:放大镜效果

下一篇: Flash视觉特效实例之花样年华