Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[flash/AS] Probleem met foto loader

Pagina: 1
Acties:

  • pderaaij
  • Registratie: Oktober 2005
  • Laatst online: 18-08 20:16
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:

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!

  • Crayne
  • Registratie: Januari 2002
  • Laatst online: 17-03 13:41

Crayne

Have face, will travel

Met IE7 (7.0.5730.11) en Firefox 2.0.0.6 zie ik geen probleem op de site. Wat zijn precies de symptomen?

Mijn Library Thing catalogus


  • High Quality king
  • Registratie: Februari 2002
  • Laatst online: 28-11 12:40
Ik zet altijd op de regel voordat ik het interval aanroep hetzelfde clearInterval, hierdoor voorkom je dat alles in de soep loopt en er meerdere intervals tegelijk gaan lopen.

Het is niet de mooiste oplossing maar het is er een als de reguliere manier van het uitzetten niet werkt.

Ik kwam, Ik ben, En ik zal er altijd zijn


  • pderaaij
  • Registratie: Oktober 2005
  • Laatst online: 18-08 20:16
@Crayne: Er stond nog een oude index op met het statische filmpje vandaar dat het leek dat het goed ging. Beetje dom van mij. 8)7

@HQ King: Die extra toevoeging lijkt de truc te zijn. Hij werkt nu goed echter ben ik er wel achter dat er preloading in moet. Teven laad hij nu ook de foto telkens opnieuw wat er lijkt voor te zorgen dat het werkgeheugen volloopt wat FireFox word wel erg traag na een tijdje.

Bedankt voor de aanwijzing!!