ERLEDIGT
JA
JA
ANTWORTEN
3
3
ZUGRIFFE
295
295
EMPFEHLEN
-
21.05.07 08:39 #1
- Registriert seit
- Oct 2006
- Beiträge
- 15
Hallo,
ich habe ein Problem mit meiner Navigation. Meine Flashseite besteht aus 4 Movieclips, die sich beim Mouseover skalieren. Eine Eigentschft die ich nicht erstellen konnte, ist dass die MC 2, 3, 4 beim vergrössern eines MC's automatisch die Position verändern und immer in einem Abstand von 20 px zum vorhergehenden MC stehen bleiben. Ich habe dafür eine Variable mit dem Namen follow_obj erstellt und in einer if-Anweisung in der Prototype Slidefunktion hinterlegt.
Folgender Code soll dies ermöglichen:
Code :1
this._x + this.follow_mc._width + 20;
Leider funktioniert das nicht. Vielleicht hat jemand eine Idee. Ich bin kein Flash-Dev., ich bin immer noch am lernen, aber das müsste doch zu lösen sein. Anbei meine Flashdatei.
Danke euch schon mal
funkymatti
-
Hi,
1. die Zeileist keine gültige Zuweisung, sondern ein Ausdruck (es fehlt z.B. ein Gleichheitszeichen).Code :1
this._x + this.follow_mc._width + 20;
2. Da die Position eines Clips nicht nur von der Position seines Nachfolgers abhängt, sorgst Du am besten in einer externen Funktion "reArrange" für das Anordnen der Clips.
3. Du arbeitest anscheinend mit Flash 6 - dennoch solltest Du Dir angewöhnen, bei Bezeichnern auf Groß- und Kleinschreibung zu achten (Dein Film läuft z.B. unter Flash 7 und 8 nicht mehr, da Du u.a. "mc_Profil" mal mit großem und mal mit kleinem "P" geschrieben hast).
4. Mit folgendem Code auf der Hauptzeitleiste sollte es klappen:Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
// Positionieren (Slide) und MC-Verfolgung movieclip.prototype.slideClip = function(pHoch, pRunter, pHFaktor, pRFaktor) { with (this) { if (signal == 1) { this._width += (pRunter - _width) / pHFaktor; this._height += (pRunter - _height) / pHFaktor; } if (signal == 0) { this._width += (pHoch - _width) / pRFaktor; this._height += (pHoch - _height) / pRFaktor; } } reArrange(); } // Navigations Clip Inhalt movieclip.prototype.initClip = function(pClip, pTitel, pInhalt) { pClip.txtTitel = pTitel; pClip.txtInhalt = pInhalt; pClip.signal = 0; pClip.onRollOver = function() { this.signal = 1; } pClip.onRollOut = function() { this.signal = 0; } } // Clips neu positionieren: var clips = new Array(mc_Profil, mc_History, mc_Service, mc_Kontakt); function reArrange() { for (var i=1; i<clips.length; i++) { clips[i]._x = clips[i - 1]._x + clips[i - 1]._width + 20; } } // Navigations Clip Initialisieren initClip(mc_profil, "Profil", "Dies ist der Inhalt!"); initClip(mc_History, "Hisstory", "Dies ist der Inhalt!"); initClip(mc_Service, "Service", "Dies ist der Inhalt!"); initClip(mc_Kontakt, "Kontakt", "Dies ist der Inhalt!"); mc_Profil.onEnterFrame = function() { this.slideClip(80, 425, 3, 5, 0); } mc_History.onEnterFrame = function() { this.slideClip(80, 425, 3, 5); } mc_Service.onEnterFrame = function() { this.slideClip(80, 425, 3, 5); } mc_Kontakt.onEnterFrame = function() { this.slideClip(80, 425, 3, 5); }
Deine Vorgehensweise ist übrigens in sofern suboptimal, als dass Du auf jedem einzelnen Clip die ganze Zeit eine onEnterFrame-Methode laufen hast. Performanter wäre es, wenn Du die onEnterFrame-Methode in der Funktion "slideClip" anlegen würdest, und letzte nur aufrufen würdest, wenn sich der Status eines Clips ändert.
Gruß
.
-
21.05.07 12:34 #3
- Registriert seit
- Oct 2006
- Beiträge
- 15
Hallo Tobias,
vielen Dank für Deine Korrekturen und Deine Tips. Ich bin leider immer noch bei FlashMX hängen geblieben und habe mich nicht wirklich um die neuen Versionen gekümmert (ich setzte jetzt erst intensiv mit Flash auseinander). Werde in Zukunft auf die Groß-Kleinschreibung achten!
Der Code funktioniert super es sieht besser aus, als ich mir das vorgestellt habe.
Ich Danke Dir nochmals für Deine schnelle Hilfe
Viele Grüße
funkimattiGeändert von funkymatti (24.08.07 um 12:54 Uhr)
-
24.08.07 13:04 #4
- Registriert seit
- Oct 2006
- Beiträge
- 15
Hallo Tobias,
ich hatte leider bisher keine Gelegenheit das Thema abzuschliessen. Ich steige leider bei Deinem Script immer noch nicht ganz durch. Ich hätte noch zwei Fragen:
1.) wie kann ich anstatt die Filme zu entladen, bei "DragOut" vier andere Filme in die jeweiligen Pads laden? Dafür müsste ich eigentlich kein neues Array anlegen, oder?
Code :1 2
pads[i].onRollOut = pads[i].onDragOut = function() { this.scaleTo(0, 4, reArrange, unloadImg, true);
2.) Wie kommt es zu den weissen Rändern an den Pads? Ich finde kein AS in dem das deffiniert wird.
Ähnliche Themen
-
lwjgl / rotation / follow camera / OpenGL
Von hasta_jesaja im Forum JavaAntworten: 1Letzter Beitrag: 03.07.08, 19:49 -
Follow me
Von derpfaff im Forum Bildbearbeitung & IllustrationAntworten: 10Letzter Beitrag: 07.10.07, 13:17 -
Follow the Lines
Von c0heed im Forum FotografieAntworten: 3Letzter Beitrag: 26.09.06, 12:02 -
drag follow
Von cris-the-best im Forum Flash PlattformAntworten: 2Letzter Beitrag: 07.02.06, 15:47 -
Fehler: Element section content does not follow the DTD
Von guckemal im Forum XML TechnologienAntworten: 1Letzter Beitrag: 12.04.05, 22:09





Zitieren
Login





