| 首页 | 新闻 | 网页 | 设计 | 色彩 | 原创 | 视觉 | 素材 | 动漫 | 酷站 | 策划 | 文案 | 访谈 | 运营 | 编程 | 数据库 | 服务器 | 下载 | 图库 | 
您的位置: 幽幽天空 > 网页 > 网页制作 > Flash教程 > ActionScript教程 > 文章正文 用户登录
载入中…
通过实例学习AS3.
通过实例学习AS3.
通过实例学习AS3.
Flash & Ajax
一个基于实例(向量
影片剪辑实例名的
浅谈AS的绘图功能
浅谈AS与物理运动
as2.0内置类创建实
整理AS实例应用教

通过实例学习AS3.0—案例四熟悉xml的运用           ★★★

通过实例学习AS3.0—案例四熟悉xml的运用

作者:lzyy 来源:蓝色理想 更新:2007-12-11 12:50:14 错误报告 我要投稿

案例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的对齐方式,这里是左对齐,然后放到舞台上。

整个案例到此结束。

源文件下载

文章录入:skyuu    责任编辑:skyuu 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    发表评论:
    姓名:  评 分: 1分 2分 3分 4分 5分
     
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用幽幽天空服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表机友个人观点,与本网站立场无关。