ERLEDIGT
NEIN
NEIN
ANTWORTEN
17
17
ZUGRIFFE
807
807
EMPFEHLEN
-
09.02.05 18:13 #1
- Registriert seit
- Jan 2002
- Ort
- Altenmarkt Zauchensee, Austria
- Beiträge
- 263
Hallo!
Ich möchte gerne eine Buttonleiste erstellen, die sich bei jedem Link verfärbt.
Angenommen bei "Home" ist die leiste blau, "Guestbook" grün, "Kontakt" rot ....
Die leiste ist ein einfaches rechteck, welche unter den Text-Buttons liegt.
Das Problem ist, wie springe ich zwischen den einzellnen Farben hin und her?...
Hat jemand eine idee?
danke
-
Hi,
wandele das Recheck in einen MovieClip um und gib ihm einen Instanznamen (z.B. background). Dann kannst Du die Farbe z.B. mit setRGB einstellen:GrußPHP-Code:var myColor = new Color(background);
button1.onPress = function() {
myColor.setRGB(0xFF0000);
}
button2.onPress = function() {
myColor.setRGB(0x00FF00);
}
.
-
09.02.05 18:39 #3
- Registriert seit
- Jan 2002
- Ort
- Altenmarkt Zauchensee, Austria
- Beiträge
- 263
ok...
nur hab ich da noch ein problem.... die farben sollten sich nicht schlagartig - sondern animiert verändern....
kann man das irgendwie noch einbauen?
-
Hi,
geht auch. Ich habe mal ein Beispiel dazu hochgeladen.
Gruß
P.S.: Netiquette nicht vergessen!
.
-
09.02.05 19:20 #5
- Registriert seit
- Jan 2002
- Ort
- Altenmarkt Zauchensee, Austria
- Beiträge
- 263
PERFEKT!
Genau sowas suche ich...
nur möcht ich den script auch irgendwie verstehen (obwohl ich fast 0 ahnung in action script habe...)
ich hab mal den code hier kopiert..
was heißt das "dr, dg, db" ?Code :1 2 3 4 5 6
var cl = new Color(leiste); var tr = new Object(); tr.rb = tr.gb=tr.bb=0; dr = 0; dg = 0; db = 0;
Kann man hier irgendwo die Übergangsgeschwindigkeit einstellen?Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
function fadeTo(r, g, b) { dr = r; dg = g; db = b; this.onEnterFrame = function() { tr.rb += (dr-tr.rb)/10; tr.gb += (dg-tr.gb)/10; tr.bb += (db-tr.bb)/10; cl.setTransform(tr); if (Math.abs(dr-tr.rb)+Math.abs(dg-tr.gb)+Math.abs(db-tr.bb)<3) { tr.rb = dr; tr.gb = dg; tr.bb = db; cl.setTransform(tr); delete this.onEnterFrame; } }; }
Vielen DANK!
christian
-
Jupp,
rb, gb und bb sind die Offseteigenschaften des Transform-Objektes für das Color-Objekt. Schau mal in der Hilfe nach "Color-Klasse" und "Color.setTransform".
Man kann auch mit ra, ga und ba arbeiten, aber ich bevorzuge die relative Änderung über den Offset (ist natürlich auch abhängig von den Anforderungen).
Die Geschwindigkeit änderst Du, indem Du in diesen Zeilen:die 10 gegen andere Zahlen austauschst. Grössere Zahlen = langsamer.PHP-Code:tr.rb += (dr-tr.rb)/10;
tr.gb += (dg-tr.gb)/10;
tr.bb += (db-tr.bb)/10;
Erklärung dafür: Ich messe den "Abstand" zwischen meinem Zielwert und dem aktuellen Wert und addiere bei jedem Frameaufruf einen Teil dieses Abstandes zu meinem Wert. Mit 10 würde ich mich z.B. jeden Frameaufruf um 10% meiner Zielfarbe nähern.
Gruß
.
-
10.02.05 11:07 #7
- Registriert seit
- Jan 2002
- Ort
- Altenmarkt Zauchensee, Austria
- Beiträge
- 263
ahh...
ok - das versteh ich.....
jetzt wirds noch ein bisschen schwerer...
ich möchte, dass sich verschiedene animationen (movieclips) beim click auf einen Button abspielen....
brauch ich da auch wieder einen speziellen code?
thx.
-
Hi,
hmm, diese Aussage ist ziemlich vage. Was genau soll geschehen: auf der Bühne befindliche MovieClips ein/ausgeblendet und/oder abgespielt werden, Clips aus der Bibliothek instanzieren, externe SWF-Dateien einladen und anzeigen?
Erkläre bitte noch einmal genauer, wie Du Dir das vorstellst, Dann können wir Dir sicher weiterhelfen.
Gruß
.
-
10.02.05 11:39 #9
- Registriert seit
- Jan 2002
- Ort
- Altenmarkt Zauchensee, Austria
- Beiträge
- 263
ich habe mal einen screenshot angehängt.
hier ist die veränderte buttonleiste.
Ober dieser Leiste sollte eine Animation abgespielt werden (ein movieclip).
Wenn man z.B auf "Photos" klickt - spielt sich eine animation mit text und bild ab...
klickt man auf einen anderen button - so kommt wieder eine eigene animation, sodass bei jedem Thema ein eigenes Bild zugeordnet wird.
Das Bild sollte wiederum nicht schlagartig, sondern eingeblendet erscheinen - doch das hab ich schon im movieclip mit einem Bewegungstween geregelt....
den movieclip kann ich auch auf die bühne legen, oder auch nur in der Bibliothek lassen...
danke nochmal!
-
Hi,
hmm, wo ist dann da das Problem? Ich nehme an, Du weisst, wie man mit onRelease/onPress auf ein Mausereignis erstellt und auch, wie man MovieClips einblendet (_visible-Eigenschaft) bzw. aus der Bibliothek instanziert (attachMovie). Bitte erklär, wo genau Du nicht weiterkommst. Liegt es an der Syntax, oder daran, dass Du auf das Ausfaden eines Clips warten willst, bevor Du den nächsten einblendest?
Wenn Du das Ein- und Ausfaden über Tweening geregelt hast, leg doch einfach alle Clips übereinander und sag auf den Buttons z.B. so etwas:und den Clips verpasst Du die Funktionen fadeIn und FadeOut, die nichts weiter machen, als zu den entsprechenden Frames zu springen.PHP-Code:on(release) {
_parent.clip1.fadeIn();
for (var i=2; i<=_parent.clip_anzahl; i++) {
_parent["clip" + i].fadeOut();
}
}
Gruß
.
-
10.02.05 16:23 #11
- Registriert seit
- Jan 2002
- Ort
- Altenmarkt Zauchensee, Austria
- Beiträge
- 263
hmm...
also - ich weiß nicht - entweder bin ich wirklich zu dumm dafür - oder die einjährige flashpause war nicht gut...
ich habe mir gedacht, dass ich alle animationen mit eigener ebene unter die Ebene "Leiste" lege, indem ich einen movieclip auf die Ebene platziere, welche die animation enthält.... und wenn dann auf den button geklickt wird, "spiel movieclip "pink" auf ebene "pink" ab"....
natürlich funktioniert nie was wie man es sich vorstellt....
also... für button 1:
Movieclip "Blue" liegt auf Ebene "Blue". Instanzname "Blue"
Code am dazugehörigen Button:
Code :1 2 3 4 5 6 7 8 9
on (rollOver) { _parent.fadeTo(51, 102, 153); } on(press) { _parent.clip1.fadeIn(); for (var i=2; i<=_parent.clip_anzahl; i++) { _parent["Blue" + i].fadeOut(); } }
Im Movieclip liegt eine Animation mit 15 Bildern - welche das Bild einblendet.
Damit das Bild nicht gleich eingeblendet wird, ist beim 1. Bild der Ebene "Blue" ein "stop();"
Eine Fehlermeldung gibts von Flash auch noch:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13
**Fehler** Szene=Szene 1, Ebene=buttons, Bild=1:Zeile 5: Syntaxfehler. _parent.clip1.fadeIn(); **Fehler** Szene=Szene 1, Ebene=buttons, Bild=1:Zeile 6: Syntaxfehler. for (var i=2; i<=_parent.clip_anzahl; i++) { **Fehler** Szene=Szene 1, Ebene=buttons, Bild=1:Zeile 5: Syntaxfehler. _parent.clip1.fadeIn(); **Fehler** Szene=Szene 1, Ebene=buttons, Bild=1:Zeile 6: Syntaxfehler. for (var i=2; i<=_parent.clip_anzahl; i++) { Anzahl der ActionScript-Fehler: 4 Gemeldete Fehler: 4
danke....
-
Hi,
ich muss gestehen, ich verstehe noch nicht ganz, wie Du Dir das vorstellst - mein Beispiel war auch keinesfalls zum Kopieren gedacht, sondern nur als generell Anregung, wenn Deine Struktur entsprechend aufgebaut ist.
Diesse Syntaxfehler erhältst Du übrigens, wenn Du Code per Copy&Paste aus dem Forum in den AS-Editor kopierst; tipp es per Hand ab, und es gibt keine Fehler mehr.
Im Anhang findest Du meine "Standardanwort" auf die Frage, wie man MovieClips auf Knopfdruck gegeneinander blendet. (Inzwischen geht es schneller, die einzutippen, als nach alten Threads zu suchen, in denen ich ähnliches gepostet habe
).
Gruß
.
-
10.02.05 18:45 #13
- Registriert seit
- Jan 2002
- Ort
- Altenmarkt Zauchensee, Austria
- Beiträge
- 263
danke... jetzt hab ich alles...
du musst verstehen, dass für mich actionscript japanisch ist - ich hab damit nie mehr als gaaanz simple sachen gemacht, und habe es auch noch nicht vor....ich muss gestehen, ich verstehe noch nicht ganz, wie Du Dir das vorstellst - mein Beispiel war auch keinesfalls zum Kopieren gedacht, sondern nur als generell Anregung, wenn Deine Struktur entsprechend aufgebaut ist.
vielen dank für deine hilfe...!
-
12.02.05 14:49 #14
- Registriert seit
- Jan 2002
- Ort
- Altenmarkt Zauchensee, Austria
- Beiträge
- 263
bin zufällig noch auf was draufgekommen:
wenn die ausgangsleiste nicht schwarz ist - dann funktioniert das auch alles nicht ganz so wie es sein sollte...
da ich eine graue leiste brauche habe ich versucht fade mit "on clip event ...." gleich beim betreten des filmes die leiste umzufärben...
irgendwie geht das nicht so...
kann man das sonst irgenwie machen?
danke
-
hmm....
1.) ich versteh' die Frage nicht, ehrlich gesagt.
2.) Bitte Netiquette beachten (Groß- und Kleinschreibung)!
Gruß
.
Ähnliche Themen
-
Lüfter dreht sich langsam und nichts tut sich!
Von Silver43 im Forum HardwareAntworten: 0Letzter Beitrag: 27.12.10, 21:14 -
Ein beim Hovern sich vergrößerndes Bild schiebt sich unter den Footer( IE7)
Von crossandgo im Forum CSSAntworten: 1Letzter Beitrag: 12.02.10, 13:12 -
link, der sich bei hover langsam verfärbt
Von Precog im Forum Javascript & AjaxAntworten: 12Letzter Beitrag: 05.10.02, 11:15 -
Buttonleiste bei der der zuletzt gedrückte Button aktiv bleibt (z. B. leuchtet) ****?
Von MarkusZ im Forum Flash PlattformAntworten: 4Letzter Beitrag: 18.09.01, 18:14





Zitieren
Login





