Bilder per random auf die bühne laden...

black-dog

Erfahrenes Mitglied
Schaut euch bitte mal das Script an, und den Link zum File! auf den ersten Blick scheints ganz gut zu funktionieren, aber auf einmal wechseln nicht mehr alle Bilder wie gewünscht!

ein quadrat bleibt nach einer weile immer weiss! manchmal bleiben alle bei ca. 10% alpha stehen etc...

script für quadrate

PHP:
_root.createEmptyMovieClip("bilder", 1);
_root.createEmptyMovieClip("bilder2", 2);
_root.createEmptyMovieClip("bilder3", 3);
_root.createEmptyMovieClip("bilder4", 4);

bilder._x = 0;
bilder._y = 0;
bilder2._x = 133;
bilder2._y = 0;
bilder3._x = 266;
bilder3._y = 0;
bilder4._x = 399;
bilder4._y = 0;

_global.bilderwechsel = function() {

	with (_root.bilder) {
        if (_alpha<100) {
            attachMovie("pic"+Math.ceil(Math.random()*4), "pic", 1);
            // fade in
            _root.onEnterFrame = function() {
                with (_root.bilder) {
                    _alpha += 25;
                    if (_alpha>99) {
                        clearInterval(delay);
                        _alpha = 100;
                        delete _root.onEnterFrame;
                        _global.delay = setInterval(bilderwechsel, Math.round((Math.random()*2000)+300));
                    }
                }
            };
        } else {
            if (_alpha>1) {
                // fade out
                _root.onEnterFrame = function() {
                    with (_root.bilder) {
                        _alpha -= 25;
                        if (_alpha<1) {
                            _alpha = 0;
                        }
                        if (_alpha == 0) {
                            clearInterval(delay);
                            delete _root.onEnterFrame;
                            bilderwechsel();
                        }
                    }
                };
            }
        }
    }
};

_global.bilderwechsel2 = function() {

	with (_root.bilder2) {
        if (_alpha<100) {
            attachMovie("pic"+Math.ceil(Math.random()*4), "pic", 2);
            // fade in
            _root.onEnterFrame = function() {
                with (_root.bilder2) {
                    _alpha += 25;
                    if (_alpha>99) {
                        clearInterval(delay2);
                        _alpha = 100;
                        delete _root.onEnterFrame;
                        _global.delay2 = setInterval(bilderwechsel2, Math.round((Math.random()*2000)+300));
                    }
                }
            };
        } else {
            if (_alpha>1) {
                // fade out
                _root.onEnterFrame = function() {
                    with (_root.bilder2) {
                        _alpha -= 25;
                        if (_alpha<1) {
                            _alpha = 0;
                        }
                        if (_alpha == 0) {
                            clearInterval(delay2);
                            delete _root.onEnterFrame;
                            bilderwechsel2();
                        }
                    }
                };
            }
        }
    }
};

_global.bilderwechsel3 = function() {

	with (_root.bilder3) {
        if (_alpha<100) {
            attachMovie("pic"+Math.ceil(Math.random()*4), "pic", 3);
            // fade in
            _root.onEnterFrame = function() {
                with (_root.bilder3) {
                    _alpha += 25;
                    if (_alpha>99) {
                        clearInterval(delay3);
                        _alpha = 100;
                        delete _root.onEnterFrame;
                        _global.delay3 = setInterval(bilderwechsel3, Math.round((Math.random()*2000)+300));
                    }
                }
            };
        } else {
            if (_alpha>1) {
                // fade out
                _root.onEnterFrame = function() {
                    with (_root.bilder3) {
                        _alpha -= 25;
                        if (_alpha<1) {
                            _alpha = 0;
                        }
                        if (_alpha == 0) {
                            clearInterval(delay3);
                            delete _root.onEnterFrame;
                            bilderwechsel3();
                        }
                    }
                };
            }
        }
    }
};

_global.bilderwechsel4 = function() {

	with (_root.bilder4) {
        if (_alpha<100) {
            attachMovie("pic"+Math.ceil(Math.random()*4), "pic", 4);
            // fade in
            _root.onEnterFrame = function() {
                with (_root.bilder4) {
                    _alpha += 25;
                    if (_alpha>99) {
                        clearInterval(delay4);
                        _alpha = 100;
                        delete _root.onEnterFrame;
                        _global.delay4 = setInterval(bilderwechsel4, Math.round((Math.random()*2000)+300));
                    }
                }
            };
        } else {
            if (_alpha>1) {
                // fade out
                _root.onEnterFrame = function() {
                    with (_root.bilder4) {
                        _alpha -= 25;
                        if (_alpha<1) {
                            _alpha = 0;
                        }
                        if (_alpha == 0) {
                            clearInterval(delay4);
                            delete _root.onEnterFrame;
                            bilderwechsel4();
                        }
                    }
                };
            }
        }
    }
};

