Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 30-01-2006, 20:26   #1 (permalink)
...
 
Benutzerbild von one2tim
 
Registriert seit: Jan 2005
Ort: Köln
Beiträge: 187
skalierung mit mausrad abbremsen

hihi..hab jetzt auch flash 8!

hab mich mal am skalieren mim mausrad versucht. ich schaff es nur nicht, das skalieren abzubremsen. wenn mich mal jemand in die richtige richtung...

PHP-Code:
this.onEnterFrame = function() {
    
Mouse.addListener(this);
    
this.onMouseWheel = function(delta) {
        if (
delta>0) {
            
mc._xscale mc._yscale += 10;
        }
        if (
delta<0) {
            
mc._xscale mc._yscale -= 10;
        }
    };
}; 
//hab wirklich schon viel versucht und nichts hat funktioniert. das script ist jetzt im "urzustand" weil ich mittlerweile wahrscheinlich zu lange am rechner sitze (nicht deswegen aber u.a. ) und nicht mehr durchblicke, welcher versuch am ehesten dran war...
one2tim ist offline   Mit Zitat antworten
Alt 30-01-2006, 21:00   #2 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Ort: Berlin
Beiträge: 283
Warum ist das ganze in einem onEnterFrame? Die Funktion onMouseWheel wird doch jedes mal aufgerufen wenn das Mausrad betätigt wird...
__________________
ein mensch ohne macke ist kacke...
DaKinel ist offline   Mit Zitat antworten
Alt 30-01-2006, 21:04   #3 (permalink)
...
 
Benutzerbild von one2tim
 
Registriert seit: Jan 2005
Ort: Köln
Beiträge: 187
stimmt. aber das ändert nichts an meinem problem.
one2tim ist offline   Mit Zitat antworten
Alt 30-01-2006, 21:07   #4 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Ort: Berlin
Beiträge: 283
Was genau meist du denn mit "abbremsen"?
__________________
ein mensch ohne macke ist kacke...
DaKinel ist offline   Mit Zitat antworten
Alt 30-01-2006, 21:22   #5 (permalink)
...
 
Benutzerbild von one2tim
 
Registriert seit: Jan 2005
Ort: Köln
Beiträge: 187
hm...habs vielleicht bisschen unklar ausgedrückt. mit dem script da oben scrollst du den mc größer und kleiner. aber wenn du aufhörst am (scroll) rad zu drehen, endet die skalierung halt abruppt (schreibt man das so??). und ich will das halt bisschen abbremsen. dass die bewegung weich endet...scrollen soll aber positiv wie negativ (theoretisch) unendlich möglich sein.

edit: so...hier. das war mein bester ansatz:

jetzt ist es so, dass wenn man das rad nach vorne dreht, der mc um 150 skaliert wird - wenn man das rad nochmal nach vorne dreht tut sich nix mehr. (soll aber jedes mal um 150 mehr/weniger skaliert werden)

PHP-Code:
Mouse.addListener(this);
this.onMouseWheel = function(delta) {
    
_root.mc.onEnterFrame = function() {
        if (
delta>0) {
            
this._xscale this._xscale+(150-this._xscale)/6;
            
this._yscale this._yscale+(150-this._yscale)/6;
        }
        if (
delta<0) {
            
this._xscale this._xscale+(100-this._xscale)/6;
            
this._yscale this._yscale+(100-this._yscale)/6;
        }
    };
    
delete this.onEnterFrame();
}; 

Geändert von one2tim (30-01-2006 um 22:39 Uhr)
one2tim ist offline   Mit Zitat antworten
Alt 30-01-2006, 23:03   #6 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Ort: Berlin
Beiträge: 283
Das schreibt man "abrupt" .

Du willst sozusagen smooth skalieren. Du könntest bei jeder Skrollrad-Aktion einen Intervall starten oder ein onEnterFrame erzeugen, das dir den Skaliervorgang bremst.

Mal ein Beispiel:

PHP-Code:
interval    undefined;
lstnr        = new Object();

