2010-11-19 60 views
0

問題 - 不是循環訪問數組中的圖像,而是跳至最後一個圖像。圖像陣列 - 未遍歷所有圖像

import fl.transitions.Tween; 
import fl.transitions.easing.*; 

play_btn.addEventListener(MouseEvent.CLICK, goPlay) 

var images = new Array(); 

images[0] = "1.jpg"; 
images[1] = "2.jpg"; 
images[2] = "3.jpg"; 
images[3] = "4.jpg"; 
images[4] = "5.jpg"; 
images[5] = "6.jpg"; 
images[6] = "7.jpg"; 
images[7] = "8.jpg"; 
images[8] = "9.jpg"; 
images[9] = "10.jpg"; 

var currentImage:int = 0; 

function goPlay(e:MouseEvent):void { 
while (currentImage < 10) { 

    loadWindow.source = images[currentImage]; 
    currentImage++; 
    var myTween:Tween = new Tween(loadWindow, "alpha", None.easeOut, 1, 0, 3, true) 

} 
} 
+0

更新的代碼,仍然不工作雖然 – Expecto 2010-11-20 02:51:17

回答

2

這是你的問題

上goPlay,通過所有這些你循環,並最終在最後一個

基本上你在做這個

function goPlay(e:MouseEvent) { 
    loadWindow.source = images[0]; 
    var myTween:Tween = new Tween(loadWindow, "alpha", None.easeOut, 1, 0, 5, true); 
    loadWindow.source = images[1]; 
    var myTween:Tween = new Tween(loadWindow, "alpha", None.easeOut, 1, 0, 5, true); 
    loadWindow.source = images[2]; 
    var myTween:Tween = new Tween(loadWindow, "alpha", None.easeOut, 1, 0, 5, true); 
    etc.. 
    loadWindow.source = images[9]; 
    var myTween:Tween = new Tween(loadWindow, "alpha", None.easeOut, 1, 0, 5, true); 
} 

成爲

function goPlay(e:MouseEvent) { 
    loadWindow.source = images[9]; 
    var myTween:Tween = new Tween(loadWindow, "alpha", None.easeOut, 1, 0, 5, true); 
} 

所以你每次點擊時,只有最後一個圖像被添加

你需要定義函數外部變量i

像這樣

var _currentImage:int = 0; 
function goPlay(e:MouseEvent) { 
    currentImage = (currentImage+1)%images.length; 
    loadWindow.source = images[currentImage]; 
    var myTween:Tween = new Tween(loadWindow, "alpha", None.easeOut, 1, 0, 5, true); 
} 

希望這是明確


如果你想動畫自動發生(按下按鈕後)...

var _currentImage:int = 0; 
var myTimer:Timer = new Timer(5000, 0); // 5 seconds 
myTimer.addEventListener(TimerEvent.TIMER, switchPics); 

function goPlay(e:MouseEvent) { 
    myTimer.start(); 
} 

function goStop(e:MouseEvent) { 
    myTimer.stop(); 
} 

function switchPics(event:TimerEvent):void { 
    currentImage = (currentImage+1)%images.length; 
    loadWindow.source = images[currentImage]; 
    var myTween:Tween = new Tween(loadWindow, "alpha", None.easeOut, 1, 0, 5, true); 
} 
+0

看起來它應該工作,但我想知道他們是否想要goPlay()按鈕來循環像動畫一樣的圖像。而不是每次點擊圖片。 – Emile 2010-11-20 00:57:03

+0

是的,它確實需要像sideshow - 自動循環 – Expecto 2010-11-20 01:05:49

+0

*這就是爲什麼我把它放在一個循環中 – Expecto 2010-11-20 01:06:52