Flashbutton + Aftereffects

Dustin84

Erfahrenes Mitglied
Hallo,

ich baue mir grad einen einen Flashbutton zusammen, allerdings weiss ich nicht genau wie ich anfangen soll.

Also ich mache einen Button, der eigentlich genau die gleichen Funktionen hat, wie dieser auf http://www.spinkings.com/index2.html

Kleine Erklärung zum Button:

Also es gibt eine MouseOver Funktion, wo einfach ein weisses Feld eingeblendet wird (genau wie bei spinkings)

Beim "OnClick" Ereigniss, wird wie bei Spinkings kurz eine orangene Fläche eingeblendet.

Und wenn der Button Aktiv ist, soll meine Animation (in After Effects erstellt) dauerhaft abgespielt werden.

Ich würde jetzt folgendes machen:
Button in einen MC konvertieren und im 1 Frame den normalzustand darstellen und in den Frames 2-4 die Animation MCs (MouseOver,OnClick und wenn der Button aktiv ist)
Dann eine neue Ebene erstellen und dort das Actionscript rein, sowas wie

On MouseOver {
gotoandPlay (2) ;
OnClick
gotoandplay (3) ;
OnAktivbutton
gotoandplay (4);
}

Ist das von der Grundidee alles richtig ? Wenn ja, kann mir evtl. jemand das richtige AS posten ?


Gruß
Dustin
 
Hi,

Deine Idee ist insofern korrekt, als dass es sich um eine mögliche Herangehensweise handelt. Je nach Art der Animationen kämen auch reine AS-Lösungen (ohne Zeitleiste) infrage.

Prinzipiell solltest Du die Bilder erst ab Frame 2 beginnen lassen (mit dem "Normalzustand" in Frame 2), und das Script in Frame 1 notieren. So umgehst Du Probleme durch mehrmaliges Ansteuern des ersten Frames (Funktionen und Variablen werden nochmals definiert usw.).

Möglicher Code:
Code:
this.useHandCursor = false;

var isactive = false;

this.onRollOver = function() {
    gotoAndPlay("over_ani");
}

this.onRollOut = this.onReleaseOutside = function() {
    if (!isactive) gotoAndPlay("out_ani");
}

this.onRelease = function() {
    isactive = true;
    gotoAndPlay("active_ani");
}

function deActivate() { // aufrufen, wenn ein anderer Button geklickt wird!
    isactive = false;
    gotoAndPlay("out_ani");
}

gotoAndStop(2);
Der exakte Code hängt von der genauen Umsetzung und der Interaktion der Buttons untereinander ab. Möglich ist auch eine Umsetzung, bei der die momentan abgespielte Animation bei einem Mausereignis zuerst komplett abgespielt wird, bevor zum nächsten Status gewechselt wird, wobei hierfür u.U. fortgeschrittenere Kentnisse erforderlich sind.

Gruß
.
 
Hm, also so ganz klappt es nicht. Ich teste hier nurn schon 1 std. rum aber irgendwie will es nicht funktionieren.

In deinem As fehlt glaube ich das "OnClick" Ereigniss.

Ich poste am besten mal die fla.

http://rapidshare.com/files/17419302/ddd.rar.html
Sorry, hab zur Zeit keinen anderen Websapce.

Kannst du dir das mal angucken ? Der Button ist oben links in dem Navigationsbalken. (unsichtbar)
 
Hi,

Code:
this.onRollOver = function() {
    gotoAndStop(3);
}

this.onRelease = function() {
    isactive = true;
     gotoAndStop(4);
}
  1. Wenn Du nur zu einem Frame springen und dort anhalten willst, musst Du gotoAndStop verwenden - sonst läuft der Film (ungeachtet eines "stop" im Zielframe) direkt weiter.

  2. Nummern werden ohne Anführungsstriche notiert. Nur wenn Du Bildbezeichner vergibst, müssen Anführungszeichen verwendet werden.

Gruß
.
 
Ok, klappt alles soweit.

jetzt bin ich gerade beim rollOver
PHP:
this.onRollOver = function() {
    gotoAndStop(2);
}

