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

所属分类: 网页制作 / Flash 阅读数: 1831
收藏 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 中的package(包)应用实例代码

初学者在学习AS3时会遇到什么样的问题呢?只有从初学的角度来实践,才能知道,package 这个高手们必玩的内容,对初学者来说或许就有一些困惑。
收藏 0 赞 0 分享

swfupload使用代码说明

终于在天哪joyous的帮助下,花了一天的时间,搞明白大部分内容. swfupload(以下简称su)遇到的主要问题就是,版本不同造成的极大差异, 现在的版本已经到2.1beta。我用的是2.02版,天哪用的是1.xx版。
收藏 0 赞 0 分享

Flex中最好的MVC框架Mate框架

个人感觉Mate框架非常适合开发一般运用程序,可以提高开发效率,节约成本,同时也比较好维护。但如果要做游戏或是其它控制更强的程序并不适合。
收藏 0 赞 0 分享

Flex 创建复数行文本内容的List

效果不错的flex多行文本
收藏 0 赞 0 分享

flash/flex/air的一个大问题

Close Advertisement 对HTML标签的支持得不够好。现在普遍的做法是浮一个iframe。
收藏 0 赞 0 分享

flex编程动态生成图像

程序需求:动态生成柱形图,柱形条数不确定,柱形字段不确定
收藏 0 赞 0 分享

帮助你学习 Flash / ActionScript的12个网站

Adobe Flash是一个很好的技术,该技术允许开发人员加入的互动性和平稳的动画网页。 其受欢迎程度是如此巨大,您可以看到许多网站,致力于帮助开发者有兴趣在闪光。
收藏 0 赞 0 分享

入门简单的FLEX验证码一例

入门简单的FLEX验证码一例
收藏 0 赞 0 分享

ActionScript3禁止构造请求标头Referer

ActionScript3禁止构造请求标头Referer
收藏 0 赞 0 分享

做了一个flash视频墙[附源文件与xml文件]

这篇文章主要介绍了做了一个flash视频墙[附源文件与xml文件]
收藏 0 赞 0 分享
查看更多