Text dynamisch "überschreiben"

M

majinz

Hallo,

Ich habe folgendes Problem zu lösen und frage mich ob hier wohl wer einen Ansatz zur Lösung hat:

Ich habe einen Schriftzug in großen Buchstaben, das Logo praktisch. Darunter befindet sich der Slogan der Firma. Jeder Buchstabe steht für einen Menupunkt. Wenn ich jetzt über einen Buchstaben, zB R fahre, soll der Slogan überschrieben werden und weitere Submenupunkte sollen an der selben Stelle wie der Slogan erscheinen.
Mein Problem bei der Sache ist eben, das der Text unterschiedlich formatiert ist. Bei der Subnavigation ist der Name des Hauptmenupunktes fett formatiert (beim Buchstaben R zB Referenzen). Daneben stehen die Subnavigationspunkte, was wiederrum Button sein sollen, da bei jedem ja eine andere Aktion durchgeführt werden soll.

Mein erster Lösungsansatz war:
Für jeden Buchstaben gibt es einen eigenen Movieclip mit einer Maske der den Überschreib-Effekt übernimmt.
Wenn man nun mit der Maus über einen Buchstaben fährt, wird zu der Frame mit dem entsprechenden MovieClip gesprungen. Da ich 8 Buchstaben habe sind es 8 MovieClips (bzw. 16 da wenn man mit der Maus von einem Buchstaben runterfährt, man ja wieder den ursprünglichen Slogan sehen soll)

Mein zweiter Lösungsansatz war:
Ich habe nicht für jeden Buchstaben einen MovieClip sondern für jeden Text der in der Subzeile stehen soll. Sind insgesamt 9 MovieClips (8 für die Buchstabennavigation und 1 für den Slogan). Jeder MovieClip ist so aufgebaut, das im ersten Teil die Maskenanimation für die Zurückschreibanimation (also die Maske wird über einen Tween kleiner, am Ende ist der Text ganz verschwunden) und im zweiten Teil der Hineinschreibeffekt (sprich die Maske wird größer, am Ende sieht man den gesamten Text)
Die Animation ist dabei so aufgebaut, das die Maske über die gesamte Breite des Logos geht.
Wenn ich über einen Buchstaben fahre, springe ich an die entsprechende Stelle im Movieclip hin und fange dort zum Abspielen an.
Die gesamte Maskenanimation ist 60 (30 zum Aus- und 30 zum Einblenden)Frames lang. Bei dem längsten Subtext fange ich bei Frame 45 zum einblenden und Frame 15 zum ausblenden an. Bei dem kürzesten Subtext bei Frame 50 zum einblenden und Frame 20 zum ausblenden.

Auch wenn es kompliziet ist (und noch 100 mal komplizierter von mir jetzt beschrieben worden ist) funktioniert ist.
Nur ich habe ein kleines (oder großes?) Problem damit.
Was ist wenn man vom ersten Buchstaben direkt zum zweiten Buchstaben fährt. Dann macht er nämlich folgendes: Er schreibt den Text vom ersten Buchstaben weg und ersetzt ihn mit dem Slogan, allerdings fangt er nur ganz kurz später an, den Text vom zweiten Buchstaben zu schreiben, dabei schreibt er den Slogan allerdings wieder weg. Je nach dem wie schnell man über die Buchstaben fährt, ist das mehr oder weniger konfus und sieht nicht gut aus.

So, und jetzt komme ich zu meiner Frage: Wie kann ich es machen, dass wenn ich vom ersten auf den zweiten Buchstaben fahre, nicht der Slogan ein- und ausgeblendet wird. Sondern einfach die Schrift vom ersten Buchstaben mit dem vom zweiten überschrieben wird. Wie bereits oben erwähnt, müssen manche Subtexte Buttons enthalten.
Ich denke mal, das ich komplett anders an die Sache herangehen muss, hab allerdings gar keinen Plan wie ich das bewerkstelligen muss. Brauche jetzt nicht unbedingt den entsprechende Code, nur ein paar Hinweise wie ich an die Sache herangehen könnte wären super.

Schon im vorhinein Danke.

Edit: kleinen Fehler entdeckt (fett markiert)
Edit 2: Ich nutze Flash MX 2004, es wäre aber gut wenn es auch in älteren Versionen funktioniert.
 
Zuletzt bearbeitet von einem Moderator:
Hi,

ich muss zugeben, ich habe vor allem Deinen zweiten Ansatz nicht verstanden (jedenfalls nicht, wenn ich mir ein korrektes Bild von Deinem Grundsetup gemacht habe). Kann man das Problem irgendwo betrachten?

Generell würde ich wohl für jeden Buchstaben einen eigenen MovieClip verwenden und auch nicht alles mit Zeitleistenanimationen regeln, sondern (und so wie sich das Problem anhört, ist scheint das völlig auszureichen) die nötigen Animationen mit ActionScript erstellen.

Kannst Du die Datei vielleicht einmal posten?

Gruß
.
 
Wenn ich jetzt bei deinem Vorschlag einhacken darf:
Für jeden Buchstaben ein MovieClip, meinst du mit jedem Buchstaben im Alphabet, oder so für jeden Buchstaben?
Bei erstem kann ich mir überhaupt nicht vorstellen wie das funktioniert. Die Buchstaben automatisch platzieren?
Und bei zweiterer Methode: Da manche Sätze locker 50 Buchstaben haben und es insgesamt 8 Sätze sind... Währe es wohl auch ein Riesenaufwand.