lstnr.onMouseWheel = function(delta) {
 if(
_root.interval == undefined) {
  
_root.interval setInterval(skale83.33delta40_root.mc._xscale);
 }
 function 
skale(deltavalorig) {
  if (
delta>0) { 
   
_root.mc._xscale _root.mc._yscale += Math.ceil(((orig val) - _root.mc._xscale) / 5); 
  } 
  if (
delta<0) { 
   
_root.mc._xscale _root.mc._yscale += Math.floor(((orig val) - _root.mc._xscale) / 5);
  } 
trace("end:"+(orig-val)+" actual"+_root.mc._xscale);
  if((
_root.mc._xscale==orig val && delta>0) || (_root.mc._xscale==orig val && delta<0)) {
   
clearInterval(_root.interval);  
   
_root.interval undefined;
  }
 }
}

Mouse.addListener(lstnr); 
__________________
ein mensch ohne macke ist kacke...
DaKinel ist offline   Mit Zitat antworten
Alt 30-01-2006, 23:06   #7 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Ort: Berlin
Beiträge: 283
Hier mal noch als Datei.
Angehängte Dateien
Dateityp: rar scale.rar (4,0 KB, 12x aufgerufen)
__________________
ein mensch ohne macke ist kacke...
DaKinel ist offline   Mit Zitat antworten
Alt 30-01-2006, 23:21   #8 (permalink)
...
 
Benutzerbild von one2tim
 
Registriert seit: Jan 2005
Ort: Köln
Beiträge: 187
..wieder bisschen rechtsschreibung aufgefrischt + hilfe bekommen. vielen dank!

ich hab bisher noch nichts mit intervallen gemacht, aber ich denke ich versteh deine idee. (die funktioniert ja auch)
ein nachteil bei den intervallen wäre, dass man immer warten muss bis der intervall durch ist und dann erst weiter scrollen kann...?!

edit: danke für die datei - zu spät gesehen.

Geändert von one2tim (30-01-2006 um 23:23 Uhr)
one2tim ist offline   Mit Zitat antworten
Alt 31-01-2006, 00:17   #9 (permalink)
...
 
Benutzerbild von one2tim
 
Registriert seit: Jan 2005
Ort: Köln
Beiträge: 187
@DaKinel: erstmal danke für dein script! ist ne lösung die ich auch komplett nachvollziehen kann und schick isse auch noch. versteh das nicht falsch, wenn ich trotzdem nochmal weiterfrage.

ganz am anfang hatte ich mir gedacht die skalierungs-geschwindigkeit abhängig von delta zu machen. dass der mc schnell ein- oder ausskaliert wird wenn man sehr am rad dreht und langsam wenn man das rad nur bisschen bewegt.das script gaanz oben macht das ja auch...halt nur ohne abbremsen.

hättest du/jemand anderer evtl. noch ne idee, wie man das so lösen könnte (also geschwindigkeit abhängig von delta...+bremsen)?
so nen einen ansatz oder nen link oder sowas...

gott..ich nerve aber auch gerade! sry

Geändert von one2tim (31-01-2006 um 00:20 Uhr)
one2tim ist offline   Mit Zitat antworten
Alt 31-01-2006, 09:40   #10 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Ort: Berlin
Beiträge: 283
Also das Delta bleibt immer gleich, je nachdem was man für seine Maus eingestellt hat. Du könntest noch eine kleine Verzögerung in den Interval einbauen der das abgebremste Skalieren kurz verzögert.
Hab hier noch eine kleine Veränderung gemacht, damit man nicht warten muss bis der Skaliervorgang beendet ist. Für mehr hab ich grad leider keine Zeit....
Angehängte Dateien
Dateityp: rar scale.rar (4,8 KB, 16x aufgerufen)
__________________
ein mensch ohne macke ist kacke...
DaKinel ist offline   Mit Zitat antworten
Alt 31-01-2006, 10:20   #11 (permalink)
...
 
Benutzerbild von one2tim
 
Registriert seit: Jan 2005
Ort: Köln
Beiträge: 187
cool danke für deine mühe!
one2tim ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 05:38 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele