Flashhilfe.de - Flash Community

Wabber-Effekt auf Buttons getrennt anwenden [Flash 10]

 


AntwortenRegistrieren Seite1  

grek#1
Benutzerbild von grek
Beiträge: 3
Registriert: Mar 2011

24.03.2011, 10:56

Hallo,

ich bin ziemlicher Flash-Anfänger und muss deshalb hier mal um Hilfe bitten:

Wie bekomme ich es hin, dass der Wabber-Effekt getrennt auf die zwei (oder mehr) Buttons angewendet wird? Die Buttons sind für eine Navileiste gedacht - ein Button soll also bei RollOver wabbern und bei RollOut damit aufhören und in die Ursprungsposition zurückkehren.

Das Skript das ich bisher habe:

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
40
41
MovieClip.prototype.xyWabber = function(x_end, y_end, multiplikator, ratio) {   
        // Initialisierung
      if (this.sX == undefined) this.sX = 0;
        if (this.sY == undefined) this.sY = 0;
        
        // Ereignis
      this.onEnterFrame = function() {         
           // Berechnung
         this.sX = this.sX*multiplikator+(x_end-this._xscale)*ratio;
           this.sY = this.sY*multiplikator+(y_end-this._yscale)*ratio;
           
           // Umsetzung auf die jeweils betroffene MovieClip-Instanz
         this._xscale += this.sX;
           this._yscale += this.sY;
           
           // Löschen
         if (Math.round(this._xscale) == x_end) {            
              delete this.sX;
              delete this.sY;
              delete this.onEnterFrame;            
           }
        }
};

stop ();

mc.onRollOver = function () {
     xyWabber(120,120,0.7,0.7);
}

mc.onRollOut = function () {
     xyWabber(100, 100, 0.7, 0.7);
}

mc2.onRollOver = function () {
     xyWabber(110,110,0.7,0.7);
}

mc2.onRollOut = function () {
     xyWabber(100, 100, 0.7, 0.7);
}



Ich dachte, dass ich die MCs durch die entsprechenden Befehle auch getrennt ansteuern kann, aber irgendwie klappt das in der Praxis nicht so ganz.

Wäre toll wenn mir dabei jemand helfen könnte :)

Danke

Angehängte Dateien:
Adobe Flash Quelldatei wabber_button.fla11.71 KB
springer#2
Benutzerbild von springer
Beiträge: 4909
Wohnort: zuhaus
Registriert: Apr 2004

24.03.2011, 11:51

hi,
ein "this" schafft abhilfe:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
mc.onRollOver = function () {
       this.xyWabber(120,120,0.7,0.7);
}

mc.onRollOut = function () {
       this.xyWabber(100, 100, 0.7, 0.7);
}

mc2.onRollOver = function () {
       this.xyWabber(110,110,0.7,0.7);
}

mc2.onRollOut = function () {
       this.xyWabber(100, 100, 0.7, 0.7);
}
lieber chips essen und danach voller zweifel sein, als voller zweifel chips essen...
grek#3
Benutzerbild von grek
Beiträge: 3
Registriert: Mar 2011

Themenautor/in

24.03.2011, 15:50

Danke, damit klappt das jetzt schon mal mit dem getrennt ansteuern.
Allerdings verschiebt sich bei mir durch das "this" alles und ich weiß nicht warum das der Fall ist?

Ich habe mal ein kurzes Video gemacht das zeigt, was bei mir passiert. Wäre toll wenn mir da auch noch jemand weiterhelfen könnte. Downloadlink:

http://netload.in/dateiaoEjUDmFr6/flashhilfe_wabber_button_controller.swf.htm

War leider zu groß um es hier hochzuladen, ist aber trotzdem keine große Datei und sollte in wenigen Augenblicken geladen sein.

Ich möchte noch mal erwähnen, dass ich bis jetzt leider ehr kaum bis keine Ahnung von Flash habe.
Das heißt, der erste Teil des Scripts stammt nicht von mir, sondern ich habe ihn im Internet gefunden.
Dementsprechend verstehe ich auch nicht so wirklich was da genau drin steht. Vielleicht hängt es damit (mit dem oberen Teil) zusammen, dass sich die Buttons so seltsam verziehen...
vindel#4
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

26.03.2011, 10:23

Hallo,

ganz Einfach: du hast manuell deine MC's auf der Bühne verkleinert, damit beide gleich groß sind. mit dem verkleinerten Wert wird dann auch die Animation berechnet. Also beim rechten ist nciht die Ausgangsskalieren 100*100, sondern 75*131, somit verhalten sich die MC's "komisch".Entweder du Skalierst die MC's wieder auf 100% und änderst dann in dem MC die Größe von dem Farbrechteckt oder du musst halt von den Ist-Werten die Saklierung berechnen...
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
grek#5
Benutzerbild von grek
Beiträge: 3
Registriert: Mar 2011

Themenautor/in

26.03.2011, 15:33

vielen vielen dank :)
jetzt funktioniert alles so wie ich es mir vorgestellt hab

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2020 Sebastian Wichmann - Flashhilfe.de