aufruf

PHP:
on (release) {
    _global.delay=setInterval(bilderwechsel, (Math.random()*5));
	_global.delay2=setInterval(bilderwechsel2, (Math.random()*5));
	_global.delay3=setInterval(bilderwechsel3, (Math.random()*5));
	_global.delay4=setInterval(bilderwechsel4, (Math.random()*5));
}


links: http://www.faced.ch/black-dog/fla.fla
http://www.faced.ch/black-dog/swf.swf

mfg
 
Zuletzt bearbeitet von einem Moderator:
Hi,

ich hab das Script jetzt nicht getestet oder debuggt (debugged?) aber:

Ich habe vor kurzem festgestellt: wenn setInterval in dieser Form ( v = setInterval(Funktion, Intervall) ) aufgerufen wird, wird function sofort ohne Verzögerung aufgerufen. Mit folgender Syntax: v = setInterval(function() { Funktion(); }, Intervall) wird das erste Delay beachtet.

Möglicherweise wird dadurch irgenwo ein Überlauf und ein Abbruch des Scripts verursacht.

Gruß

P.S.: außerdem habe ich oft mit with(object) Probleme gehabt - aus undefinierbaren Gründen wird das Objekt mal erkannt und mal nicht... :rolleyes:

EDIT: nochwas, grade erst gesehen: Du definierst anscheinend _root.onEnterFrame mehrmals, und zwar für jedes Quadrat. Der Handler wird dabei überschrieben, wenn mehr als ein Quadrat sich zur gleichen Zeit ändert. Setze den onEnterFrame-Handler lieber getrennt für die MCs (bilder2.onEnterFrame) statt auf _root.
 
Zuletzt bearbeitet:
hmmm.

ich sehe immer noch überall _root.onEnterFrame-Handler... und ganz zu Beginn werden "onEnterFrame" alle setInverval-Handler gesetzt - und zwar mehrmals (da onEnterFrame ja nicht sofort wieder genlöscht wird)! Das muss eigentlich zu einem Abbruch des Scripts führen.

Setze die Intervalle einmal zu Beginn des Scriptes und ersetze _root.onEnterFrame überall durch "bilder.onEnterFrame", "bilder2.onEnterFrame" usw.

Gruß
 
hmmmm, nun zeigts mir gar nix mehr an... nichtmal ne fehlermeldung :)!

PHP:
_global.delay=setInterval(bilderwechsel, (Math.random()*10));
_global.delay2=setInterval(bilderwechsel2, (Math.random()*10));
_global.delay3=setInterval(bilderwechsel3, (Math.random()*10));
_global.delay4=setInterval(bilderwechsel4, (Math.random()*10));

_root.createEmptyMovieClip("bilder", 1);
_root.createEmptyMovieClip("bilder2", 2);
_root.createEmptyMovieClip("bilder3", 3);
_root.createEmptyMovieClip("bilder4", 4);

bilder._x = 0;
bilder._y = 0;
bilder2._x = 133;
bilder2._y = 0;
bilder3._x = 266;
bilder3._y = 0;
bilder4._x = 399;
bilder4._y = 0;

_global.bilderwechsel = function() {

	with (_root.bilder) {
        if (_alpha<100) {
            attachMovie("pic"+Math.ceil(Math.random()*15), "pic", 1);
            // fade in
            bilder.onEnterFrame = function() {
                with (_root.bilder) {
                    _alpha += 25;
                    if (_alpha>99) {
                        clearInterval(delay);
                        _alpha = 100;
                        delete bilder.onEnterFrame;
                        _global.delay = setInterval(function() { bilderwechsel(); }, Math.round((Math.random()*2000)+300));
                    }
                }
            };
        } else {
            if (_alpha>1) {
                // fade out
                bilder.onEnterFrame = function() {
                    with (_root.bilder) {
                        _alpha -= 25;
                        if (_alpha<1) {
                            _alpha = 0;
                        }
                        if (_alpha == 0) {
                            clearInterval(delay);
                            delete bilder.onEnterFrame;
                            bilderwechsel();
                        }
                    }
                };
            }
        }
    }
};

