Flash+XML 加载图片

主场景MC代码:

function parseXML()
{
    var _loc11 = _xml.firstChild;
    //图片总数
    var _loc12 = _loc11.childNodes.length;
    //遍历每张图片的信息
    for (var _loc8 = 0; _loc8 < _loc12; ++_loc8)
    {
        var _loc9 = _loc11.childNodes[_loc8];
        var _loc4 = new Object();
        _loc4.num = _loc8;
        var _loc10 = _loc9.childNodes.length;
        //遍历<itme>节点的子节点
        for (var _loc5 = 0; _loc5 < _loc10; ++_loc5)
        {
            var _loc2 = _loc9.childNodes[_loc5];
            var _loc3 = _loc2.nodeName;
            if (_loc3 == "title")
            {
                _loc4.title = _loc2.firstChild.nodeValue;
                continue;
            }
            if (_loc3 == "thumb")
            {
                _loc4.thumb = _loc2.firstChild.nodeValue;
                continue;
            }
            if (_loc3 == "images")
            {
                var _loc7 = _loc2.childNodes.length;
                var _loc6 = new Array();
                //<images>子节点可能有多个子节点的图片地址
                for (var _loc1 = 0; _loc1 < _loc7; ++_loc1)
                {
                    _loc6[_loc1] = _loc2.childNodes[_loc1].firstChild.nodeValue;
                }
                _loc4.images = _loc6;
                continue;
            }
            if (_loc3 == "content")
            {
                _loc4.content = _loc2.firstChild.nodeValue;
            }
        }
        //加载MC,图片信息存到obj对象中。
        var _loc = this.content_mc.attachMovie("list_thumb", "thumb_" + _loc8, _loc8, {obj:_loc4});
        var _loc1 = int(_loc8 / maxCol);
        var _loc0 = _loc8 % maxCol;
        //高宽位子
        _loc._x = (thumb_w + thumb_space) * _loc0;
        _loc._y = (thumb_h + thumb_space) * _loc1;
        _loc.onRelease = function()
        {
            funRelease(this.obj);
        };
    }
    content_mc.onEnterFrame = loopSlide;
}
function funRelease(obj)
{
    if (curNum != obj.num)
    {
        oldNum = curNum;
        curNum = obj.num;
        var _loc4 = this.content_mc["thumb_" + obj.num];
        var _loc5 = this.content_mc["thumb_" + oldNum];
        _loc4.state_mc.onEnterFrame = fw;
        _loc5.state_mc.onEnterFrame = bw;
        this._parent.content_mc.removeMovieClip();
        var _loc2 = this._parent.attachMovie("more_content", "content_mc", 100, {obj:obj});
        _loc2._x = 260;
        _loc2._y = -3;
    }
}
function loopSlide()
{
    if (this.hitTest(_root._xmouse, _root._ymouse, true) && stage_w < this._height)
    {
        var _loc3 = this._parent._ymouse;
        var _loc4 = maxSpeed * (centerY - _loc3) / centerY;
        this._y = this._y + _loc4;
        if (this._y < stage_w - this._height)
        {
            this._y = stage_w - this._height;
        }
    }
}
_xml = new XML();
_xml.ignoreWhite = true;
//加载XML。
_xml.onLoad = function(success)
{
    if (success)
    {
        //成功加载XML文件
        parseXML();
    }
};
//小图宽度
thumb_w = 122;
//小图高度
thumb_h = 150;
thumb_space = 0;
maxCol = 2;
maxSpeed = 20;
stage_w = 530;
centerY = stage_w / 2;
arrow_mc._alpha = 0;
_xml.load("photo2012qiudong.xml");

小图MC list_thumb代码

function loadPhoto(obj.thumb)
{
    cur_photo = obj.thumb;
    photo_mc._xscale = photo_mc._yscale = 100;
    mcLoader.unloadClip(photo_mc.loader_mc);
    loading_mc.removeMovieClip();
//加载图片到 photo_mc.loader_mc中。
    mcLoader.loadClip(cur_photo, photo_mc.loader_mc);
}

