| |||||||
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: Nov 2005
Beiträge: 16
| Hallo! Da ich gerade neu dazu gekommen bin: erst mal ein herzliches Dankeschön an alle für die vielen hervorragenden Tips & Hilfen, die ihr hier bietet. Aber nun habe ich ein Problem, wo ich nicht genau weiter weiß (bin allerdings auch noch Flash-Anfänger). Also, ich habe mit dem unten angehängten Code mal versucht, eine Menüauswahl zu erstellen, bei der jede Instanz von mcMenuForm+Nr mit dem Rechteck Former umrandet wird. Via MouseUp übergebe ich dann den Namen mit Nr. des geklickten mcMenuForm zur weiteren Abfrage (und so sieht’s aus: siehe Anhang). Nun habe sehr viele Menühintergründe wie in der angehängten Beispieldatei, die ich alle innerhalb einer swf-Datei miteinander verlinken möchte – wenn möglich, über eben diese Menüroutine. Also, immerhin könnte ich jetzt schon pro Bild je einen Menühintergrund plazieren mit den entsprechenden mcMenuForm-Instanzen drauf und dem MouseUp-Script, das um Sprungbefehle zu den anderen Bildern ergänzt werden müßte, damit die Verlinkung funktioniert. Aber könnte man das nicht viel besser über Actionscript bewerkstelligen? Irgendwie habe ich das Gefühl, das könnte viel Aufwand sparen (es sind nämlich wirklich viele verschiedene Hintergründe), aber ich komme nicht so recht auf eine Idee. Wer wüßte, wie man das machen könnte? Über jegliche Hinweise oder Hilfe würde ich mich riesig freuen! Code: mSpeed = 20;
/* je hoeher, je langsamer die Bewegung */
MovieClip.prototype.mMove = function() {
if (this.hitTest(_root._xmouse, _root._ymouse, true)) {
mXTarget = this._x;
mYTarget = this._y;
mWTarget = this._width;
mHTarget = this._height;
mGo = true;
}
Former._x += (mXTarget-Former._x)/mSpeed;
Former._y += (mYTarget-Former._y)/mSpeed;
Former._width += (mWTarget-Former._width)/mSpeed;
Former._height += (mHTarget-Former._height)/mSpeed;
};
MovieClip.prototype.aMove = function() {
if (mGo == true) {
this._x += (mXTarget-this._x)/mSpeed;
this._y += (mYTarget-this._y)/mSpeed;
this._width += (mWTarget-this._width)/mSpeed;
this._height += (mHTarget-this._height)/mSpeed;
mGo = false;
}
};
for (nNum=1; nNum<=75; nNum++) {
/* max. Anzahl der versch. Menu-Punkte */
_root["mcMenuForm"+nNum].onEnterFrame = function() {
this.mMove();
};
}
_root.Former.onEnterFrame = function() {
this.aMove();
};
MovieClip.prototype.onMouseUp = function() {
if (this.hitTest(_root._xmouse, _root._ymouse)) {
str = "mcMenuForm";
str2 = String(this._name);
str3 = str2.substring(0, 10); // Länge von "mcMenuForm"
if (str == str3) {
// getURL(str2) // Übergabe an Director oder
// Befehl für neue Menüseite
} else {
// hier alles, wenn kein Menü-Element geklickt wurde
}
}
}; |
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: Sep 2004 Ort: Heidelberg
Beiträge: 37
| visibility
Die einfachste Variante wären pro Menupunkt zwei Movieclips, die übereinander liegen: einer mit Hintergrund (z.B. menu01_bg.png) und einer ohne (menu01.png). Die Namen codierst Du in ein Array und arbeitest das Array mit einer einfachen for-Schleife ab. Für jeden Eintrag erzeugst Du 1. einen leeren Movieclip (createEmptyMovieclip()) 2. setzt ihn an die richtige Stelle (movieclip._x = ..., movieclip._y = ...), 3. lädst das Bild des aktuellen Eintrags in diesen Clip (movieclip.loadMovie(Eintrag)). Das ganze wiederholst Du jetzt für den zweiten Eintrag (in dem fall menu01.png), aber setzt danach noch 4. movieclip2._alpha = 100; Das macht den zweiten Movieclip (ohne Hintergrundbild) unsichtbar. Jetzt baust Du einfach noch in deine MouseUp-Funktion ein "movieclip2._alpha = 0" ein. Dadurch wird neben dem Kästchen um den Menupunkt der erste Movieclip (mit Hintergrund) sichtbar, weil der daraufliegende Movieclip (ohne Hintergrund) ja nicht mehr sichtbar ist. Gruß, Lars Ps: Für einen Flashanfänger sieht Dein Movie schon echt klasse aus. Geändert von icebaer (15-11-2005 um 01:15 Uhr) |
| | |
| | #3 (permalink) | |
| Neuer User Registriert seit: Nov 2005
Beiträge: 16
|
Hallo Lars! Ganz großen Dank für Deine Hilfe. Mir scheint, daß ist genau der Ansatz, den ich gesucht habe. Das werde ich heute nach der Arbeit (bin als Admin tätig) gleich ausprobieren. Ich glaube, vom Prinzip habe ich es auch schon verstanden, allerdings könnte es sein, daß ich an der Umsetzung noch ganz schön feilen muß, 1000x in der Hilfe nachschlagen etc., wie es halt meist so ist, wenn man noch ganz am Anfang steht, gerade eines so ungeheuer komplexen Programms wie Flash. - Wenn ich dann etwas nicht so richtig schaffen sollte, könnte dann hier noch einmal nach eventuellen Details nachfragen? - Dazu eine kleine Frage schon mal vorweg (sozusagen aus dem Trockenen heraus, da ich es erst heute abend in Flash selber ausprobieren kann): Wie code ich den den Array zurecht? (Mir fehlt da leider noch die Erfahrung mit der richtigen Syntax ...) Zitat:
Geändert von Wright (15-11-2005 um 10:31 Uhr) | |
| | |
| | #5 (permalink) |
| Gimbel Deluchs Registriert seit: Apr 2004 Ort: Wieder da!
Beiträge: 153
|
Also Array Syntax geht so; PHP-Code: PHP-Code: |
| | |
| | #6 (permalink) |
| Neuer User Registriert seit: Nov 2005
Beiträge: 16
| Hallo! Vielen Dank für die Hilfe, Mr.Dauerfeuer! Ich weiß zwar nicht, ob die Umsetzung für einen Erfahrenen wie Dich schwierig war: aber ich hätte dafür bestimmt ewig gebraucht! Immerhin habe ich den Code wenigstens nachvollziehen können. Aber irgendwie weiß ich trotz dieser prima Vorgaben noch immer nicht, wie ich diese mit meinem Code richtig verbinde. Bisher habe ich ja lauter einzelne Schlüsselbilder mit jeweils einem Hintergrundbild und der Routine, die mit jeder Button-Instanz auf enterFrame das Former-Kästchen jener angleicht. Auf MouseUp prüfe ich, ob ein Button-mc 'darunter' liegt. Die Nummer dieses mcs frage ich dann ab, um via gotoAndPlay zu dem Flashbild mit dem entsprechenden Hintergrund zu springen. Wenn ich jetzt, wie oben vorgeschlagen, statt des gotoAndPlay einfach den Hintergrund auf der Basis des angelegten Arrays wechsele, habe ich pro Button-mc zwar das Ereignis Bild anzeigen / verbergen. Aber wie springe ich denn dann zu den anderen Hintergrundbildern (mit deren Button-Instanzen)? Irgendwie werde ich das Gefühl nicht los, da etwas ganz grundsätzlich noch nicht verstanden zu haben ... Vielleicht habe ich mir da für einen Anfänger wie mich doch etwas zu viel vorgenommen? Oder sehe ich den Wald vor lauter Bäumen einfach nicht? Viele Grüße von Nick p.s.: Falls jemand mal schauen möchte, wie die FLA bisher aussieht: HIER habe ich sie zum Download hinterlegt. |
| | |
| | #9 (permalink) |
| Gimbel Deluchs Registriert seit: Apr 2004 Ort: Wieder da!
Beiträge: 153
|
Also ich hoffe ich hab richtig verstanden was du willst. Wenn Du ein paar Buttons so verlinken willst das sich z.B. der Hintergrund ändert, kann man das so machen wie in Deiner fla. Sprich je nach gedrücktem Button springt dein Flash Film auf ein entsprechendes Bild. Wenn Du allerdings nach einem dynamischen Ansatz suchst, solltest Du folgendermaßen vorgehen. 1. Dein Film hat EIN Bild (nur eins!) 2. in diesem Bild liegen deine Buttons 3. in diesem Bild liegt eine art Container ( ein leerer MovieClip ) 4. z.B. in einem Array speicherst Du welcher Content zu welchem Button gehört 5. Wenn einer der Buttons geklickt wird, lädst du in Deinen Container den entsprechenden Content Content kann entweder extern oder intern (in der fla) abgelegt werden. Um internen zu laden musst du den Symbolen on der Bibliothek über "Verknüpfen" einen Bezeichner zuweisen und dann die Symbole per "attachMovie" auf die Bühne holen. Wenn Du externen Content hast lädst du diesen z.B. über "loadMovie('nameDerDatei', zielMovieClip)", wirf mal einen Blick in die Hilfe und guck nach "MovieClipLoader". Hab Dir Deine Fla mal umgebaut und einen dynamischen Ansatz verfolgt. Gruss MrD |
| | |
| | #10 (permalink) |
| Neuer User Registriert seit: Nov 2005
Beiträge: 16
| Hai, MrDauerfeuer! Bin noch auf der Arbeit, aber habe gerade Deine Antwort entdeckt. So richtig in Ruhe anschauen kann ich mir's erst heute abend zu hause, aber schon mal riesigen Dank für Deine Mühe! - Phantastisch, daß Du mir schon so viel weiter geholfen hast! Und ja genau, doch, Du hast mich so verstanden, wie ich es meinte. - So weit meine myopen Anfängeraugen schauen können, ist das auch die richtige Richtung, das dynamisch umzusetzen. Eine kleine Frage tut sich allerdings so zwischendurch für mich jetzt schon auf: Leider habe ich nämlich für einige Gruppen von den Seiten (es sind insgesamt immerhin satte 500 Hintergründe ungefähr) ein weiteres Problem: Sie weisen unterschiedliche Anzahlen und Formen von Menüpunkten auf und sollen, wenn das überhaupt generisch umsetzbar ist, auch noch innerhalb jeweils einer Seite unterschiedlich gefärbte Former haben (also z. B. links oben ein Menü mit Rechtecken und einem grauen Umrander und auf derselben Seite rechts unten ein Menü mit kleinen Quadraten und einem roten Umrander). Wie ließe sich denn das bloß in der - ansonsten genau richtigen - dynamischen Variante, die Du so klasse vorgelegt hast, auch noch einbauen? Ich hoffe sehr, daß das jetzt nicht zu weit führt oder in von mir ungeahnte Untiefen der AS-Programmierung, aber vielleicht ist es ja ok, wenn ich dennoch einfach mal vorsichtig weiter nachfrage. Nachher, wenn ich von der Arbeit zurück bin, schaue ich mir auf jeden Fall alles noch mal genauer an, vielleicht schaffe ich es ja, da einen kleinen Ansatz herauszufinden. Oder ist das evtl. doch gar nicht so realisierbar? Vielleicht hast Du oder jemand sonst ja noch einen Tip in diese Richtung oder so ... Melde mich später wieder, sobald ich wenigstens ein paar Schritte weiter bin ... |
| | |
| | #11 (permalink) |
| Neuer User Registriert seit: Nov 2005
Beiträge: 16
| Hallo, da bin ich wieder ... Inzwischen habe ich doch so Einiges versucht (im natürlich begrenzten Rahmen meiner Anfänger-Möglichkeiten), aber ich finde einfach keinen funktionstüchtigen generischen Ansatz, mit dem ich (aufsetzend auf Mr.Dauerfeuers Vorgabe) pro Menüblatt-Hintergrund-Container: - verschieden viele Menüpunkte - mit verschiedenen Umrander-Farben je Gruppe von Menüpunkten hinbekomme. Die größte Hürde stellt für mich die Hauptschleife dar, die für jedes Menüblatt so flexibel sein müßte, daß ich mit entsprechenden Parametern die in Anzahl und Form verschiedenen Menüpunkte pro Blatt generieren kann. Ich vermute, daß die Ursache dafür meine mangelnde Erfahrung nicht nur mit AS im allgemeinen, sondern besonders mit OOP ist, da ich mit 'klassisch-linearen' Programmiermethoden bei dieser Aufgabe einfach nicht weiter komme. Ich bin inzwischen völlig aufgeschmissen und komme trotz Flashhilfe, einiger Lehrbücher und der Hilfe hier immer noch nicht weiter, obwohl ich jetzt eigentlich schon verstanden habe, wie es im Prinzip gehen könnte. Hat jemand vielleicht noch eine Idee, die mir auf die Sprünge helfen könnte? Viele Grüße von Nick |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |