| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| . Registriert seit: Oct 2001 Ort: Wien
Beiträge: 238
| Problem mit animierter Navigation
Hallo Leute, ich versuche mich soeben an einer animierten Navi. Ich habe mir dazu eine Funktion ausgedacht (das fla findet Ihr im Anhang). Ich habe 6 Buttons. Clickt man auf einen dieser Buttons (Im Anhang funktioniert nur "downloads" - bzw. sollte funktionieren), so erscheinen weitere "Subbuttons". Die anderen sollen nach links zur Seite rücken, um diesem Platz zu machen (dies aber in einer abgebremsten Bewegung). Das Problem: 1. Die Bewegung wird nie abgebremst, sondern läuft weiter, bis die Buttons, die Platz machen sollen von der Bildfläche verschwinden. 2. Das ganze funktioniert nur bei mc´s. Lassen sich Buttons auf diese Art etwa gar nicht bewegen? Muss ich sie etwa in mc´s verpacken? Hier mein Code: Bild 1 Ebene Functions (Hauptzeitleiste): Code: function slideButtons (whichButton,subButtons,baseRate) {
if (_root[whichButton]._x > (_root[whichButton]._x - (subButtons*81))) {
difference = _root[whichButton]._x - (_root[whichButton]._x - (subButtons*81));
rate = difference / baseRate;
_root[whichButton]._x = _root[whichButton]._x - rate;
}
} subButtons gibt an, wie viele Subbuttons eingefügt werden sollen weitere Info: jeder Button ist gleich groß (81px, wie Ihr sicher bemerkt habt) Das Skript auf dem einen Button: Code: on (release) {
gotoAndStop ("downloads");
} Inhalt scriptmc: Bild 1: Code: _root.slideButtons("home",3,4);
_root.slideButtons("transfer",3,4);
_root.slideButtons("excursions",3,4); Code: gotoAndStop (1); warum geht das nicht!!! Kann mir jemand helfen? |
| | |
| | #2 (permalink) |
| Der Alte Registriert seit: Nov 2003 Ort: Potsdam
Beiträge: 208
|
Hallo, Denkfehler! Bei jedem Aufruf von "slideButtons" wird die aktuelle x-Pos von "whichButton" mit > ("whichButton" - irgendwas) verglichen. Dieser Vergleich muss immer true ergeben. Da der Aufruf ständig wiederholt wird, hat auch die Bewegung kein Ende. Noch mal drüber nachdenken. |
| | |
| | #3 (permalink) |
| . Registriert seit: Oct 2001 Ort: Wien
Beiträge: 238
|
Hallo, OK, daraus schließe ich zunächst mal, dass auf alle Fälle mal das gotoAndPlay(1); weg muss, sonst bekommt die function also immer wieder den neuen Befehl, ist das richtig? Der Ausdruck in der Klammer wird aber doch immer kleiner, weil sich die x-pos des "whichButton" immer näher an die geforderte x-pos heranschiebt. Also müsste das die Bewegung abbremsen. Nach meinen Berechnungen müsste dies nach spätestens 31 Durchläufen der Fall sein, denn dann ist auch die zweite Stelle hinterm Komma eine 0. Ich nehme an, dass flash das dann als 0 interpretiert. So müsste die Anfangsbedingung für die funktion also false sein, und die Bewegung stoppen. Kannst Du mir sagen, wo da der Knoten in meinem Gehirn liegt, denn es funktioniert noch immer nicht (trotz des weglassens des goto befehls). |
| | |
| | #4 (permalink) | |
| Der Alte Registriert seit: Nov 2003 Ort: Potsdam
Beiträge: 208
| Zitat:
Ja, der Ausdruck in der Klammer wird immer kleiner, er wird sogar negativ. Das ändert nichts daran, dass der Vergleich immer true ergibt. "difference" bleibt dagegen immer konstant (nämlich = (subButtons*81), der Rest wird doch wegsubtrahiert)! Damit blebt auch "rate" konstant und nichts bremst. | |
| | |
| | #5 (permalink) |
| . Registriert seit: Oct 2001 Ort: Wien
Beiträge: 238
|
Das mit gotoAndPlay.. ist mir durchaus klar. Aber warum bleibt difference immer gleich? In der letzten Zeile steht doch PHP-Code: Hilfe, ich habe einen Knoten im Kopf! Vermutlich benötige ich eine while schleife, ja? |
| | |
| | #6 (permalink) |
| Der Alte Registriert seit: Nov 2003 Ort: Potsdam
Beiträge: 208
|
Natürlich wird _root[whichButton]._x immer kleiner, desshalb geht er ja nach links, nur hat das keinen Einfluss auf difference oder rate. while-Schleife ist eine gute Idee (bewegen bis Zielposition erreicht ist). |
| | |
| | #7 (permalink) |
| . Registriert seit: Oct 2001 Ort: Wien
Beiträge: 238
|
OK, ich sehe ein: bis jetzt war ich einfach nur dumm (und wie)!!! Danke für die Geduld!!! Ich hoffe das ändert sich nun. Offensichtlich hatte ich bei Gleichungen damals in der Schule nicht wirklich den Kopf bei der Sache. Ich habe nun einiges umgestellt, sehe mich aber immer noch mit einem Problem konfrontiert, es funktioniert nicht (bzw. es tut sich gar nichts mehr). Mein code ist nun ausschließlich auf einen Button fixiert (den home button), der zunächst mal weichen soll. Der Code im 1.Frame der Ebene Actions: Hier der Code: PHP-Code: PHP-Code: Ich bin am verzweifeln, da ich die Sache unbedingt verstehen möchte. Ich habe nun zwar denke ich auch eine andere Lösung, die ist aber nicht so "elegant". Danke nochmal |
| | |
| | #8 (permalink) |
| Der Alte Registriert seit: Nov 2003 Ort: Potsdam
Beiträge: 208
|
Na vielleicht war die Idee mit while doch nicht so gut, weil dann sämtliche Schleifendurchläufe im gleichen Frame, also ohne Verzögerung ausgeführt werden. Ich mal eine eigene variante entworfen und angehängt. |
| | |
| | #9 (permalink) |
| . Registriert seit: Oct 2001 Ort: Wien
Beiträge: 238
|
Verstehe (das mit while). Allerbesten Dank für Deine Mühe. Leider funktioniert das Skript nicht so, wie ich es brauche. Das _root.Weg ist nun eigentlich die Hauptkomponente. Ziel ist anscheinend komplett egal. Da "home" die Anfangsposition 304 hat, und 3x81 243 ist, müsste die Endposition 71 sein. Ist sie aber nicht. Es sieht vielmehr aus, als würde "home" um 71px nach links rücken. Es ist dabei völlig irrelevant, welchen Wert man für subButtons wählt. _root.Weg bestimmt eigentlich, wie weit der button sich nach links bewegt, nimmt man nämlich den Wert 10, für _root.Weg, so ist nach dem 11.Durchlauf schluss. Bei Wert 50, erlaubt flash 18 Durchläufe (bei Multiplikator 0.8, wie von Dir verwendet). Beide male stoppt "home" vor dem eigentlichen Ziel. Gibt man jedoch 100 ein, so schießt "home" weit über das Ziel hinaus. Warum wird die zweite if-Bedingung hier einfach ingnoriert? Oder spinnt etwa mein Flash? |
| | |
| | #10 (permalink) |
| . Registriert seit: Oct 2001 Ort: Wien
Beiträge: 238
| Neue Version
So, jetzt habe ich eine neue Version erstellt. Zumindest ein Teil funtkioniert so, wie es sein soll (siehe Anhang). Ich habe einfach zu jedem Button einen eigenen scriptmc geschrieben, der auf Buttonclick die Eingaben erhält. z.B.:Name: "scriptbutton1" (analog dazu alle Buttons bis "scriptbutton6"): Frame1 ("stop"): PHP-Code: PHP-Code: PHP-Code: PHP-Code: Das Problem: obwohl nun drei Buttons gleichzeitig Befehle bekommen (und ich die Scripts nur modifiziert habe), funktioniert nur einer (home). Kann mir jemand sagen, was ich nicht richtig bedacht habe? |
| | |
| | #11 (permalink) |
| Neuer User Registriert seit: Jan 2004 Ort: Berlin
Beiträge: 194
|
meinste sowas wie das?
__________________ www.alexus-online.de |
| | |
| | #13 (permalink) |
| Der Alte Registriert seit: Nov 2003 Ort: Potsdam
Beiträge: 208
|
sorry, das war wirklich mit der heißen Taste getippt. Insbesondere hätte ich nicht Deine schlechte Programmstruktur beibehalten sollen. Da iost der Ablauf schwernachvollziehbar. Ich versuch's noch mal besser, dauert aber länger. |
| | |
| | #14 (permalink) |
| Der Alte Registriert seit: Nov 2003 Ort: Potsdam
Beiträge: 208
|
Hallo, wie versprochen hier noch ein Versuch. Die etwas entflochtene Struktur funzt mit "Downloads" und "Rates". Bewegt wird immer "Home" (als Parameter daher eigentlich unnötig). Die anderen Buttons hängen einfach dran (oder wolltest Du sie einzeln bewegen?). Was noch fehlt ist das Zurückfahren, aber Du sollst ja auch selbst noch ein bisschen arbeiten. Viel Spaß dabei. |
| | |
| | #15 (permalink) |
| . Registriert seit: Oct 2001 Ort: Wien
Beiträge: 238
|
Wirklich allerbesten Dank für Deine Mühe. Ich habe mittlerweile versucht es anders zu lösen und sitz gerade noch an dem Ansatz. Habe mir Deine Version schon angesehen, klingt super. Ich hoffe ich kann Euch mal das fertige Ding zeigen...
|
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |