Content mit Mausrad scrollen [Flash CS4]
| 23.08.2009, 21:24 | | Beiträge: 5 Registriert: Aug 2009
| Content mit Mausrad scrollen Hallo,
ich weiss es gibt zu diesen Thema schon einige Threads, leider habe ich es mit diesen nicht hinbekommen.
Ich habe eine Flash Datei mit eigenen Scrollen den Text bekomme ich aber einfach nicht mit dem Mausrad gescrollt.
Kann sich mal einer bitte die Datei anschauen und mir helfen?
Vielen Dank im Voraus!
MfG
Angehängte Dateien:
| |
| 23.08.2009, 21:40 | Re1 | Beiträge: 36 Registriert: Aug 2009
| hey,
also um das mal ganz schnell für dein script zu schreiben sähe das so aus:
ActionScript:1 2 3 4 5 6 7 8 9 10 11 | var mouseListener:Object = new Object();
mouseListener.onMouseWheel = function(wheelNum:Number) {
sliding = true;
slider._y -= wheelNum;
if (slider._y < 0) slider._y = 0;
if (slider._y > bgnd._height - slider._height) slider._y = bgnd._height - slider._height;
getPos();
reDraw();
sliding = false;
};
Mouse.addListener(mouseListener);
|
das problem, wenn ich deine startMove() funktion aufrufe scrollt der immer weiter... aber ich denke, das kannst du selbst umbauen.. aber mein script einfach mal ans ende der scripts im mc scroller kopieren und schauen, was passiert.
wichtig, du musst erst auf den flashfilm klicken, damit der den focus hat.
mfg willi | Geändert von Willi_ am 23.08.09 um 21:47 Uhr
| |
|
| 23.08.2009, 23:08 | Re2 | Beiträge: 5 Registriert: Aug 2009
Themenautor/in
| Hey danke der Scroll an sich funktioniert schonmal leider hab ich keine Idee wie ich das stoppen soll, ich hab erst vor kurzen mit flash angefangen und es tut mir leid wenn ich mich echt dumm anstelle.
MfG | |
| | | nicht sichtbar bei eingeloggten Mitgliedern |
|
| 23.08.2009, 23:16 | Re3 | Beiträge: 36 Registriert: Aug 2009
| spontan würd ich in der funktion startMove() ein neues argument hinzufügen. wenn das true ist soll die onEnterFrame- Funktion nur einmal durchgeführt werden. sähe dann so aus:
ActionScript:1 2 3 4 5 6 7 8 9 10 11 12 | function startMove(d, once) {
if (speed == undefined) speed = 2;
sliding = true;
bgnd.onEnterFrame = function() {
slider._y += (d * speed);
if (slider._y < 0) slider._y = 0;
if (slider._y > bgnd._height - slider._height) slider._y = bgnd._height - slider._height;
if(once) {
stopMove();
}
}
}
|
und das ganze wird dann im MouseWheel-Event wie folgt aufgerufen
ActionScript:1 2 3 4 5 6 | var mouseListener:Object = new Object();
mouseListener.onMouseWheel = function(wheelNum:Number) {
startMove(-wheelNum, true);
getPos();
};
Mouse.addListener(mouseListener);
|
problem ist noch, dass man die methode getPos() noch zusätzlich aufrufen muss, da 'sliding' bereits false ist, wenn sie automatisch aufgerufen wird und deshalb nicht in die if schleife der funktion geht... | Geändert von Willi_ am 23.08.09 um 23:31 Uhr
| |
|
| 23.08.2009, 23:43 | Re4 | Beiträge: 5 Registriert: Aug 2009
Themenautor/in
| Wunderbar klappt ohne Problem!
Danke dafür!
Alleine hätte ich das wahrscheinlich nie geschafft :(
Gibt es eine möglichkeit den Focus automatisch zu setzen wenn die maus über dem Text und/oder den scroller kommt?
MfG | |
| 23.08.2009, 23:52 | Re5 | Beiträge: 36 Registriert: Aug 2009
| das ist nur in der flash testumgebung so..
hab den film mal in eine html datei eingebunden und getest, da funktioniert es ohne extra klick auf den flashfilm. einzige voraussetzung: der mauszeiger muss über dem flashfilm sein, aber das ist ja auch logisch... über seinen rahmen hinaus kann flash ja diese events nicht abfangen.
mfg Willi | |
| | | nicht sichtbar bei eingeloggten Mitgliedern | 
|
| 24.08.2009, 00:09 | Re6 | Beiträge: 5 Registriert: Aug 2009
Themenautor/in
| Du hast recht hab ich auch grad gemerkt.
Nun arbeite ich gerade daran das Script das du geschrieben hast für einen anderen Scroller umzubauen der ebenfalls von mir benutzt wird leider kriege ich es nicht hin :(
Wenn du noch nicht zu viel von mir hast kannst du ja da auch mal drüber gucken :)
Hier der Code
ActionScript:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | function scroller():Void
{
scroller_mc._y = scrollable_area_mc._y;
tn_group._y = tn_group_area._y;
sr = tn_group_area._height/tn_group._height;
scroller_mc._height = scrollable_area_mc._height * sr;
sd = scrollable_area_mc._height - scroller_mc._height;
cd = tn_group._height - tn_group_area._height;
cr = cd / sd;
if( tn_group._height <= tn_group_area._height )
{
scroller_mc._visible = scrollable_area_mc._visible = false;
}
else
{
scroller_mc._visible = scrollable_area_mc._visible = true;
}
scroller_mc.onPress = function()
{
this.startDrag(false, this._x, scrollable_area_mc._y, this._x,
scrollable_area_mc._y + scrollable_area_mc._height - this._height + 2);
onDrag = true;
this.onEnterFrame = function()
{
new_y = tn_group_area._y + scrollable_area_mc._y*cr - this._y*cr;
cv = (new_y - tn_group._y) * scrolling_speed;
tn_group._y += cv;
if( onDrag == false && cv_old == cv )
delete this.onEnterFrame;
cv_old = cv;
}
}
scroller_mc.onRelease = scroller_mc.onReleaseOutside = function()
{
this.stopDrag();
onDrag = false;
}
}
|
| |
| 24.08.2009, 00:28 | Re7 | Beiträge: 36 Registriert: Aug 2009
| was genau funktioniert denn nicht? gibt er dir eine fehlermeldung? oder lässt er sich nicht scrollen? | |
| 24.08.2009, 01:06 | Re8 | Beiträge: 5 Registriert: Aug 2009
Themenautor/in
| Der scroll an sich funktioniert jedoch versuche ich die funktion einzubauen um es ebenfalls mit mausrad zu bedienen.
Es kommt keine fehlermeldung es scrollt einfach nicht mit dem mausrad mit dem balken per hand geht es trotzdem | |
| | Themen Ähnliche Beiträge zum Thema | 20.07.2010 - Pooolie 06.04.2010 - manuel.kleinert 07.07.2009 - flop 15.12.2009 - Kerstin77 |
|
Flashhilfe.de Flash Platform Tipps & Tutorials Flash Platform Andere Programmiersprachen Jobangebote Diskussionen
Flashhilfe News 
Regeln & Bedingungen
|