xml方式載入圖片自動輪換顯示

來源:互聯網
上載者:User
xml|顯示

  類比韓國滾動廣告效果,從外部讀取圖片和說明及串連

  由於使用xml和外部圖片,因此本程式需要下載後觀看效果,本作品只為教程使用,因此沒有做loading處理。

  點擊下載源檔案

//XML檔案部分代碼(imgList.xml)
//----------------------------------------------------------------------------------
<?xml version=’1.0’ encoding=’GB2312’?>
<imgList>
<list path="swf/1.jpg" info="美女1">http://www.ebidea.com<;/list>
<list path="swf/2.jpg" info="美女2">http://www.ebidea.com<;/list>
<list path="swf/3.jpg" info="美女3">http://www.ebidea.com<;/list>
<list path="swf/4.jpg" info="美女4">http://www.ebidea.com<;/list>
<list path="swf/5.jpg" info="美女5">http://www.ebidea.com<;/list>
<list path="swf/6.jpg" info="美女6">http://www.ebidea.com<;/list>
<list path="swf/7.jpg" info="美女7">http://www.ebidea.com<;/list>
<list path="swf/8.jpg" info="美女8">http://www.ebidea.com<;/list>
<list path="swf/9.jpg" info="美女9">http://www.ebidea.com<;/list>
<list path="swf/10.jpg" info="美女10">http://www.ebidea.com<;/list>
<list path="swf/11.jpg" info="美女11">http://www.ebidea.com<;/list>
</imgList>

//flash AS代碼:
//----------------------------------------------------------------------------------
Stage.showMenu = false;
Stage.scaleMode = "noScale";
fscommand(allowscale, true);
//初始化螢幕大小
System.useCodepage = true;
//中文支援
imgW = 580;
imgH = 386;
//初始化情境寬度和高度
jTime = 1500;//初始化滾動間隔時間,預設1.5秒
var myLoad = new XML();
myLoad.ignoreWhite = true;
myLoad.load("imgList.xml");
myLoad.onLoad = function(success) {//裝載xml檔案
if (success) {
createEmptyMovieClip("img_mc", -16383);//裝載成功,初始化滾動mc元件
img_mc.createEmptyMovieClip("loadImg0", 1);//建立loading圖片的子元件
img_mc._x = -imgW;//初始化座標位置
x = 0;//初始化顯示圖片的指標
imgList();//執行函數imgList();
makeBtn();//建立控制按鈕
} else {
trace("錯誤!裝載xml檔案不成功!");//返回錯誤資訊
}
};
function makeBtn() {//本函數初始化控制按鈕元件
_root.attachMovie("next_btn", "n_btn", 50);//串連向後的按鈕
_root.attachMovie("next_btn", "u_btn", 51);//串連向前的按鈕
u_btn._rotation = 180;//控制向前的按鈕翻轉角度
u_btn._x = imgW-50;//
u_btn._y = imgH-30;//
n_btn._x = imgW-25;//
n_btn._y = imgH-30;//初始化兩個按鈕的位置
u_btn.onRelease = MoveLeft;//當點此按鈕的時候執行向左滾動的函數
n_btn.onRelease = MoveRight;//‘’‘’‘’‘’‘’‘右滾動的函數
u_btn.onRollOver = function() {//當滑鼠在本按鈕上的時候清除自動滾動選項
clearInterval(MA);
};
u_btn.onRollOut = function() {//當滑鼠離開後繼續自動滾動
MA = setInterval(MoveLeft, jTime);
};
n_btn.onRollOver = function() {//
clearInterval(MA);
};
n_btn.onRollOut = function() {//
MA = setInterval(MoveLeft, jTime);
};
}
function imgList() {//xml分析函數,並構造滾動元件
myList = myLoad.firstChild.childNodes;
myListLen = myList.length;
for (i=1; i<myListLen+2; i++) {
img_mc.loadImg0.duplicateMovieClip("loadImg"+i, i+1);
}
for (i=0; i<myListLen+2; i++) {
loadImgs = eval(img_mc["loadImg"+i]);
mcbtns = img_mc.attachMovie("btn_mc", "btn"+i, i+myListLen+4);//串連圖片按鈕
loadImgs.btn = mcbtns;//初始化各圖片對應的按鈕
loadImgs.i = i;//初始化當前圖片的指標
loadImgs.loadImg();//執行圖片裝載函數
}
}
function moveImg() {//圖片滾動函數
if (x>myListLen) {//控制向左的迴圈
x = 1;
img_mc._x = 0;
}
if (x<1) {//控制向右迴圈
x = myListLen;
img_mc._x = -img_mc._width+imgW;
}
textValue(myList[x-1].attributes.info);//執行文本顯示函數
onEnterFrame = function () {//迴圈檢測滾動
targetx = -x*imgW;
img_mc._x += (targetx-img_mc._x)*0.2;
if (Math.abs(targetx-img_mc._x)<=0.2) {//位置符合後停止迴圈
img_mc._x = targetx;
delete onEnterFrame;
}
};
}
function MoveLeft() {//向左滾動
x++;
moveImg();
}
function MoveRight() {//向右滾動
x--;
moveImg();
}
MA = setInterval(MoveLeft, jTime);//自動滾動
MovieClip.prototype.loadImg = function() {//mc裝載圖片函數
if (this.i == 0) {//在最前增加張最後的圖片,方便向左迴圈。
this.loadMovie(myList[myListLen-1].attributes.path);
} else if (this.i == myListLen+1) {//在最後幀位置怎加第一張圖片,方便向右迴圈
this.loadMovie(myList[0].attributes.path);
} else {
this.loadMovie(myList[this.i-1].attributes.path);
}
this._x = this.i*imgW;//初始化位置,逐個相串連
this.btn._x = this._x;//控製圖片上方的透明按鈕對應位置
this.btn._width = imgW;//
this.btn._height = imgH;//控制’‘’‘’‘’‘對應尺寸
this.btn.onRelease = function() {//點擊圖片按鈕串連網址
getURL(myList[this.i-1].childNodes);
};
this.btn.onRollOver = function() {//當滑鼠在圖片上停止自動滾動
clearInterval(MA);
};
this.btn.onRollOut = function() {//當滑鼠離開圖片,繼續自動滾動
MA = setInterval(MoveLeft, jTime);
};
};
textFiled();
function textValue(myValue) {//為文字框顯示圖片對應的說明;
myformat = new TextFormat();
myformat.align = "right";
myformat.color = 0xffffff;
myformat.font = "宋體";
myformat.size = 12;
myformat.bullet = false;
myformat.underline = false;
_root.createTextField("mytext", 20, imgW-360, imgH-38, 300, 16);
mytext.selectable = false;
mytext.text = myValue;
mytext.setTextFormat(myformat);
}

相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。