Voor een fotoLoader lees ik een xml file uit die automatisch gegenereeerd word. Deze afbeeldingen moeten dan door elkaar heen gefade worden door middel van een stukje AS.
Daarvoor heb ik het volgende:
Nu gaan de eerste twee foto's goed, maar vanaf dat moment loopt het in de soep. Met debuggen blijkt dat de interval actief blijft die het faden zou moeten stoppen en daarom word het een chaos, echter zie ik geen oplossing. Wie kan me hiermee helpen?
Het voorbeeld staat op http://studio.axysservice.nl/tendenz/
alvast bedankt!
Daarvoor heb ik het volgende:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
| import mx.utils.Delegate;
// global vars
var iCurrentImage = 0;
var iTotalOfImages = 0;
var iFadeIntervalID = 0;
this.sideImages = new Array();
imageLoader._alpha = 100;
imageLoader2._alpha = 0;
bSecondFades = true;
function findNode(node, nodeName)
{
if (node.nodeName==nodeName)
return node;
for (var i=0; node.childNodes && i<node.childNodes.length; i++)
{
var foundNode=findNode(node.childNodes[i], nodeName);
if (foundNode!=null)
return foundNode;
}
return null;
}
function getValue(node)
{
if (node && node.firstChild)
return node.firstChild.nodeValue;
return "";
}
var xmlData = new XML();
function onXmlLoaded(success:Boolean)
{
iTotalOfImages = xmlData.childNodes.length;
for(var iNode = 0; iNode < xmlData.childNodes.length; iNode++)
{
imgNode = xmlData.childNodes[iNode];
sideImages[iNode] = getValue(findNode(imgNode, "url"));
}
// set the first image
startLoading(sideImages[0]);
}
xmlData.ignoreWhite = true;
xmlData.onLoad = Delegate.create(this, onXmlLoaded);
xmlData.load(_root.xmlFile + ".xml");
function changeImage()
{
iCurrentImage++;
if(iCurrentImage >= iTotalOfImages)
{
iCurrentImage = 0;
}
startLoading(sideImages[iCurrentImage]);
}
function fadeIn()
{
trace("Second fades: " + bSecondFades);
if(bSecondFades)
{
setProperty(imageLoader, _alpha, imageLoader._alpha - 20);
setProperty(imageLoader2, _alpha, imageLoader2._alpha + 20);
}
else
{
setProperty(imageLoader2, _alpha, imageLoader2._alpha - 20);
setProperty(imageLoader, _alpha, imageLoader._alpha + 20);
}
if(imageLoader2._alpha >= 100)
{
imageLoader._alpha = 0;
imageLoader2._alpha = 100;
clearInterval(iFadeIntervalID);
}
if(imageLoader._alpha >= 100)
{
imageLoader._alpha = 100;
imageLoader2._alpha = 0;
clearInterval(iFadeIntervalID);
}
}
function startLoading(whichImage)
{
if(imageLoader2._alpha == 100 && imageLoader._alpha == 0)
{
loadMovie(whichImage, "imageLoader");
iFadeIntervalID = setInterval(fadeIn, 80);
bSecondFades = false;
}
if(imageLoader2._alpha == 0 && imageLoader._alpha == 100)
{
loadMovie(whichImage, "imageLoader2");
iFadeIntervalID = setInterval(fadeIn, 80);
bSecondFades = true;
}
setInterval(changeImage, 6000);
} |
Nu gaan de eerste twee foto's goed, maar vanaf dat moment loopt het in de soep. Met debuggen blijkt dat de interval actief blijft die het faden zou moeten stoppen en daarom word het een chaos, echter zie ik geen oplossing. Wie kan me hiermee helpen?
Het voorbeeld staat op http://studio.axysservice.nl/tendenz/
alvast bedankt!