_global.bilderwechsel2 = function() {

	with (_root.bilder2) {
        if (_alpha<100) {
            attachMovie("pic"+Math.ceil(Math.random()*15), "pic", 2);
            // fade in
            bilder2.onEnterFrame = function() {
                with (_root.bilder2) {
                    _alpha += 25;
                    if (_alpha>99) {
                        clearInterval(delay2);
                        _alpha = 100;
                        delete bilder2.onEnterFrame;
                        _global.delay2 = setInterval(function() { bilderwechsel2(); }, Math.round((Math.random()*2000)+300));
                    }
                }
            };
        } else {
            if (_alpha>1) {
                // fade out
                _root.onEnterFrame = function() {
                    with (bilder2.bilder2) {
                        _alpha -= 25;
                        if (_alpha<1) {
                            _alpha = 0;
                        }
                        if (_alpha == 0) {
                            clearInterval(delay2);
                            delete bilder2.onEnterFrame;
                            bilderwechsel2();
                        }
                    }
                };
            }
        }
    }
};

_global.bilderwechsel3 = function() {

	with (_root.bilder3) {
        if (_alpha<100) {
            attachMovie("pic"+Math.ceil(Math.random()*15), "pic", 3);
            // fade in
            bilder3.onEnterFrame = function() {
                with (_root.bilder3) {
                    _alpha += 25;
                    if (_alpha>99) {
                        clearInterval(delay3);
                        _alpha = 100;
                        delete bilder3.onEnterFrame;
                        _global.delay3 = setInterval(function() { bilderwechsel3(); }, Math.round((Math.random()*2000)+300));
                    }
                }
            };
        } else {
            if (_alpha>1) {
                // fade out
                _root.onEnterFrame = function() {
                    with (bilder3.bilder3) {
                        _alpha -= 25;
                        if (_alpha<1) {
                            _alpha = 0;
                        }
                        if (_alpha == 0) {
                            clearInterval(delay3);
                            delete bilder3.onEnterFrame;
                            bilderwechsel3();
                        }
                    }
                };
            }
        }
    }
};

_global.bilderwechsel4 = function() {

	with (_root.bilder4) {
        if (_alpha<100) {
            attachMovie("pic"+Math.ceil(Math.random()*15), "pic", 4);
            // fade in
            bilder4.onEnterFrame = function() {
                with (_root.bilder4) {
                    _alpha += 25;
                    if (_alpha>99) {
                        clearInterval(delay4);
                        _alpha = 100;
                        delete bilder4.onEnterFrame;
                        _global.delay4 = setInterval(function() { bilderwechsel4(); }, Math.round((Math.random()*2000)+300));
                    }
                }
            };
        } else {
            if (_alpha>1) {
                // fade out
                bilder4.onEnterFrame = function() {
                    with (_root.bilder4) {
                        _alpha -= 25;
                        if (_alpha<1) {
                            _alpha = 0;
                        }
                        if (_alpha == 0) {
                            clearInterval(delay4);
                            delete bilder4.onEnterFrame;
                            bilderwechsel4();
                        }
                    }
                };
            }
        }
    }
};

ps: Wenn ich die Intervalle, die hier zuoberst im Script aufgerufen werden sollten, wieder auf die Buttonfunktion lege, funktionierts wunderbar! Aber wie erspar ich mir den Button?
 
Zuletzt bearbeitet:
Hi,

zunächst sollten die Intervalle aufgerufen werden, nachdem die Clips instanziert werden.

Außerdem bringt ein Aufruf von "bild.onEnterFrame" nichts, wenn Du schon mit with(bild) arbeitest - nimm "this.onEnterFrame" oder "_root.bild.onEnterFrame".

Wenn ich heute Abend etwas Zeit finde, werde ich Dein Script mal testen und (hoffentlich) zum Laufen bringen - das bringt mehr, als hier aus den Stehgreif runzudoktorn, weil man ja doch vieles übersieht. ;)

Gruß
 
Hey Mann! Thanx a lot for your support!

Das mit dem Aufruf nach der Instanzierung hat geklappt!

Hier das Script, welches vielleicht jemandem ausser mir auch was bringt ;-)...

PHP:
_root.createEmptyMovieClip("bilder", 1);
_root.createEmptyMovieClip("bilder2", 2);
_root.createEmptyMovieClip("bilder3", 3);
_root.createEmptyMovieClip("bilder4", 4);

bilder._x = 0;
bilder._y = 0;
bilder2._x = 133;
bilder2._y = 0;
bilder3._x = 266;
bilder3._y = 0;
bilder4._x = 399;
bilder4._y = 0;