大图MC more_content代码

stop ();
img_array = obj.images;
var mcLoader = new MovieClipLoader();
//图片加载侦听对象
var mclListener = new Object();
mclListener.onLoadProgress = function (target, bytesLoaded, bytesTotal)
{
    loading_mc.setPer(100 * bytesLoaded / bytesTotal);
};
mclListener.onLoadInit = function (target)
{
    loading_mc.removeMovieClip();
    loadedDone();
};
mcLoader.addListener(mclListener);
//判定是否多张图片
function init()
{
    total = img_array.length;
//加载图片img_mc中的上一张、下一张MC menu_mc。
    menu_mc.init(total);
}
//加载大图到MC
function goImage(p)
{
    cur_photo = img_array[p];
// photo_mc为加载loading
    photo_mc._alpha = 0;
    photo_mc.onEnterFrame = null;
    photo_mc._xscale = photo_mc._yscale = 100;
    mcLoader.unloadClip(photo_mc.loader_mc);
    loading_mc.removeMovieClip();
    var _loc2 = this.attachMovie("photo_loading_2", "loading_mc", 40);
    _loc2._x = 379;
    _loc2._y = 290;
    mcLoader.loadClip(cur_photo, photo_mc.loader_mc);
}
img_mc.init();
info_mc.init(obj.content);

//menu_mc中代码
//判断是否多个图片显示图片切换按钮
function init(num)
{
    news_total = num;
    cur_news = 0;
    trace(num);
    if (news_total <= 1)
    {
        main_nav_mc._visible = false;
    }
    else
    {
        main_nav_mc._visible = true;
        setButtonState(main_nav_mc.btn_prev, true);
    }
    showNews(cur_news);
} 
//按钮和首次加载调用函数,判断按钮是否显示。
function showNews(num)
{
    cur_news = num;
    if (news_total <= 1)
    {
        setButtonState(main_nav_mc.btn_prev, false);
        setButtonState(main_nav_mc.btn_next, false);
    }
    else if (num == 0)
    {
        setButtonState(main_nav_mc.btn_prev, false);
        setButtonState(main_nav_mc.btn_next, true);
    }
    else if (num == news_total - 1)
    {
        setButtonState(main_nav_mc.btn_prev, true);
        setButtonState(main_nav_mc.btn_next, false);
    }
    else
    {
        setButtonState(main_nav_mc.btn_prev, true);
        setButtonState(main_nav_mc.btn_next, true);
    } 
    _parent.goImage(num);
} 
//是否隐藏切换图片按钮
function setButtonState(_btn, bool)
{
    _btn.enabled = bool;
    _btn._alpha = bool ? (100) : (50);
    _btn.gotoAndStop(1);
}

//info_mc中代码:
function init(_str)
{
    if (_str == undefined)
    {
        _srt = "";
    } // end if
    bg_mc.txt_mc.con_txt.html = true;
    bg_mc.txt_mc.con_txt.autoSize = true;
    bg_mc.txt_mc.con_txt.htmlText = _str;
    btn_info.onRollOver = function ()
    {
        funOver();
    };
}
加载XML:
<?xml version='1.0' encoding='utf-8'?>
<collection>
<item><title>瑞法斯2012秋冬新品</title><thumb>images/show/2012qiudong/s/0000.jpg</thumb><images><image>images/show/2012qiudong/1000.jpg</image><image>images/show/2012qiudong/0001.jpg</image><image>images/show/2012qiudong/0002.jpg</image></images>
<content><![CDATA[瑞法斯2012秋冬新品]]></content>
</item>
</collection>

 


posted @ 2012-10-17 22:23  安之若素冷暖自知  阅读(318)  评论(0编辑  收藏  举报