Mit Mausrad scrollen gibt Probleme..

Status
Nicht offen für weitere Antworten.

Skippy

Mitglied
Hi,

Ich habe folgendes Problem in meinem Flashfilm:

Ich habe den Hauptfilm, und 2 andere .swf Dateien

Im Hauptfilm befindet sich Viereck, in das durch "loadMovie" die 2 anderen .swf Dateien hineingeladen werden, zum laden der unterfilme gibt es 2 Buttons.

Die unterfilme sind beide mit einem selbstgebauten Scrollbalken versehen, aufgebaut wie im Flash-Tutorial auf dieser Seite von Tobias Menzel (sry falls der Name falsch geschrieben ist :rolleyes: )
Außerdem habe ich selbst noch eine Mausrad-Scrollfunktion eingebaut:

Code:
var listener = new Object();
listener.onMouseWheel = function(delta) {
	var offsett = (delta / Math.abs(delta));
	window.container._y += 50 * offset;
	scroller.slider._y -= 45 * offset;
	window.container.reSize();

	// Content Position
		if (window.container._y > 0) {
		window.container._y = 0;
	}
		if (window.container._y < -150) {
		window.container._y = -150;
	}
	// Slider Position
			if (scroller.slider._y > 136) {
		scroller.slider._y = 136;
	}
		if (scroller.slider._y < -1) {
		scroller.slider._y = 0;
	}
	ypsilon = window.container._y;
	epsilon = scroller.slider._y;
}
Mouse.addListener(listener);

(epsilon und ypsilon dienen nur zur Ausgabe der Positionen für ein dynamisches Textfeld, war nur für mich um die Positionen zu bestimmen.)

Folgendes Problem nun:
Wenn ich im Hauptfilm durch den Button diesen Film Lade, in dem der obere Actionscript drin ist, dann funktioniert alles 1 a, z.B. brauche ich das Mausrad 3 mal zu scrollen und der text ist ganz unten, dabei bewegt sich der Scrollbalken auch 3 mal runter.

Wenn ich jetzt allerdings nochmal auf den Knopf drücke, spricht, die .swf Datei nochmal Lade, ändern sich die Scrollproportionen total, der film ist nach einem Mausrad-dreher schon in der Mitte, der Scrollbalken bewegt sich dementsprechend.

und wenn ich nun nochmal auf den button klicke, scrollt sich der Film durch einmal drehen jetzt schon komplett zum Ende (Scrollbalken auch).
Scrollbalken und Inhalt bewegen sich immer zusammen, aber umso öfter ich auf den Button klicke, umso mehr scrollt der Inhalt hoch bzw. runter, warum?

Es kommt mir so vor, als würde auf den wert zum scrollen z.B. 50 beim nächsten klick auf den Button nochmal 50 oder so dazu kommen.
Hab schon einiges probiert, z.B. einige Variablen auf 0 zu setzen, removeListener, etc.
kann aber natürlich auch sein das ich diese falsch plaziert habe..

Vieleicht könnt ihr mir ja weiter helfen wäre echt total froh darüber!!
Danke im Vorraus, Skippy
 
Zuletzt bearbeitet:
Hi,

das kommt daher, dass der Mouse-Listener beim Reload der swf nicht gelöscht wird und weiterhin aktiv ist - beim Drehen des Mausrades wird die entsprechende Funktion also zweimal ausgeführt (nach jedem Reload einmal mehr).

Du solltest vor jedem Neuladen alle Listener "manuell" löschen - schau Dir dazu mal die Funktion "removeListener" an. ;)

Gruß
.
 
erstmal danke für deine Antwort.

Also removeListener hab ich eigentlich schon versucht, kannst du mir vieleicht sagen wo genau der stehen muss und noch wie der aussehen soll, dass ich auch nichts falsch mache :)

danke im vorraus, Skippy
 
Zum testen habe ich einfach einen neuen Film erstellt, nur ein Viereck in den der Content reingeladen wird und ein einfacher button, der Button besitzt folgenden Text:

