motion ease

Haut wunderbar hin. snd.start war an der falschen Stelle.
Aber wenn man eine Funktion aufrufen kann, müsst man sie doch auch wieder abstellen können? Oder? Wäre manchmal doch recht hilfreich.
 
eine Funktion wird auch nur 1 mal aufgerufen durch einen Funktionsaufruf.
Code:
newInterval();

Du hattest du unten eine Endlosschleife, welche die Funktion immer wieder aufgerufen hat.
Man kann nur in eine Funktion mit break; meiner Meinung beenden. Was aber unschön ist da es oftmals ohne geht.
 
Hallo Pirol,

mittlerweile habe ich schon schön was zusammen. Geht auch. Nur löscht sich die Schrift nach ner Weile und taucht dann wieder auf. usw. Irgendeine Funktion wird immer wieder aufgerufen, aber ich finde nicht raus welche.

Wenn Du nochmal ran möchtest, hier das Script:

Code:
import mx.transitions.Tween;

MovieClip.prototype.killMC = function () {
	this.swapDepths(100000);
	this.removeMovieClip();
}



//var a = ["b1","b2","b3","b4","b5"];
var zeichen = ["b1","b2","b3","b4","b5"];
var interval;
var end;
var begin;
var i;
var h = 0;
var intDuration = 10; 
var tweenDuration = 3;	
var scratch = new Sound(this);
scratch.attachSound("scr2");


anfang();
fadeinterval = setInterval(einfaden, 3500);
losinterval = setInterval(los, 7000);
	


function anfang() {
	b0._alpha = 0;
    b1._alpha = 0;
    b2._alpha = 0;
    b3._alpha = 0;
    b4._alpha = 0;
    b5._alpha = 0;
    strich._alpha = 0;
}


function los () {
	clearInterval(losinterval);
	strich.killMC();
	i = -1;
	newInterval();
	barthl();
	scratchinterval = setInterval(scrsnd, 800);
}

function newInterval(){
	i++;
	interval = setInterval(wait, intDuration + random(500));	
}

function wait(){
	clearInterval(interval);
	slideright(i);
	
	if(i <= zeichen.length)	{
		newInterval();
	} else {
		clearInterval(interval);
	}
}

function slideright(i){ 
	begin = this[zeichen[i]]._x;
	end = this[zeichen[i]]._x + 50;
	var myTween:Tween = new Tween(this[zeichen[i]], "_x", mx.transitions.easing.Elastic.easeInOut, begin, end, tweenDuration, true);	
}

function barthl() {
	loadMovie("artholom2.swf","holofn");
}


function einfaden() {
	clearInterval(fadeinterval);
	onEnterFrame = function() {
	b0._alpha = b0._alpha + h;
	b1._alpha = b1._alpha + h;
	b2._alpha = b2._alpha + h;
	b3._alpha = b3._alpha + h;
	b4._alpha = b4._alpha + h;
	b5._alpha = b5._alpha + h;
	strich._alpha = strich._alpha + h;
	h = h + 0.1;
	}
}
	
function scrsnd() {
	clearInterval(scratchinterval);
		scratch.start();
	}


Datei senden ging nicht, da zu gross.


Grüsse aus der Schweiz,

Sigi
 
Poste am besten alle Dateien die dazu notwenig sind um es zu testen in einem .zip Archiv
Dann werde ich es mir mal nochmal anschauen :)
 
Du hast vergessen dein onEnterFrame zu beenden.

Code:
function einfaden() {
	clearInterval(fadeinterval);
	onEnterFrame = function () {
		b0._alpha = b0._alpha+h;
		b1._alpha = b1._alpha+h;
		b2._alpha = b2._alpha+h;
		b3._alpha = b3._alpha+h;
		b4._alpha = b4._alpha+h;
		b5._alpha = b5._alpha+h;
		strich._alpha = strich._alpha+h;
		h = h+0.1;
		if (b0._alpha+h>=100) {
			delete this.onEnterFrame;
		}
	};
}

Am besten definierst du bei onEnterFrame immer eine bedingungen welches es es wieder entfernt es sei den es ist eine Sildeshow oder ähnliches welches es dauerhaft benötigt.

Was du jetzt noch zur Verschönerung des Codes machen könntest und das es einfacher wirkt, ist das du beide fla Dateien zu einer machst. D.H. deine Funktionen musst du entweder auf verschiedene MC machen oder du benennst sie um damit es nicht die selben sind.
 
Hallo pirol,

vielen Dank für Deine Ausdauer! Du hast mir extrem geholfen und ich habe einiges dazu gelernt.
Wenn es mal was gibt, was ich für Dich tun kann - dann melde Dich.


Beste Grüsse,


Sigi Terpoorten
 
Zurück