| |||||||
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) |
| Neuer User Registriert seit: Mar 2009
Beiträge: 8
| Flash Menü ähnlich Yugop: Bewegung nur, wenn Maus am Rand ist
Hallo liebes FF Nur damit nicht gleich der Hammer kommt: Ich beschäftige mich noch nicht lange mit Flash und verstehe deshalb bei komplexen Actionsscripts deshalb immer nur die Hälfte... Also bitte helft mit auf Anfängerniveau und erklärt mir bitte auch, wie ich den Code zu verstehen habe und seid nicht böse, wenn ich mich (etwas?) doof anstelle. ![]() Ich habe auch erst alle möglichen Forenbeiträge zum Thema yugop, Menü, vertikal, etc durchgelesen und hab trotzdem noch keinen Beitrag gefunden. Ich habs also wirklich schon versucht!!! Eine antwort wie "Such mal yugop" hilft mir also NICHT weiter... ![]() Und nun endlich zu meinem Problem: Ich habe in Flash ein vertikales Menü aus 8 Bildern gebastelt (1Bild = 100X125 px, also insg 100X1200 px), das ich später auf einer Website benutzen möchte. Da Bildschirme bekanntlich verschieden groß sein können, kann es nun vorkommen, dass mein menü evtl zu hoch für bestimmte Browser ist. Nun fänd ich es unschön, wenn man, um alle menüpunkte sehen zu können, die ganze website scrollen muss und wollte es stattdessen so lösen: Wenn man ganz oben oder ganz unten im Menü mit der Maus auf einen bestimmten Bereich kommt, sollen die Menüpunkte langsam nach oben bzw unten scrollen. Das soll theoretisch "unendlich" möglich sein, eben nach dem Yugop-Prinzip. ABER das Menü soll sich halt NUR BEWEGEN, wenn man an den oberen/Unteren Rand stößt und dabei soll der "Scrollbefehl" NICHT die Buttons überdecken (also: Die Menüpunkte sollen auch anklickbar sein, wenn die UNTER dem Scrollbereich liegen). Und diese Yugopscripte scrollen doch durchgängig, sind für mich in der originalform also unbrauchbar!?! Wie muss also das "Scrollactionscript" aussehen, damit das so klappt? Hier mal ein Bild und die Datei (noch ohne Script, mit bunten Flächen statt den Fotos), damit ihr evtl besser versteht, was ich meine. In diesem Fall nur mit 5 Menüpunkten, das Prinzip bleibt ja das gleiche... ![]() Wahrscheinlich ist die Lösung ganz einfach, aber ich bin noch nicht so weit, selbst auf die Lösung zu kommen und finde auch nirgendwo eine. Also helft mir, bitte! Kann mir zB dieses Script weiterhelfen, wenn man die Bewegungsfunktion (wie auch immer) nur auf die Ränder beschränkt?? das variabelste Yugop Menu MfG, Ein absoluter Anfänger |
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: Jun 2008 Ort: Bei den Fischköppen
Beiträge: 94
|
Hallo, habe das ganze für einen Bildslider erstellt. Script auf Hauptleiste: Code: _global.slide = this;
var speed = 2;
var maxspeed = 2;
var damper = 2;
var gap = 10;
var overpic = false;
var finished = 30;
var leiste = new Array(2);
leiste[0] = container.attachMovie("bilderleiste", "leiste0", 1);
leiste[1] = container.attachMovie("bilderleiste", "leiste1", 2);
function nextOne() {
finished ++;
if (finished >= 2) go();
}
function go() {
leiste[1]._y = leiste[0]._y + leiste[0]._height + gap;
mask.onEnterFrame = function() {
if (!overpic) {
speed += (-(_ymouse - mask._height / 2) / 15 - speed) / 5;
if (speed < -maxspeed) speed = -maxspeed;
if (speed > maxspeed) speed = maxspeed;
} else {
speed /= 1.4;
}
for (var i=0; i<leiste.length; i++) {
leiste[i]._y += speed;
}
for (var i=0; i<leiste.length; i++) {
if ((leiste[i]._y > mask._height) && speed > 0) moveUp(i);
if ((leiste[i]._y < -leiste[i]._height - gap) && speed < 0) moveDown(i);
}
}
}
function moveUp(y) {
if (y == leiste.length - 1) {
leiste[y]._y = leiste[0]._y - leiste[y]._height - gap;
} else {
leiste[y]._y = leiste[y + 1]._y - leiste[y]._height - gap;
}
}
function moveDown(y) {
if (y == 0) {
leiste[y]._y = leiste[leiste.length - 1]._y + leiste[leiste.length - 1]._height + gap;
} else {
leiste[y]._y = leiste[y - 1]._y + leiste[y - 1]._height + gap;
}
} Code: var bilder = 5;
var zoom = 80;
slide.overpic = true;
for (var i=1; i<=bilder; i++) {
var p = this.attachMovie("bild" + i, "bild" + i, i);
p._xscale = p._yscale = zoom;
if (i > 1) {
p._y = this["bild" + (i - 1)]._y + this["bild" + (i - 1)]._height + slide.gap;
}
_root.btn_oben.onRollOver = function() {
slide.overpic = false;
}
_root.btn_oben.onRollOut = _root.btn_oben.onReleaseOutside = function() {
slide.overpic = true;
}
}
for (var i=1; i<=bilder; i++) {
var p = this.attachMovie("bild" + i, "bild" + i, i);
p._xscale = p._yscale = zoom;
if (i > 1) {
p._y = this["bild" + (i - 1)]._y + this["bild" + (i - 1)]._height + slide.gap;
}
_root.btn_unten.onRollOver = function() {
slide.overpic = false;
}
_root.btn_unten.onRollOut = _root.btn_unten.onReleaseOutside = function() {
slide.overpic = true;
}
}
};
slide.nextOne(); Gruß Mirco |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Mar 2009
Beiträge: 8
| Wow, danke! ![]() Ich hab jetzt alle Schaltflächen in einen Movieclip verschoben und den auf die Zeitleiste gesetzt und dem das eine actionscript verpasst und der hauptzeitleiste das obere. Ist das so richtig? Aber bewegen tut sich da noch nichts. Weder nach unten, noch nach oben. Stattdessen ist die Flashdatei um den "Scrollbereich" "abgeschnitten". Eigentlich soll der ja aber sichtbar sein... Ich häng nochmal die Datei im neuen Zustand an. Kannste mir den Code nochmal erläutern, welches Programmierschnipsel für was gut ist? und was welche Zahl bewirkt? Und ob/Wo ich Instanznamen vergeben muss? Entschuldige mein Unwissen. ich starr den Code die ganze Zeit an, aber der will nicht so wie ich. Und wenn ich jetzt einfach was änder, ohne es zu verstehen, mach ich bestimmt wieder alles kaputt Irgendwann explodiert mein Mac nochmal... ;D
Geändert von zwobot (19-03-2009 um 15:20 Uhr) |
| | |
| | #6 (permalink) |
| Neuer User Registriert seit: Jun 2008 Ort: Bei den Fischköppen
Beiträge: 94
|
Also um es erst einmal zum laufen zu bekommen, müsstest du dir zwei buttons mit folgenden Instanznamen erzeugen "btn_oben" und das selbige unten. Dann hast du einem MC in deiner Bibliothek und stellst unter Eigenschaften beim Actionscript Export eine Bezeichung "bilderleiste" ein. Diesen MC schiebst du auch auf deine Hauptebene. Wenn du erst einmal mein Script verwendest, hast du deine Bilder in der Bibliothek und legst für jedes Bild einen MC an. Auch hier bei den Eigenschaften "bild1" etc hinzufügen. Anstelle der Bilder kannst du dann natürlich auch deine Buttons verwenden. Nun erst mal viel Erfolg beim erstellen. EDIT: Michey hat das korrekt umgebaut!!! Geändert von pixelpur (19-03-2009 um 15:52 Uhr) |
| | |
| | #7 (permalink) |
| Neuer User Registriert seit: Mar 2009
Beiträge: 8
|
OK, ich glaub, mit 1-2 kaffe und viel Ruhe kann ich das nachbasteln und hoffentlich auch halbwegs nachvollziehen können. Aber müssen meine Bilder wirklich in "Movieclips" umgewandelt werden? ich brauch doch "Schaltflächen", oder wie bau ich da meine Buttons ein?? EDIT: Ahh, ich glaube, jetzt kommt die Erkenntnis: Muss ich jeden einzelnen "Button" in einen Movieclip werfen? Bitte haut mich nicht, falls das Bödsinn ist. Ich schäm mich schon, weil ichs nicht schnalle... Geändert von zwobot (19-03-2009 um 16:34 Uhr) |
| | |
| | #8 (permalink) |
| flashen-lehr Registriert seit: Dec 2004 Ort: CH, Europa
Beiträge: 1.688
|
Movieclips sind die besseren Schaltflächen, kannst damit mehr anstellen. Du kannste deine Bilderbuttons auch von Anfang auf in der Bilderleiste von Hand positionieren() und das attach Bild+i usw. herausnehmen. Ist aber mit AS einfacher, so wie es jetzt ist. Wenn du etwas in einen leeren container lädst kannst zsbp alles was darin enthalten ist, positionieren ohne für jedes Ding wieder extra etwas zu scripten, ist halt wie ein Behälter, der mit Inhalt gefüllt wird. Edit: @pixelpur wie man sieht, interessiert mich das Thema auch. Habe auch versucht anstelle der Buttons on MouseMove zu verwenden, hat aber nicht funktioniert. Ziel war es zu erreichen dass wenn die Mausposition unterhalb der Maske ist, soll das sliden nach oben stattfinden, bei Mausposition oberhalb der Maske sliden nach unten. etwa so: PHP-Code:
__________________ michey Geändert von michey (19-03-2009 um 16:47 Uhr) |
| | |
| | #9 (permalink) |
| flashen-lehr Registriert seit: Dec 2004 Ort: CH, Europa
Beiträge: 1.688
|
Im Prinzip schon, kannst die Buttons in die Bild-McS packen, komm darauf an was du willst damit und wie du sie dann ansprechen willst, für ein on release oder so... Probieren geht meistens über studieren.
__________________ michey |
| | |
| | #10 (permalink) |
| Neuer User Registriert seit: Jun 2008 Ort: Bei den Fischköppen
Beiträge: 94
|
@ michey: Fand das Thema auch sehr interessant und naja wenn ein Kunde so etwas wünscht soll er es auch bekommen. Wieso setzt du beide Werte auf true? Flash Hilfe zeigt anhand eines Beispiels, dass du schon die Makse oder ähnliches als Mc zuweisen solltest. Flash Hilfe: Code: my_mc.onMouseMove = function() {
TAABtrace ("onMouseMove called");
} |
| | |
| | #11 (permalink) |
| flashen-lehr Registriert seit: Dec 2004 Ort: CH, Europa
Beiträge: 1.688
|
so gehts jetzt PHP-Code: PHP-Code:
__________________ michey |
| | |
| | #12 (permalink) |
| Neuer User Registriert seit: Jun 2008 Ort: Bei den Fischköppen
Beiträge: 94
|
@ zwobot: Hoffe du hast die Lösung gefunden und wir konnten die helfen. @michey: Verstehe nicht ganz, wie du die Maske aus dem Slider nehmen willst? für welches Vorhaben. Wenn du einen eigenen Bereich auf der Szene 1 (_root) haben willst, musst du dein Script auf die _root Ebene kopieren. Vielleicht beschreibst du es noch etwas mehr. |
| | |
| | #13 (permalink) |
| flashen-lehr Registriert seit: Dec 2004 Ort: CH, Europa
Beiträge: 1.688
|
Vielleicht ist mein Vorhaben unsinnig, wollte eigentlich dass das sliden nur dann stattfindet, wenn die Maus nicht auf der Maske ist. Maus unterhalb der Maske(ymouse<mask._height)= sliden nach oben; Maus oberhalb der Maske(ymouse>-mask._height)= sliden nach unten; Maus auf Maske (ymouse<mask._height && ymouse>-mask._height) = stop;
__________________ michey |
| | |
| | #14 (permalink) |
| Neuer User Registriert seit: Mar 2009
Beiträge: 8
|
nein, leider noch nicht ganz ![]() Hab jetzt alle Instanznamen vergeben und alles verändert, aber es werden weder die Bilder geladen noch scrollt irgendwas... Was mach ich denn jetzt schon wieder falsch? Ich häng euch jetzt mal das Original dran... |
| | |
| | #15 (permalink) |
| Neuer User Registriert seit: Jun 2008 Ort: Bei den Fischköppen
Beiträge: 94
|
Also, zum einen sehe ich in der root Ebene keine Buttons mit zugewiesenen Instanznamen und die Exporteinstellungen in der Galerie hast du glaube ich auch vergessen. Oder wolltest du es wie michey beschrieben hat über die Maske steuern? Da fehlt noch ein wenig was. Das würde ich mir noch mal genau anschauen und das von michey verwenden, dass ist einfach und schnell anzupassen. Der zweite Teil es Scripts scheint auch zu fehlen? |
| | |
![]() |
| Lesezeichen |
| Stichworte |
| anfänger, flash, menu, menü, yugop |
| Themen-Optionen | |
| Ansicht | |
| |