Code:
on (press) {
	Mouse.removeListener(listener);
	Mouse.removeListener(listener_start);
	removeListener(listener);
	removeListener(listener_start);
	_root.test.removeListener(listener_start)
	_root.test.removeListener(listener)
	test.removeListener(listener)
	test.removeListener(listener_start)
	_root.test.loadMovie ("startseite_F.swf");
}

Und es bringt GARNICHTs :-(((
plz help!!

,Skippy

====
EDIT:
====

Jetzt hab ich noch zur externen .swf über dem Haupt-Actionscript (der ganz oben steht) noch folgendes drüber geschrieben:

Code:
Mouse.removeListener (listener);
offset = 0;
delta = 0;
var listener = delete Object();

Und das bringt auch nichts...

MfG Skippy
 
Zuletzt bearbeitet:
... und was soll das:
Code:
var listener = delete Object();
bedeuten? :confused:

Gruß
.

Das ist das ergebniss zig verzweifelter Versuche es hinzubekommen ohne erfolg :) (Ich hab eben alles getestet...)

So, im Anhang befinden sich:

TEST.fla <---- Hauptfilm
TEST.swf <---- Hauptfilm
start_F.fla
start_F.swf

http://www.gabbagandalf.de/mousewheel_bug.rar


Dass es irgend ein Fehler sein soll wie falscher pfad, Tippfehler etc. glaub ich kaum, dazu hab ich mir das Teil zu oft durchgeschaut, wenn doch, ist es ein schlechtes Omen...

Bitte um Hilfe!
 
Also ich bin schon die ganze Zeit am testen, ich versuch wirklich alles Mögliche, vieleicht kann mir jemand eine sehr kleine und einfach gebaute testdatei machen ohne viel Aufwand? Bitte helft mir ich verzweifle noch...

Ich muss das hinkriegen so schnell wie möglich.

MfG Skippy
 
Langsam werde ich total wahnsinnig...

Ich habe jetzt den von oben erwähnten Film genommen, der reingeladen wird, da 2 Buttons reingesetzt, und den Actionscript der das Scrollen ermöglicht, da reingesetzt unter

Code:
button.onPress = function () {
 >> Hier der Actionscript von oben <<
}

und für den anderen Button folgendes:

Code:
button1.onPress = function () {
Mouse.removeListener(listener);
}

Der Code liegt auf einer extra Ebene die "Code2" heist, auf der keine bilder, MCs oder sonstwas liegen, und es ist alles im 1. Frame.

Soweit sogut.
Das Scrollen geht erst sobald ich "button" drücke, und wenn ich ihn nochmals drücke, taucht das von mir oben beschriebe Problem auf, aber wenn ich auf "button1" drücke, na was passiert dann?

GARNICHTS

Arrrrrrrrrrgh ich werde wirklich wahnsinnig ich lauf gleich amok, warum geht den das nicht? : - ((((((((((((


helft mir bitte ich bin am verzweifeln : - (


Mit trauernden Grüßen, Skippy
 
Zuletzt bearbeitet:
Es ist vollbracht!

Nach

ZAHLREICHEN...

ENDLOSEN....

ERMÜDENDEN....

Versuchen... ist es mir ENDLICH gelungen eine alternative zu finden, die zu keinen Probleme führt, und die funktioniert...
Es ist zwar nicht wirklich das was ich gesucht habe, doch es funktioniert, es gibt zwar ein paar kleine Eingrenzungen, doch es funktioniert :p

Jetzt weiss ich auch woran es lag, und ich wäre immernoch froh wenn ihr mir ein Problem beantworten könntet:

WIE kann vom Hauptfilm aus, den Mouse Listener einer .swf Datei löschen, der im Hauptfilm durch loadMovie eingelesen wurde?
 
Skippy hat gesagt.:
WIE kann vom Hauptfilm aus, den Mouse Listener einer .swf Datei löschen, der im Hauptfilm durch loadMovie eingelesen wurde?
indem man den Pfad anspricht..
nun kommt es darauf an wie die swf geladen wurde..
in ein Container..?
in ein level..
P.S.
auf dein Startseitebutton
on(press) {
Mouse.removeListener(_root.test.listener);...usw

und verwende bitte keine von Flash reservierten Wörter wie zb.. listener
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.

Neue Beiträge

Zurück