_global.bilderwechsel = function() {

	with (_root.bilder) {
        if (_alpha<100) {
            attachMovie("pic"+Math.ceil(Math.random()*15), "pic", 1);
            // fade in
            bilder.onEnterFrame = function() {
                with (_root.bilder) {
                    _alpha += 25;
                    if (_alpha>99) {
                        clearInterval(delay);
                        _alpha = 100;
                        delete bilder.onEnterFrame;
                        _global.delay = setInterval(function() { bilderwechsel(); }, Math.round((Math.random()*8000)+300));
                    }
                }
            };
        } else {
            if (_alpha>1) {
                // fade out
                bilder.onEnterFrame = function() {
                    with (_root.bilder) {
                        _alpha -= 25;
                        if (_alpha<1) {
                            _alpha = 0;
                        }
                        if (_alpha == 0) {
                            clearInterval(delay);
                            delete bilder.onEnterFrame;
                            bilderwechsel();
                        }
                    }
                };
            }
        }
    }
};

_global.bilderwechsel2 = function() {

	with (_root.bilder2) {
        if (_alpha<100) {
            attachMovie("pic"+Math.ceil(Math.random()*15), "pic", 2);
            // fade in
            bilder2.onEnterFrame = function() {
                with (_root.bilder2) {
                    _alpha += 25;
                    if (_alpha>99) {
                        clearInterval(delay2);
                        _alpha = 100;
                        delete bilder2.onEnterFrame;
                        _global.delay2 = setInterval(function() { bilderwechsel2(); }, Math.round((Math.random()*8000)+300));
                    }
                }
            };
        } else {
            if (_alpha>1) {
                // fade out
                bilder2.onEnterFrame = function() {
                    with (_root.bilder2) {
                        _alpha -= 25;
                        if (_alpha<1) {
                            _alpha = 0;
                        }
                        if (_alpha == 0) {
                            clearInterval(delay2);
                            delete bilder2.onEnterFrame;
                            bilderwechsel2();
                        }
                    }
                };
            }
        }
    }
};

_global.bilderwechsel3 = function() {

	with (_root.bilder3) {
        if (_alpha<100) {
            attachMovie("pic"+Math.ceil(Math.random()*15), "pic", 3);
            // fade in
            bilder3.onEnterFrame = function() {
                with (_root.bilder3) {
                    _alpha += 25;
                    if (_alpha>99) {
                        clearInterval(delay3);
                        _alpha = 100;
                        delete bilder3.onEnterFrame;
                        _global.delay3 = setInterval(function() { bilderwechsel3(); }, Math.round((Math.random()*8000)+300));
                    }
                }
            };
        } else {
            if (_alpha>1) {
                // fade out
                bilder3.onEnterFrame = function() {
                    with (_root.bilder3) {
                        _alpha -= 25;
                        if (_alpha<1) {
                            _alpha = 0;
                        }
                        if (_alpha == 0) {
                            clearInterval(delay3);
                            delete bilder3.onEnterFrame;
                            bilderwechsel3();
                        }
                    }
                };
            }
        }
    }
};

_global.bilderwechsel4 = function() {

	with (_root.bilder4) {
        if (_alpha<100) {
            attachMovie("pic"+Math.ceil(Math.random()*15), "pic", 4);
            // fade in
            bilder4.onEnterFrame = function() {
                with (_root.bilder4) {
                    _alpha += 25;
                    if (_alpha>99) {
                        clearInterval(delay4);
                        _alpha = 100;
                        delete bilder4.onEnterFrame;
                        _global.delay4 = setInterval(function() { bilderwechsel4(); }, Math.round((Math.random()*8000)+300));
                    }
                }
            };
        } else {
            if (_alpha>1) {
                // fade out
                bilder4.onEnterFrame = function() {
                    with (_root.bilder4) {
                        _alpha -= 25;
                        if (_alpha<1) {
                            _alpha = 0;
                        }
                        if (_alpha == 0) {
                            clearInterval(delay4);
                            delete bilder4.onEnterFrame;
                            bilderwechsel4();
                        }
                    }
                };
            }
        }
    }
};

// start Animation
_global.delay = setInterval(bilderwechsel, (Math.random()*10));
_global.delay2 = setInterval(bilderwechsel2, (Math.random()*10));
_global.delay3 = setInterval(bilderwechsel3, (Math.random()*10));
_global.delay4 = setInterval(bilderwechsel4, (Math.random()*10));
 

Neue Beiträge

Zurück