dynamisch Bewegtes Hintergrundbild

fodis

Grünschnabel
Hallo Ihr Lieben,

bin neu hier und komme gleich mit einem dicken Problem. Ich habe ein hübsches Panoramahintergrundbild (3500 x 400 pixel), dass ich auf einer Flashseite (550x400pixel) schaltflächenabhängig an unterschiedliche Stellen schieben möchte (je nach angeklicktem Menuepunkt, vielleicht sogar abgebremst?). Das Menue ist kein Problem, es soll fest über dem ganzen schweben. Aber Bild rührt sich bis jetzt nicht :confused:
Wo ist der Profi, der darüber lächelt
Vielen Dank schonmal.
 
Hi und willkommen im Forum,

was hast Du denn bislang probiert, um Dein Hintergrundbild zu animieren? Poste doch bitte mal Deine aktuelle Datei (.fla als Anhang in einem zip-Archiv).

Wenn Du Dein Bild in einen MovieClip verpackst, kannst Du diesen Clip über seinen Instanznamen ansprechen und per AS verschieben. Hilfreich dabei sind u.a. die Methode "onEnterFrame" und die Eigenschaften "_x" und "_y" des MovieClip-Objektes.

Gruß
.
 
Hallo Tobias,
danke für die schnelle Antwort. Ich bin wohl schon auf dem richtigen Weg. Mein Bild ist ein MC in einem eigenen MC. Und ich versuche es auch über die Koordinaten. Bin aber Anfänger... also hier die fla als zip. Es darf auch gelacht werden...
Hochladen hat leider nicht geklappt. Ich hab sie hier abgelegt:
http://www.arnevollstedt.de/fodis3.zip
 
Hi,

aus Deinem Code kann ich nicht wirklich ersehen, was Du erreichen willst. Was z.B. soll folgendes Konstrukt?
Code:
function()
if (nun>=platz) {nunNew=nun+5;
	setzePosition(this.see_mc,nunNew,100)
}
	else if(nun<=platz){nunNew=nun-5; 
		setzePosition(this.see_mc,nunNew,100)
		 }
Das "function()" führt an dieser Stelle zu einer Fehlermeldung und der Code wird auch nur einmal ausgeführt. Du solltest Dir auch eine einheitliche Einrückung (und Semikola am Ende der Zeilen!) angewöhnen, sonst verlierst Du schnell den Überblick:
Code:
// Beispiel:
if (nun>=platz) {
	nunNew=nun+5;
	setzePosition(this.see_mc,nunNew,100);
} else if (nun<=platz){
	nunNew=nun-5; 
	setzePosition(this.see_mc,nunNew,100);
}

Ich gehe aufgrund Deiner Veröffentlichungseinstellungen davon aus, dass Du mit Flash 6 arbeitest (wofür ich nicht speichern kann), also erkläre ich Dir, was ich geändert habe:
  • Im MC "hintergrund_mc" die unnötige Zeitleiste und den Code entfernen, so dass nur noch ein Schlüsselbild mit dem MC "see_mc" übrigbleit.

  • In diesem Frame (MC "hintergrund_mc") wird folgender Code angelegt:
Code:
var bx = seebild._x;
var by = seebild._y;

function slideTo(dx, dy, speed) {
	slideToA(bx + dx, by + dy, speed);
}

function slideToA(dx, dy, speed) {
	this.onEnterFrame = function() {
		seebild._x += (dx - seebild._x) / speed;
		seebild._y += (dy - seebild._y) / speed;
		if (Math.abs(dx - seebild._x) < 1 && Math.abs(dy - seebild._y) < 1) {
			seebild._x = dx;
			seebild._y = dy;
			delete this.onEnterFrame;
		}
	}
}

function doReset() {
	slideToA(bx, by);
}
Die Funktion "slideToA" beförtert "seebild" an eine absolute Position, mit "slideTo" kannst Du das Bild abhängig von seiner Startposition verschieben. Ein Aufruf mit
Code:
slideTo(50, 0, 5);
Würde das Ding z.B. an eine Stelle 50 Pixel rechts von seiner Ausgangsposition verschieben (der dritte Parameter ist ein Teiler für die Geschwindigkeit: je höher, desto langsamer).


  • Wenn Du nun mit Deinem Testbutton (auf _root) das Bild verschieben willst, könntest Du dort z.B. sagen:
Code:
on (release) {
	_root.cover_mc.blende_mc.play();
	_root.target_path = 'c2';
	see.slideTo(400, 0, 5);
}
Ein Klick verschiebt das Bild nun um 400 Pixel nach rechts. Mit dem Aufruf:
Code:
see.doReset();
kannst Du wieder zur Startposition gleiten.

Gruß
.
 
Wow, ich bin begeistert. Das läuft perfekt!! Da wär ich in drei kalten Wintern nicht drauf gekommen.
Vielen Dank !

lieben Gruß aus HH
Arne
 
Zuletzt bearbeitet:
Zurück