[Flash / AS] Functie blijft doorlopen

Pagina: 1
Acties:

  • Xolon
  • Registratie: April 2003
  • Laatst online: 04-02-2019
Zit al een tijdje vast in dit probleem, hoop dat iemand een oplossing heeft:

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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
//URLs naar de cases.
var linkTop1;
var linkTop2;
var linkTop3;
var linkTop4;
var linkTop5;
//Welke klant geselecteerd is, 0=niemand.
var selItem = 0;
var funcSwitchBusy = false;
var funcFaderBusy = false;
//Onthoudt laatst getoonde screenshot per klant.
var allTeller;
var teller1;
var teller2;
var teller3;
var teller4;
var teller5;

//Bevat straks de afbeeldingen per klant.
var arrAllScreens   = new Array();
var arrScreens1     = new Array();
var arrScreens2     = new Array();
var arrScreens3     = new Array();
var arrScreens4     = new Array();
var arrScreens5     = new Array();


//Set fontstyle. 
format      = new TextFormat();
format.font = arial;
format.size = 14;
format.bold = true;
format.color= 0xffffff;

formatOv        = new TextFormat();
formatOv.font   =    arial;
formatOv.size   = 14; 
formatOv.bold   = true;
formatOv.color  = 0x808080;

//Maak containers aan.
createEmptyMovieClip("container1", 100);
createEmptyMovieClip("container2", 101);
container2._alpha = 0;

//Laad de top5 XML in FLash en zet waarden in de arrays.
//---  code weggehaald om post overzichtelijk te houden  


//Rollover commands voor items.
mc_top1.onRollOver = function(){
    mc_top1.mc_Selected._alpha = 100;
    mc_top2.mc_Selected._alpha = 0;
    mc_top3.mc_Selected._alpha = 0;
    mc_top4.mc_Selected._alpha = 0;
    mc_top5.mc_Selected._alpha = 0;
    mc_top1.txtKlantnaam.setTextFormat(formatOv);
    mc_top2.txtKlantnaam.setTextFormat(format);
    mc_top3.txtKlantnaam.setTextFormat(format);
    mc_top4.txtKlantnaam.setTextFormat(format);
    mc_top5.txtKlantnaam.setTextFormat(format);

    selItem = 1;
    loadFirstScreen();
}
mc_top2.onRollOver = function(){
    mc_top1.mc_Selected._alpha = 0;
    mc_top2.mc_Selected._alpha = 100;
    mc_top3.mc_Selected._alpha = 0;
    mc_top4.mc_Selected._alpha = 0;
    mc_top5.mc_Selected._alpha = 0;
    mc_top1.txtKlantnaam.setTextFormat(format);
    mc_top2.txtKlantnaam.setTextFormat(formatOv);
    mc_top3.txtKlantnaam.setTextFormat(format);
    mc_top4.txtKlantnaam.setTextFormat(format);
    mc_top5.txtKlantnaam.setTextFormat(format);

    selItem = 2;
    loadFirstScreen();
}

mc_top1.onRollOut = function(){
    mc_top1.mc_Selected._alpha = 0;
    mc_top1.txtKlantnaam.setTextFormat(format);
        
    selItem = 0;
    mc_holder.startSlideShow();
}
mc_top2.onRollOut = function(){
    mc_top2.mc_Selected._alpha = 0;
    mc_top2.txtKlantnaam.setTextFormat(format);
    
    selItem = 0;
    mc_holder.startSlideShow(); 
}

////////////////////////////////////////////////////////////////////////////////////////////
// Code om afbeeldingen per klant te laten rouleren
////////////////////////////////////////////////////////////////////////////////////////////
var i;
var arrLength;
var activeArray;
var arrayTeller;
var selectie;


function loadFirstScreen(){
        
        if(selItem == 1){
            activeArray = arrScreens1;
        }else if(selItem == 2){
            activeArray = arrScreens2;
        }else if(selItem == 3){
            activeArray = arrScreens3;
        }else if(selItem == 4){
            activeArray = arrScreens4;
        }else if(selItem == 5){
            activeArray = arrScreens5;
        }else{
            activeArray = arrAllScreens;
        }
    
        i = 0;
        arrLength = activeArray.length;
        container1._alpha = 100;
        container2._alpha = 0;
        
        clipLoader1.loadClip(activeArray[i], container1);
        clipLoader1.onLoadInit = function(){
            container1._x = 17;
            container1._y = 36;
            container1._height = 91;
            container1._width =134;
        }
        i++;
    
        clipLoader2.loadClip(activeArray[i], container2);
        clipLoader2.onLoadInit = function(){
            container2._x = 17;
            container2._y = 36;
            container2._height = 91;
            container2._width =134;
        }
        container2._alpha = 0;
        setTimeout(_root, "startFader", 2000);
}

function startFader(){
        import mx.transitions.Tween;
        import mx.transitions.easing.*;
        
        MovieClip.prototype.fadeIn = function(){
                new Tween(this, "_alpha", Regular.easeIn, 0, 100, 1.0, true);
        }
        MovieClip.prototype.fadeOut = function(){
                new Tween(this, "_alpha", Regular.easeOut, 100, 0, 1.0, true);      
        }
                
        if(container1._alpha == 100){
            trace("fade 1 -> 2");
            container1.fadeOut();
            container2.fadeIn();    
        }else{
            trace("fade 2 -> 1");
            container1.fadeIn();
            container2.fadeOut();
            
            i = i+1;
        }
        setTimeout(_root,"switchScreen", 2000);
}

function switchScreen(){
        if(i == arrLength){
            i = 0;
        }       
        if(container2._alpha == 100){
            //Laad volgende screen in 1.
            trace("con1 : "+activeArray[i]);
            clipLoader1.loadClip(activeArray[i], container1);
        }else{
            //Laad volgende screen in 2.
            trace("con2 : "+activeArray[i]);
            clipLoader2.loadClip(activeArray[i], container2);
        }
        setTimeout(_root, "startFader", 2000);
}


Probleem is dat zodra ik van button 1 naar bijvoorbeeld button 2 ga worden de functies voor een 2e keer aangeroepen. Op een of andere manier stoppen ze niet bij "mc_top1.onRollOut", waardoor hij nu dubbel loopt.
Hoe kan ik nu zorgen dat de functies niet vaker dan 1 uitgelezen worden?

Verwijderd

wel een hele lap om door te lezen, kan je niet even een link posten met de werkelijke swf en iets meer uitleg wat er nu precies misgaat en waar je zelf denk dat het eventueel misgaat etc?

  • LB Back
  • Registratie: November 2004
  • Laatst online: 03-06 11:07
Inderdaad, kijk eerst zelfs beter naar het probleem, zo'n lap code pasten en dan vragen om de oplossing doe ik niet aan mee.

  • Xolon
  • Registratie: April 2003
  • Laatst online: 04-02-2019
laat maar,

Na 1,5 week al rond te lopen met het probleem, geen reacties op Flashfocus en dan alles behalve enige behulpzaamheid hier....wat zijn de grote fora weer heerlijk behulpzaam |:(

Als of ik zelf niet alles geprobeerd heb..