Horizontale zufällige Bewegung

Alaniak

Erfahrenes Mitglied
Ich hab zwar schon ein paar Sache gefunden zu dem Thema, allerdings haben dir mir nicht wirklich weiter geholfen.
Mein Problem liegt darin, dass sich einen Strich horizontal zufällig bewegen soll und das in einem bestimmten bereich (z.b. 100-300), geschwindigkeit gleichbleibend.
Kann mir da jemand helfen?
 
Hi,

so etwas?
Code:
var minx = 100; // Linke Begrenzung
var maxx = 200; // rechte Begrenzung

var speed = 2; // Geschwindigkeit

var dx = int(Math.random() * (maxx - minx)) + minx;

this.onEnterFrame = function() {
	if (strich._x < dx) {
		strich._x += speed;
		if (strich._x >= dx) dx = int(Math.random() * (maxx - minx)) + minx;
	} else if (strich._x > dx) {
		strich._x -= speed;
		if (strich._x <= dx) dx = int(Math.random() * (maxx - minx)) + minx;
	} else {
		dx = int(Math.random() * (maxx - minx)) + minx;
	}
}
("strich" ist hier der Instanzname des MovieClips mit der Linie)

Gruß
.
 
Ich hätte da noch ne Frage. Das klappt jetzt alles wunderbar, allerdings wenn ich das ganze jetzt in ein MC pack und dann ins Dokument zieh dann fährt der Strich bei der Animation aus dem sichtbaren Bereich, als ob der komplette "Bereich" verschoben sei.
 
Die Koordinaten beziehen sich dann auf die relativen Koordinaten des MCs (0 wäre dann z.B. die Position des MovieClips auf der Bühne.

Wenn Du mit absoluten Positionen arbeiten willst, kannst Du überall this._x dazuaddieren:
Code:
this.onEnterFrame = function() {
	if (strich._x + _this._x < dx) {
		strich._x += speed;
		if (strich._x + _this._x >= dx) dx = int(Math.random() * (maxx - minx)) + minx;
	} else if (strich._x + this._x > dx) {
		strich._x -= speed;
		if (strich._x + this._x <= dx) dx = int(Math.random() * (maxx - minx)) + minx;
	} else {
		dx = int(Math.random() * (maxx - minx)) + minx;
	}
}

Gruß
.
 
Jetzt hab ich doch noch mal ne Frage ;-)

Die ganze Animation mit dem Strich soll für einen Preloader sein. Sobald alles geladen ist, soll der Strich von seiner aktuellen an eine bestimmte Position "wandern" (z.B 200).
Ich habs mal so probiert:
Code:
if (_framesloaded>=_totalframes) {
	if (strich._x + this._x <= 200) {
		strich._x += speed;
	} else if (strich._x + this._x >= 200) {
		strich._x -= speed;
	  }
}
Allerding geht das nur wenn ich speed auf 1 setze.
 
Zuletzt bearbeitet:
Hi,

wenn Du Dich in einem MovieClip befindest, solltest Du
Code:
_parent._framesloaded;
verwenden; Du willst ja den Ladestatus des Hauptfilms anzeigen, oder?

Gruß
.
 
Ja genau.
Alles in allem wollt ich das so machen, dass solange der Film geladen wird soll die Animation mit dem Strich laufen, sobald der Film geladen ist soll der Strich an eine bestimmte Position fahren.
 
Ja, das sollte so funktionieren:
Code:
this.onEnterFrame = function() {
	if (strich._x + this._x < dx) {
		strich._x += speed;
		if (strich._x + this._x >= dx) dx = int(Math.random() * (maxx - minx)) + minx;
	} else if (strich._x + this._x > dx) {
		strich._x -= speed;
		if (strich._x + this._x <= dx) dx = int(Math.random() * (maxx - minx)) + minx;
	} else {
		dx = int(Math.random() * (maxx - minx)) + minx;
	}
	if (_parent._framesloaded >= _parent._totalframes) dx = 200;
}

Gruß
.
 

Neue Beiträge

Zurück