Was mich aber interessieren würde ist, wie könnte ich auch die Zeitleistengeschichten Verzeichten und das ganze mit AS machen?
Ich habe dazu einen Versuch gestartet. Und zwar mit setInterval, oder gibt es dazu eine bessere Alternative?

Florian

Edit: Die Datei kann ich aus rechtlichen Gründen nicht posten, nur den Action Script Code könnt ich posten wenn der auch weiterhilft.
 
Die Datei kann ich aus rechtlichen Gründen nicht posten
Mir würde schon eine Skizze reichen, wie Du Dir das vorstellst.

Bis jetzt habe ich das so verstanden:

- Oben ein Titel, in dem jeder Buchstabe einen Button darstellt, der sich beim Hovern verändert.

- Unten diverse verschiedene Texte.

... scheint aber doch etwas komplexer zu sein? Generell kannst Du mit AS recht viel animieren und gestalten. Neben setInterval ist hier auch "onEnterFrame" Dein Freund.

Gruß
.
 
Hallo

Ich hab dir für den Aufbau des Slogan Movie Clips eine .fla Datei hochgeladen. Klick dich einfach in den Slogan MovieClip rein, so sind im Prinzip alle aufgebaut.
In der RollOver Prozedur bei jedem einzelnen Buchstaben, steht folgendes:

PHP:
_root.logo.slogan.navigation1.gotoAndPlay(45);
_root.logo.slogan.slogan.gotoAndPlay(14);

Jetzt als Beispiel gesehen. Sprich ich steig in dem MovieClip immer dort ein, wo die Maske zum ersten Mal den Text berührt.
Beim rollOut natürlich genau umgekehrt. Ich fang da an, wo die Maske den Text zum letzten Mal berührt.

Ich hoffe du kannst dir darunter mehr vorstellen.

Schon jetzt mal vielen Dank.

Florian
 

Anhänge

  • slogantest.fla.zip
    4,9 KB · Aufrufe: 20
Sorry, ich habe immer noch nicht ganz verstanden, worum es geht.

Hmm... ich wage mal einen Schuss ins Blaue:

Du hast mehrere Dieser Texte unter Masken und willst, dass sich einer ausblendet, während ein anderer eingeblendet wird, und das ganze ohne "Spünge"? Ich habe mal ein kleines Beispiel angehängt, aber ich bin nicht sicher, ob es das ist, was Du suchst.

Gruß
.
 

Anhänge

  • maskfade.zip
    13,5 KB · Aufrufe: 22
Hallo

Ja du hast es ungefähr getroffen. Und erstmal vielen Dank für deine Mühen.

Folgendes ist aber anders: Die Buttons reagieren nicht auf Click sondern rollOver. Außerdem soll beim rollOut der eingeblendete Text wieder vom Standardtext überschrieben werden.

Ich hab das an deinem Beispiel mal zu ändern versucht. Hat leider nicht ganz geklappt (der Text von Ebene c4 soll beim rollOut hingeschrieben werden).
Aber man sieht auch so mein Problem ganz gut. Wenn man etwas zu langsam über die Buttons fährt sieht mans.
Ich hab dir die von mir geänderte Datei angehängt.
Außerdem müssen die Texte Buttons enthalten. Wollte das nur nochmal sagen, weil ich nicht genau herausgefunden ob bei dir das automatische Text reinschreiben, wichtig für das gesamte Script ist oder ob du es nur aus Gründen der Schnelligkeit gemacht hast. Vielen Dank auf jeden Fall.
 

Anhänge

  • maskfade.zip
    14,8 KB · Aufrufe: 21
Hi,

Du hast einfach vergessen, Deinem vierten Clip (c4) auch den Instanznamen "c4" zu geben: Er hat den selben wie der dritte (c3). ;)

Ändere das, und es sollte funktionieren.

Du kannst in die Hauptzeitleiste noch folgendes schreiben:
PHP:
doSelect(4);
, um diesen Clip auch am Anfang automatisch anzuzeigen.

Natürlich kannst Du in die einzelnen Clips auch MovieClip, Buttons usw. setzen. Passe dann nur die Größe der Maske entsprechend an. Ich habe der Einfachheit halber einfach mal dynamische Textfelder genommen - was Du da rein packst, ist aber im Endeffekt Deine Sache.

Gruß
.
 
Hallo


Mmmh, ja diese Schlampigkeitsfehlder. Hab das jetzt korrigiert, aber ich stehe bei deinem Ansatz vor dem gleichen Problem wie bei meinem (auch wenn deines um einiges Eleganter gelöst wurde ^^)

Ich hab diesen negativen Effek jetzt minimiert in dem ich hinter den Slogantext eine weißes Feld gelegt hab.

Also danke für deine Hilfe. Falls dir noch irgendwas einfällt, wär ich dir dankbar. Sonst dürfte müsste es so auch gehen. Der Effekt fällt jetzt nicht mehr so arg auf.
 
Tja, nur leider sehe ich Dein Problem immer nocht nicht. :eek:

Meinst Du etwaige Lücken beim Wechsel zwischen zwei Clips?

Mal sehen, das ließe sich wohl mit einer zentralen Steuerung lösen... wäre aber ein ganz anderer Ansatz. Wenn ich Zeit habe, versuche ich mich mal daran.

Gruß
.
 
Zurück