Das Problem ist, dass sich der MouseOver MC ständig wiederholt, obwohl ich am ende des MCs ein stop() habe. In dem MouseOver MC habe ich eine Maske verwendet und wenn ich diese abschalte, so wird der MC nicht wiederholt.

Was hat die Maske damit also zu tun ? verstehe ich nicht ganz.

Und noch ein weiteres kleines Problem:
Wenn der Button Aktiv ist und ich mit der Maus über den Button gehe, so wird wieder die RollOver animation abgespielt und der Aktiv MC wird unterbrochen. Das ist so ja nicht ganz richtig. Wenn der Button aktiv ist, sollte es auch bleiben, bis man einen anderen Link anklickt. Gibt es dafür auch eine Lösung ?
 
Zuletzt bearbeitet:
Hi,

1. Damit ich verstehe, was Du meinst, müsste ich Deine Quelldatei (fla) sehen. Dein Problem kann 1000 + 1 Ursache haben.

2. Du musst die RollOver-Animation auch vom Zustand der Variable "isactive" abhängig machen. Dein Satz
und der Aktiv MC wird unterbrochen.
macht mich allerdings nachdenklich, klingt er doch, als ob Du alle Buttons auf einer gemeinsamen Zeitleiste untergebracht hast. Ein Grund mehr, Deine Datei zu posten. Poste bitte nicht Deine komplette Seite (die als Anhang ohnehin zu groß ist), sondern erstelle einen "Dummy", der nur die nötigen Daten (Buttons) enthält.

Gruß
.
 
Hi,

1. Sobald Du per gotoAndStop in den zweiten Frame springst, in der sich der MC "mouseOver_mc" befindet, wird sofort wieder ein rollOut ausgelöst, da sich im ersten Frame von mouseOver_mc nichts befindet (bzw. nicht dort, wo der Mauspfeil sitzt). Daher springt Dein Button sofort zu Frame 3 (rollOut-Aktion), wo sich allerdings wieder etwas befindet (1. Frame des MC mouseOut_mc enthält eine Fläche) - was wiederum zum Auslösen eines rollOver-Ereignisses führt usw.

Lösung: Achte darauf, dass sich die ganze Zeit eine Fläche in der Größe des Buttons unter dem Mauspfeil befindet. Am einfachsten erreichst Du das, indem Du das Schlüsselbild in der untersten Ebene (bg) bis Frame 5 verlängerst.

2. Wie ich in einem vorherigen Posting geschrieben habe, solltest Du entweder alles einen Frame nach hinten setzen und nur den Code in Frame 1 stehen haben (da ein erneutes Springen in Frame 1 z.B. die Variable "isactive" wieder auf false setzt), oder den Code entsprechend modifizieren:
Code:
this.useHandCursor = false;

if (isactive == undefined) isactive = false;

this.onRollOver = function() {
    gotoAndStop(2);
}

this.onRollOut = this.onReleaseOutside = function() {
    if (!isactive) gotoAndStop(3);
}

this.onRelease = function() {
    isactive = true;
    gotoAndStop(4);
}

function deActivate() {
    isactive = false;
    gotoAndStop(5);
}

stop();

Gruß
.
 
Nach dem MouseOver ist der Button leer.
Meine Lösung wäre jetzt, dass nach dem Abspielen des MouseOut MCs in den 1 Frame des MCs "Navigation_Newsblog" zu springen ( Das wäre nämlich der Normalzustand des Buttons)

PHP:
this.onRollOut = this.onReleaseOutside = function() {
    if (!isactive) gotoAndStop(3);

jetzt müsste man das As noch so umbauen, dass er erst in Frame 3 springt und dann in Frame 1, um den normalzustand herzustellen.

Nur wie ?
 
Hallo,

ich hab mich nun mal versucht, in die Problematik einzulesen. Hoffe, habe alles richtig verstanden.
Könntest du nicht auf Frame 3 eine weitere Anweisung platzieren, nämlich ein gotoAndStop(1) bzw. gotoAndStop(2), wenn man wie Tobi oben erklärt hat, das erste Frame für die Initiierung des MovieClips verwendet?

gruss
 

Neue Beiträge

Zurück