simple bildergalerie bringt flash fast zum absturz

laikabase

Grünschnabel
hallo ich habe eben eine simple, wenn auch ein bischen umständliche bildergalerie gebaut.
eine ganz einfache sache. 4ebenen mit je 1einem mc als bild. ich blende auf frame 1 alle 4 nacheinander aus. auf frame 2 ist die reihenfolge der mcs vertauscht, damit beim ausblenden der eindruck entsteht, es wäre ein endlosdurchlauf. komischerweise, bleibt er auf frame 2 an der letzten ebene hängen, und springt hin und her, statts auf frame 1 zu springen. das ganze führt sogar soweit das mein programm für kurze zeit nicht anspricht.
hier mein script im anhang der file - vielleicht könnt ihr mir ja weiterhelfen!?
PHP:
//frame1

stop();
var zeit = 15;
fade1 = setInterval(function () {
warte0++;
if (warte0 >= zeit) {
mc1._alpha -= 5;}
if (mc1._alpha <= 5) {
warte1++;}
if (warte1 >= zeit) {
mc2._alpha -= 5;}
if (mc2._alpha <= 5) {
warte2++;}
if (warte2 >= zeit) {
mc3._alpha -= 5;}
if (mc3._alpha <= 5) {
warte3++;}
if (warte3 >= zeit) {
gotoAndStop("zwei");}
}, 70);


//frame2

stop();
var zeit = 15;
fade2 = setInterval(function () {
mc4b._alpha -= 5;
if (mc4b._alpha <= 5) {
warte4b++;}
if (warte4b >= zeit) {
mc1b._alpha -= 5;}
if (mc1b._alpha <= 5) {
warte1b++;}
if (warte1b >= zeit) {
mc2b._alpha -= 5;}
if (mc2b._alpha <= 5) {
warte2b++;}
if (warte2b >= zeit) {
mc3b._alpha -= 5;}
if (mc3b._alpha <= 5) {
warte3b++;}
if (warte3b >= zeit) {
mc4c._alpha -= 5;}
if (mc4c._alpha <= 5) {
gotoAndStop("eins");}
}, 70);


//zischen den letzten beiden bilder bleibt das programm hängen!

Bitte verwende PHP- oder Code-Tags beim Posten von Code, danke!

- Datic
 

Anhänge

Zuletzt bearbeitet von einem Moderator:
Hi,

hmm, onEnterFrame.fade1 - diese Konstruktion ist mir neu. onEnterFrame ist eine Ereignisprozedur und kein Objekt...

Jedenfalls bekommst Du etliche überlagernde Intervalle, was im Endeffekt zum Absturz führt.

Du musst:

a) das aktuelle Intervall löschen, bevor Du zu dem jeweils anderen Frame springst:
PHP:
if (warte3 >= zeit) {
	clearInterval(fade1);
	gotoAndStop("zwei");
}
und
PHP:
if (mc4c._alpha <= 5) {
	clearInterval(fade2);
	gotoAndStop("eins");}
}

b) Im ersten Frame zuerst die Variablen "warte0" - "warte3" wieder auf 0 setzen, da sie ihren letzten Wert behalten, auch wenn Du zu einem anderen Frame springst.

Gruß
.
 
...erstmal danke für die hilfestellung. falls dir da script nen bischen komisch vorkommt - ich bin halt noch as-anfänger. ich habe aber gemerkt das es eigentlich weniger mit dem setTnterval zu tun hat. wenn ich es ganz ohne schreibe tritt der selbe effekt ein:

also auch wenn ichs so machen würde:


stop();
var zeit = 15;
_root.onEnterFrame = function () {
warte0++;
if (warte0 >= zeit) {
mc1._alpha -= 5;}
if (mc1._alpha <= 5) {
warte1++;}
if (warte1 >= zeit) {
mc2._alpha -= 5;}
if (mc2._alpha <= 5) {
warte2++;}
if (warte2 >= zeit) {
mc3._alpha -= 5;}
if (mc3._alpha <= 5) {
warte3++;}
if (warte3 >= zeit) {
delete _root.onEnterFrame;
gotoAndStop("zwei");
};
}

verstehe ich nicht!
 
Hi,

hmm... bei mir gehts, wenn Du (wie gesagt) die Variablen wieder initialisierst:
PHP:
 stop();
var zeit = 15;
var warte0 = warte1 = warte2 = warte3 = 0;
...

Gruß
.
 
1000mio. dank für deine hilfe, jetzt es - man ich habe ungelogen den ganzen gestrigen tag mit dieser lächlerilichen aktion verbracht, bin halt noch anfänger und werds wahrscheinlich auch immer bleiben. trotzdem vielen, vilen dank für deine hilfe, du hast mir echt den tag gerettet.
grüsse

so es bei mir:



stop();
var zeit = 15;
var warte0 = 0;
var warte1 = 0;
var warte2 = 0;
var warte3 = 0;
var warte4b = 0;
var warte1b = 0;
var warte2b = 0;
var warte3b = 0;
fade1 = setInterval ( function () {
warte0++;
if (warte0 >= zeit) {
mc1._alpha -= 5;}
if (mc1._alpha <= 5) {
warte1++;}
if (warte1 >= zeit) {
mc2._alpha -= 5;}
if (mc2._alpha <= 5) {
warte2++;}
if (warte2 >= zeit) {
mc3._alpha -= 5;}
if (mc3._alpha <= 5) {
warte3++;}
if (warte3 >= zeit) {
clearInterval(fade1);
gotoAndStop("zwei");}
}, 70);
 
Zurück