• beyond tellerrand – play. Register Now!
Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash 8

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 05-05-2007, 15:38   #1 (permalink)
Allrounder
 
Benutzerbild von photograFX
 
Registriert seit: Sep 2006
Ort: Wien
Beiträge: 15
Question Animierter Button mit AS ...

Hallo Liebe Flasher ...

habe ein (kleines?) Problem das mich zum Wahnsinn treibt ...
Benutze einen Movieclip als Button ... weil ich gerne "weiche" - sprich animierte RollOver & Out states für den Button haben möchte ...

Sprich ein movieclip mit simplen ActionScript drauf ...

Aber irgendwie spinnt das teil ...
wenn mann die Komplette Animation abwartet .. ist alles soweit ok ..
aber wenn ich während der RollOver Animation den Button mit der Maus verlasse - funzt es nahher nicht mehr ... obwohl lt. trace .. die frames stimmen stollten ...

Habe ich wirklich was falsch gemacht ??
Ist es ein Bug mit den Animierten Filtern von Flash ??
(ist ne reine Vektordatei - mit filtereffekten von flash)

Im Anhang findet Ihr eine Fla datei ...
oder ihr schaut es euch auf meiner Website (vorsicht beta) an ...

Danke fürs Behirnen im Voraus !

lg
ALexx


-----------------------------
on (rollOver) {
trace zur Kontrolle
trace (this._currentframe);
this.gotoAndPlay ("in");

}
on (rollOut) {
trace (this._currentframe);
this.gotoAndPlay ("out");

}
------------------------------
Angehängte Dateien
Dateityp: zip pfx_AniButton.zip (9,9 KB, 7x aufgerufen)

Geändert von photograFX (05-05-2007 um 17:28 Uhr)
photograFX ist offline   Mit Zitat antworten
Alt 05-05-2007, 16:06   #2 (permalink)
no guts no glory
 
Benutzerbild von readme.txt
 
Registriert seit: May 2004
Ort: Nordhorn
Beiträge: 7.998
Ich kann dir nicht genau sagen warum deine Variante nicht geht, aber generell solltest du keine ClipEvents benutzen ... ich häng dir mal eine Variante an wie ich es machen würde:
Angehängte Dateien
Dateityp: zip pfx_AniButton.zip (13,2 KB, 38x aufgerufen)
__________________
Bitte keine Privaten Nachrichten mit Fragen, dazu ist das Forum selbst da. Danke.

'We live in an amazing, amazing world, and it's wasted on the crappiest generation of spoiled idiots.'
readme.txt ist offline   Mit Zitat antworten
Alt 05-05-2007, 17:22   #3 (permalink)
Allrounder
 
Benutzerbild von photograFX
 
Registriert seit: Sep 2006
Ort: Wien
Beiträge: 15
Au Mann :)

Das tut immer wieder weh wenn ein sich jemand wirklich gut auskennt ! -
muss zugeben das logik net meine stärke ist

Du rettest mir jedenfalls den (nachmit)tag ... merci beaucoup ...

jetzt muss ich nur mal behirnen wie du das gemacht hast ...
du spielst den Clip in beide richtungen ab ??

Kannst du dein script vielleicht ein bisschen verständlicher für mein verblüfftes ich machen ?
d.h. ca. beschreiben was du da machst ?

mfg
AlexxJ

Geändert von photograFX (05-05-2007 um 17:32 Uhr)
photograFX ist offline   Mit Zitat antworten
Alt 07-05-2007, 10:01   #4 (permalink)
no guts no glory
 
Benutzerbild von readme.txt
 
Registriert seit: May 2004
Ort: Nordhorn
Beiträge: 7.998
So irrsinnig viel gibts da nicht zu erklären ... generell bietet sich diese Methode an wenn man eine RollOut-Optik hat die dem RollOver enstpricht, halt nur rückwärts.

PHP-Code:
// -> Wenn die Maus über dem Button ist:
logo_mc.onRollOver = function():Void {
  
// -> Wenn ein oEF auf dem MC liegt (siehe unten) den oEF löschen.
  
delete this.onEnterFrame;
  
  
// -> Spiele ab deinem aktuellen Frame+1 ab. Stell dir vor du löst den
  // RollOver aus, die Animation spielt bis Frame 10 und du gehst wieder runter
  // und sofort wieder drauf. Wenn da jetzt stehen würde 
  // "this.gotoAnsPlay(1)" hättest du einen Sprung in der Animation, so bleibt 
  // alles flüssig.
  
this.gotoAndPlay(this._currentframe+1);
}

// -> Wenn die Maus den Button verlässt:
logo_mc.onRollOut = function():Void {
  
// -> Eine genaue Erklärung des oEF gibts in der Flashhilfe, hier nur so viel:
  // solange bis ein oEF gelöscht wird wird alles in seinem Inneren analog zur 
  // Bildrate ausgeführt, bei 24 BpS wird also alles im oEF 24 mal in der
  // Sekunde ausgeführt. 
  
this.onEnterFrame = function():Void {
    
// -> Das ist eine verkürzte Schreibweise für eine if-Abfrage. Heisst nur:
    // "Wenn der aktuelle Frame des MCs nicht 1 ist, gehe einen Frame zurück
    // sonst lösche den oEF."
    
this._currentframe != this.prevFrame() : delete this.onEnterFrame;
  }

[PS:] Stell die Bildrate des Films mal auf ~31 BpS ... dann werden die Animationen flüssiger.
__________________
Bitte keine Privaten Nachrichten mit Fragen, dazu ist das Forum selbst da. Danke.

'We live in an amazing, amazing world, and it's wasted on the crappiest generation of spoiled idiots.'
readme.txt 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 22:22 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele