AS3.0实例学习 熟悉xml的运用

所属分类: 网页制作 / Flash 阅读数: 1707
收藏 0 赞 0 分享
案例4:熟悉xml的运用

说明:一个简单的相册,先载入xml,然后载入xml列表里的images缩略图,点击缩略图出现大图以及大图的说明。这个案例较前面几个复杂了一些,不过如果熟悉了AS3的语法,还是比较容易理解的。

演示:http://www.live-my-life-with-yuyi.com/as3_cases/gallery_tween/

代码:
复制代码 代码如下:

import fl.transitions.Tween; 
import fl.transitions.easing.*; 
var imageText:TextField = new TextField(); 
var fadeTween:Tween; 
var imageLoader:Loader; 
var xml:XML; 
var xmlList:XMLList; 
var xmlLoader:URLLoader = new URLLoader(); 
xmlLoader.load(new URLRequest("data/images.xml")); 
xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded); 

跟之前的一样,先导入几个包,这是为了实现图片的渐入渐出效果。然后是定义几个变量,这里xmlList可能比较陌生,这个变量的作用主要是获得xml的child列表,下面具体运用的时候,它的作用就一目了然了。
通过URLLoader载入xml,然后监听xml,一旦载入完成,就触发xmlLoaded函数。

复制代码 代码如下:

function xmlLoaded(event:Event):void 

    xml = XML(event.target.data); 
    xmlList = xml.children(); 
    for(var i:int = 0; i < xmlList.length(); i++) 
    { 
        imageLoader = new Loader(); 
        imageLoader.load(new URLRequest(xmlList[i].attribute("thumb"))); 
        imageLoader.x = 25; 
        imageLoader.y = i * 150 + 25; 
        imageLoader.name = xmlList[i].attribute("source"); 
        addChild(imageLoader); 
        imageLoader.addEventListener(MouseEvent.CLICK, showPicture); 
    } 


这里有一些地方需要注意,比如第一句

xml = XML(event.target.data);
如果直接

xml = event.target.data
会报错,因为两个变量的类型不一样。

这里可以看到xmlList,它是取得xml的children,对于使用xml非常方便。
然后实例化imageLoader,并载入xmlList里定义的缩略图,注意这里的写法。
调整一下坐标,并给imageLoader添加了一个name属性,这个属性的值就是xml文件里的图片地址,这有利于下面的showPicture函数。
然后将缩略图放到舞台上,并监听它的鼠标点击事件。

复制代码 代码如下:

function showPicture(event:MouseEvent):void 

    imageLoader = new Loader(); 
    imageLoader.load(new URLRequest(event.target.name)); 
    imageLoader.x = 200; 
    imageLoader.y = 25; 
    addChild(imageLoader); 
    imageText.x = imageLoader.x; 
    imageText.y = 351; 
    for(var j:int = 0; j < xmlList.length(); j++) 
    { 
        if(xmlList[j].attribute("source") == event.target.name) 
        { 
            imageText.text = xmlList[j]; 
        } 
    } 
    fadeTween = new Tween(imageLoader,"alpha",None.easeNone,0,1,1,true); 

imageText.autoSize = TextFieldAutoSize.LEFT; 
addChild(imageText); 

这个点击后显示大图的函数,由于前面已经给name属性添加了图片地址,所以这里直接拿来用就可以了。
大图载入后分配一下坐标,添加到舞台上,接下来就该显示图片的说明了。
这里的做法是循环xmlList,然后比较xml里source是否与这里的name相等,是的话,将该xml的值赋予imageText,不过显然有更简单的做法,就是在上面的xmlLoaded函数中为imageLoader添加一个text属性,然后在showPicture里直接拿来用就可以了。
然后给图片来一个渐入效果,这个之前已经讲过了。
最后两行是定义imageText的对齐方式,这里是左对齐,然后放到舞台上。

整个案例到此结束。
打包文件
更多精彩内容其他人还在看

AS3中的反射(速记) 分析

详细了解AS3的反射,请google相关文章,这里只是速记一下
收藏 0 赞 0 分享

flash与asp/php/asp.net通信的方法第1/3页

flash与后台程序通信
收藏 0 赞 0 分享

火山动态文本滚动条V5[AS3版]

功能说明:本版滚动条除了继续保持体积小(小于2K),界面容易修改,资源占用率小的优势外,主要有以下几点改进: 1,使用AS3编写。 2,宽高动态指定。 3,增加滚动条背景点击事件。 4,消除了鼠标滚轮无法同时准确控制多个文本框的重大BUG。
收藏 0 赞 0 分享

AS打造的复制粘贴等功能类

真不错漂亮大方的flash复制粘贴剪切等效果
收藏 0 赞 0 分享

关于类、私有属性与继承的理解

学习FLASH的时间也不短了,但总觉得还有很多的东西在等我去弄清楚。而且有很多东西也是搞得似懂非懂。在这里,把类、私有属性跟继承的理解讲一下。也希望大家能无私补充,以臻佳景。
收藏 0 赞 0 分享

FLASH自动判断域名然后转向等操作

FLASH自动判断域名,如果不是你的域名,然后干什么你来定吧! 首先说一下FLASH自已可以干什么!FLASH他可以判断自已在哪个路径下面,例如:
收藏 0 赞 0 分享

Flex程序开发心得小结

和Flash的开发环境相比,Flex提供的组件库确实很诱人,但由于功能太全面,导致程序的体积大,有时候使用不当,可能会影响程序运行效率。
收藏 0 赞 0 分享

关于FLASH与XML交互应用中的理解

关于XML在FLASH中的应用,以前写过几篇。也收集了几篇来自网络的。不过,都是一些非常简单而常用的。在这里,我把XML的其他相关说明总结一下。有不足之处,希望大家能相互补充。只为了一个共同的目的:共同提高。
收藏 0 赞 0 分享

Flash Event写法

flash下event事件驱动方法
收藏 0 赞 0 分享

AS3自写类整理笔记 ClassLoader类第1/2页

在用flash做项目的时候,把一些元件,通过设置链接类,然后使用这个类,通过getClass方法即可把这个素材拿下来
收藏 0 赞 0 分享
查看更多