Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 31-01-2005, 21:00   #1 (permalink)
_boarder
Gast
 
Beiträge: n/a
Smile MC RollOver/RollOut Problem

Hallo ihr Flasher

Ich knorze hier schon den halben Tag mit einem MC, der als Button dient, rum.

Ich möchte bei diesem MC erreichen:
Wenn ich mit der Maus über den MC fahre, soll er sich bis zu einer bestimmten Grösse vergrössern.
Wenn ich die Maus vom MC wegnehme, wärend dieser noch nicht die grösste Grösse erreicht hat, soll er sich wieder zur Anfangsgrösse verkleinern.
Wenn die grösste Grösse erreicht ist, und ich mit der Maus immer noch auf dem Button bin, soll er so bleiben.
Wenn die grösste Grösse erreicht ist, und ich die Maus vom MC wegbewege, soll dieser sich wieder zur Anfangsgrösse verkleinern.
Wenn ich mit der Maus wieder über den MC fahre, wärend dieser sich grade wieder verkleinert, soll er sich von der aktuellen Grösse zur grössten Grösse wieder vergrössern.

............war das verständlich ??

und ich weiss einfach nicht wie ich das machen soll ohne irgendwie 10 functionen mit lauter if Anweisungen zu schreiben

Hat jemand eine Idee , wie man das am einfachsten lösen könnte ?

Geändert von _boarder (31-01-2005 um 21:03 Uhr)
  Mit Zitat antworten
Alt 31-01-2005, 21:08   #2 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Willkommen im Forum.
Schau mal unten in meiner Singnatur nach.
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::
psyk ist offline   Mit Zitat antworten
Alt 31-01-2005, 21:43   #3 (permalink)
_boarder
Gast
 
Beiträge: n/a
danke für die schnelle Antwort und fürs "welcome"

habs mal nach deiner Anleitung probiert :

ActionScript:
  1. mc.onRollOver = function(){
  2.         this.onEnterFrame = function(){
  3.                 if(mc._yscale == 200){
  4.                     delete this.onEnterFrame;
  5.                 }else{
  6.                     mc._yscale += 5;
  7.                 }
  8.             }
  9. }
  10.  
  11. mc.onRollOut = function(){
  12.                 this.onEnterFrame = function(){
  13.                     if(mc._yscale == 100){
  14.                         delete this.onEnterFrame;
  15.                     }else{
  16.                         mc._yscale -= 5;
  17.                     }
  18.                 }
  19. }
  20.  
  21. mc.onPress = function(){
  22.                 trace("Hallo");
  23. }

das funktioniert, aber was, wenn ich jetzt 10 solche Buttons habe ?
muss ich dann jedem diese 3 Prozeduren angeben ?
oder gibts da noch andere Möglichkeiten ?
  Mit Zitat antworten
Alt 01-02-2005, 00:05   #4 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Nummeriere dein Button-MC's durch z.B. "button1_mc" und arbeite mit einer for Schleife.
ActionScript:
  1. for(var i=1;i<=10;i++){
  2.     // : i steht fuer die jeweilige Nummer
  3.     this["button"+i+"_mc"].onRollOver = function(){
  4.         this.onEnterFrame = function(){
  5.             this._yscale += 5;
  6.             if(this._yscale >= 200){   
  7.                 this._yscale = 200;
  8.                 delete this.onEnterFrame;
  9.             }
  10.         }
  11.     }
  12.     this["button"+i+"_mc"].onRollOut = function(){
  13.         this.onEnterFrame = function(){
  14.             this._yscale -= 5;
  15.             if(this._yscale <= 100){
  16.                 this._yscale = 100;
  17.                 delete this.onEnterFrame;
  18.             }
  19.         }
  20.     }
  21.     this["button"+i+"_mc"].onPress = function(){
  22.         trace("Hallo");
  23.     }
  24. }

Zitat:
oder gibts da noch andere Möglichkeiten ?
Meine Variante ist per Tween und AS, deine ist nur per AS, im endeffekt kommt beide aber auf's gleiche raus.
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::

Geändert von psyk (01-02-2005 um 00:07 Uhr)
psyk ist offline   Mit Zitat antworten
Alt 01-02-2005, 05:46   #5 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
ActionScript:
  1. MovieClip.prototype.YSCALER/*=Funktionsname*/ = function(){
  2.  
  3. this.onRollOver = function(){
  4.         this.onEnterFrame = function(){
  5.                 if(this._yscale == 200){
  6.                     delete this.onEnterFrame;
  7.                 }else{
  8.                     this._yscale += 5;
  9.                 }
  10.             }
  11. }
  12.  
  13. this.onRollOut = function(){
  14.                 this.onEnterFrame = function(){
  15.                     if(this._yscale == 100){
  16.                         delete this.onEnterFrame;
  17.                     }else{
  18.                         this._yscale -= 5;
  19.                     }
  20.                 }
  21. }
  22.  
  23. this.onPress = function(){
  24.                 trace("Hallo");
  25. }
  26.  
  27. deinButtonName.YSCALER();//aufruf der funktion
  28.  

kannst dann beliebig oft auf deinen buttons anwenden, auch wenn die buttons andre instanznamen haben;
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary

Geändert von andretti (01-02-2005 um 05:51 Uhr)
andretti ist offline   Mit Zitat antworten
Alt 01-02-2005, 16:35   #6 (permalink)
_boarder
Gast
 
Beiträge: n/a
vielen Dank, hat geklappt.........

habs jetzt so gelöst wie psyk vorgeschlagen hat, da ich bei der Version von andretti am schluss trotzdem jedem Button wieder diese Funktion zuornden müsste.

ActionScript:
  1. button1_mc.YSCALER();
  2. button2_mc.YSCALER();
  3. button3_mc.YSCALER();
  4. button4_mc.YSCALER();
  5. usw.........

oder ich könnte eine Schleife machen......... mal schaun.
hab aber auf jeden Fall wieder was gelernt

Gruss

boarder
  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 22:20 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele