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>