Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 30-03-2004, 15:15   #1 (permalink)
Flash & TYPO3
 
Registriert seit: Oct 2003
Ort: Bayern
Beiträge: 2.700
Menü nachbauen!

Hallo,

schaut euch bitte folgendes Menü an.

Hat irgendwer eine .fla, die das gleiche macht? Mir ist das nämlich zu schwer und ich hätte gerne bissl was leichteres!

Oder vielleicht jemand Ansätze?
__________________
Mediendesign-Student
johanness ist offline   Mit Zitat antworten
Alt 30-03-2004, 15:16   #2 (permalink)
Neuer User
 
Registriert seit: Aug 2003
Ort: Bamberg
Beiträge: 876
link fehlt
wangman ist offline   Mit Zitat antworten
Alt 30-03-2004, 15:20   #3 (permalink)
Flash & TYPO3
 
Registriert seit: Oct 2003
Ort: Bayern
Beiträge: 2.700
Sorry
Angehängte Dateien
Dateityp: zip strech dyn menü .zip (6,2 KB, 52x aufgerufen)
__________________
Mediendesign-Student
johanness ist offline   Mit Zitat antworten
Alt 30-03-2004, 15:23   #4 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Gehts auch gezippt
gesittet ist nich so Doll
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 30-03-2004, 15:26   #5 (permalink)
Flash & TYPO3
 
Registriert seit: Oct 2003
Ort: Bayern
Beiträge: 2.700
Hier.
Angehängte Dateien
Dateityp: zip menu.zip (10,0 KB, 31x aufgerufen)
__________________
Mediendesign-Student
johanness ist offline   Mit Zitat antworten
Alt 30-03-2004, 16:11   #6 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
Da würde ich ein Array anlegen, in dem dann die einzelnen MCs referenziert werden.

Also irgendwie die Daten laden, dann z.B. splitten, für jeden Eintrag einen MC erstellen, und in meinem menueArray eine referenz darauf erstellen.

Am besten, du erstellst eine Klasse "StrechingButton", und mit Object.registerClass verbindest du dann ein Symbol aus der Bib damit.

Allerdings brauchst du auch noch eine zentrale Steuerung, damit du die anderen buttons ansteuern kannst, also auch noch gleich eine Klasse "StrechingMenue"...
Janoscharlipp ist offline   Mit Zitat antworten
Alt 30-03-2004, 16:20   #7 (permalink)
Flash & TYPO3
 
Registriert seit: Oct 2003
Ort: Bayern
Beiträge: 2.700
Ich hab jetzt selber schon mit einem Beispiel von Rusty rum gebastelt.
Jetzt ist gas ganz eigetnlich "nur" noch etwas ungenau und die Buttons müssten noch passen verrutscht werden!

Vielleicht hat jemand Ideen?
ActionScript:
  1. mcs = ["mc1", "mc2", "mc3", "mc4", "mc5"];
  2.  
  3. diff = 50; // Hier die Differenz, die der Button scaliert werden soll, festlegen
  4.  
  5. ausgang = 80; // ausgangswert gesetzt nach Breite der Buttons
  6. maximum = ausgang + diff;
  7. minimum = ausgang - (maximum - ausgang)/mcs.length;
  8. trace("Als Minimum wurde " add minimum add " errechnet!");
  9.  
  10. MovieClip.prototype.make = function(zb) {
  11.     this.onEnterFrame = function() {
  12.        
  13.         this._width += (zb-Math.round(this._width)) / 3;
  14.  
  15.         if (Math.round(this._width) == zb) {
  16.             delete this.onEnterFrame;
  17.         }
  18.        
  19.     };
  20. };
  21. for (i=0; i<mcs.length; i++) {
  22.    
  23.     this[mcs[i]].onRollOver = function() {
  24.        
  25.         for (var j = 0; j<mcs.length; j++) {
  26.             if(this._parent[mcs[j]] != this) {
  27.                 this._parent[mcs[j]].make(minimum);
  28.             } else {
  29.                 this.make(maximum);
  30.             }
  31.         }
  32.     };
  33.    
  34.     this[mcs[i]].onRollOut = function() {
  35.         for (var j = 0; j<mcs.length; j++) {
  36.             this._parent[mcs[j]].make(ausgang);
  37.         }
  38.     };
  39.    
  40. }
Angehängte Dateien
Dateityp: zip menu.zip (3,3 KB, 17x aufgerufen)
__________________
Mediendesign-Student

Geändert von johanness (30-03-2004 um 16:23 Uhr)
johanness ist offline   Mit Zitat antworten
Alt 31-03-2004, 05:30   #8 (permalink)
Flash & TYPO3
 
Registriert seit: Oct 2003
Ort: Bayern
Beiträge: 2.700
Kann dieses Script keiner so erweitern, dass die Buttons passend nach links bzw. rechts verschoben werden?
__________________
Mediendesign-Student
johanness ist offline   Mit Zitat antworten
Alt 31-03-2004, 14:22   #9 (permalink)
Flash & TYPO3
 
Registriert seit: Oct 2003
Ort: Bayern
Beiträge: 2.700
Hallo,

ich habe jetzt mal weiter gemacht:

ActionScript:
  1. mcs = ["mc1", "mc2", "mc3", "mc4", "mc5"];
  2.  
  3. xEinzug = 50.5;     // Hier festlegen, wie weit der erste Button vom Rand entfernt ist
  4. diff = 50;    // Hier die Differenz, die der Button scaliert werden soll, festlegen
  5. ausgang = 80;     // Ausgangswert gesetzt nach existierende Breite der Buttons
  6.  
  7. maximum = ausgang + diff;
  8. minimum = ausgang - (maximum - ausgang)/mcs.length;
  9.  
  10.  
  11. // ---------------------- RollOver-Effekte festlegen ------------------------ //
  12. for (i=0; i<mcs.length; i++) {
  13.  
  14.  
  15.     this[mcs[i]].used = i;              // Dem RollOver-Button einen Index geben (!)
  16.    
  17.  
  18.     this[mcs[i]].onRollOver = function() {      // Bei RollOver
  19.  
  20.         for (var j = 0; j<mcs.length; j++) {        // Alle MCs ändern
  21.             this.notused = j;                  // Den Buttons einen Index geben
  22.             // this.used  =  Wird benutzt
  23.             // this.notused  =  Wird nicht benutzt
  24.  
  25.            
  26.             if(this._parent[mcs[j]] != this) {
  27.                
  28.                 if(this.notused < this.used) {
  29.                     trace("Ich (mc" add this.notused add ") bin KLEINER als der benutzte Button (mc" add this.used add ")");
  30.                     xPos(this.used, this.notused);
  31.                 } else {
  32.                     trace("Ich (mc" add this.notused add ") bin GRÖSSER als der benutzte Button (mc" add this.used add ")");
  33.                     xPos(this.used, this.notused);
  34.                 }
  35.                
  36.                
  37.                 this._parent[mcs[j]].OverScal(minimum, this.notused);   // Wenn nicht der RollOver-Btn
  38.             } else {
  39.                 this.OverScal(maximum, this.notused);               // Wenn der RollOver-Btn
  40.             }
  41.            
  42.         }
  43.        
  44.     };
  45.    
  46.     this[mcs[i]].onRollOut = function() {         // Bei RollOut
  47.         for (var j = 0; j<mcs.length; j++) {        // Alle MCs müssen geändert werden
  48.             this.i = j;        // Den Button einen Index geben             
  49.             this._parent[mcs[j]].OutScal(this.i);
  50.         }
  51.     };
  52.    
  53. }
  54.  
  55.  
  56.  
  57.  
  58. xPos = function(used, notused) {
  59.    
  60.     partDiff = (maximum - ausgang)/mcs.length;
  61.        
  62.     if(notused < used) {
  63.        
  64.         verschub = partDiff + (2*partDiff*notused);
  65.        
  66.         trace(notused add " kleiner als " add used add " >>> Nach links bewegen!");
  67.         trace("### Nach Links um " add verschub);
  68.     }
  69. };
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76. // ---------------------- Prototype zum Scalieren und verschieben ------------------------ //
  77. MovieClip.prototype.OverScal = function(zb, indx) {
  78.     this.onEnterFrame = function() {
  79.        
  80.         this._width += (zb-Math.round(this._width)) / 3;    // Dynamisch groß/klein Scalieren
  81.         if (Math.round(this._width) == zb) {                // Wenn ca. fertig groß/klein scaliert
  82.             delete this.onEnterFrame;
  83.         }
  84.        
  85.     };
  86. };
  87.  
  88.  
  89. MovieClip.prototype.OutScal = function(indx) {
  90.     this.onEnterFrame = function() {
  91.         this._width += (ausgang-Math.round(this._width)) / 2;   // Dynamisch auf Ausgang scalieren
  92.         if (Math.round(this._width) == ausgang) {      // Wenn ca. fertig auf Ausgang scaliert
  93.             this._width = ausgang;            // Genau auf die Ausganggröße bringen
  94.             this._x = indx*ausgang + xEinzug;         // wie anfangs ausrichten
  95.             delete this.onEnterFrame;
  96.         }
  97.     };
  98. };



Vielleicht hätte ja wer die Güte sich das mal anzusehen!? So müsste es doch gehen. Fügt das Script ein und es wird getraced wie weit die Buttons verschoben werden müssten!
Angehängte Dateien
Dateityp: zip menu_neu1.zip (4,8 KB, 14x aufgerufen)
__________________
Mediendesign-Student
johanness ist offline   Mit Zitat antworten
Alt 31-03-2004, 15:04   #10 (permalink)
Flash & TYPO3
 
Registriert seit: Oct 2003
Ort: Bayern
Beiträge: 2.700
Hallo,

der Stand ist jetzt folgender:
- Ich brauche "nur" noch die Funktion, die meine Buttons zur richtigen Zeit zur errechnetten Stelle schiebt.
- Es wird getraced, wie groß dieser "Verschub-Wert" ist.

In die xPosNotUsed-Function müsste man meiner Meinung nach den Code in einer oEF schreiben!?



Wenn sich das bitte einer anschaut!


ActionScript:
  1. mcs = ["mc1", "mc2", "mc3", "mc4", "mc5"];
  2.  
  3. xEinzug = 50.5;     // Hier festlegen, wie weit der erste Button vom Rand entfernt ist
  4. diff = 50;    // Hier die Differenz, die der Button scaliert werden soll, festlegen
  5. ausgang = 80;     // Ausgangswert gesetzt nach existierende Breite der Buttons
  6.  
  7. maximum = ausgang + diff;
  8. minimum = ausgang - (maximum - ausgang)/mcs.length;
  9.  
  10.  
  11. // ---------------------- RollOver-Effekte festlegen ------------------------ //
  12. for (i=0; i<mcs.length; i++) {
  13.  
  14.  
  15.     this[mcs[i]].used = i;              // Dem RollOver-Button einen Index geben (!)
  16.    
  17.  
  18.     this[mcs[i]].onRollOver = function() {      // Bei RollOver
  19.  
  20.         for (var j = 0; j<mcs.length; j++) {        // Alle MCs ändern
  21.             this.notused = j;                  // Den Buttons einen Index geben
  22.             // this.used  =  Wird benutzt
  23.             // this.notused  =  Wird nicht benutzt
  24.  
  25.            
  26.             if(this._parent[mcs[j]] != this) {              // Wenn nicht der RollOber-Btn
  27.                 xPosNotused(this.used, this.notused);               // Bewegen
  28.                 this._parent[mcs[j]].OverScal(minimum, this.notused);   // Scalieren (>kleiner)
  29.             } else {                                        // Wenn der RollOver-Btn
  30.                 this.OverScal(maximum, this.notused);               // Scalieren (>größer)
  31.             }
  32.            
  33.         }
  34.        
  35.     };
  36.    
  37.     this[mcs[i]].onRollOut = function() {         // Bei RollOut
  38.         for (var j = 0; j<mcs.length; j++) {        // Alle MCs müssen geändert werden
  39.             this.i = j;        // Den Button einen Index geben             
  40.             this._parent[mcs[j]].OutScal(this.i);
  41.         }
  42.     };
  43.    
  44. }
  45.  
  46.  
  47.  
  48.  
  49. xPosNotused = function(used, notused) {
  50.    
  51.     partDiff = (maximum - ausgang)/mcs.length;
  52.  
  53.     if(notused < used) {       
  54.         verschub = partDiff + (2*partDiff*notused);  
  55.         trace("mc" add notused add " kleiner als mc" add used add " >>> Nach LINKS  bewegen um " add verschub);
  56.     } else {
  57.         verschub = partDiff + (2*partDiff*(4-notused));  
  58.         trace("mc" add notused add " größer  als mc" add used add " >>> Nach RECHTS bewegen um " add verschub);
  59.     }
  60.    
  61.    
  62.  
  63.  
  64.  
  65.    
  66. };
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73. // ---------------------- Prototype zum Scalieren und verschieben ------------------------ //
  74. MovieClip.prototype.OverScal = function(zb, indx) {
  75.     this.onEnterFrame = function() {
  76.        
  77.         this._width += (zb-Math.round(this._width)) / 3;    // Dynamisch groß/klein Scalieren
  78.         if (Math.round(this._width) == zb) {                // Wenn ca. fertig groß/klein scaliert
  79.             delete this.onEnterFrame;
  80.         }
  81.        
  82.     };
  83. };
  84.  
  85.  
  86. MovieClip.prototype.OutScal = function(indx) {
  87.     this.onEnterFrame = function() {
  88.         this._width += (ausgang-Math.round(this._width)) / 3;   // Dynamisch auf Ausgang scalieren
  89.         if (Math.round(this._width) == ausgang) {      // Wenn ca. fertig auf Ausgang scaliert
  90.             this._width = ausgang;            // Genau auf die Ausganggröße bringen
  91.             //this._x = indx*ausgang + xEinzug;   // wie anfangs ausrichten
  92.             delete this.onEnterFrame;
  93.         }
  94.     };
  95. };
Angehängte Dateien
Dateityp: zip menu_neu2.zip (4,4 KB, 11x aufgerufen)
__________________
Mediendesign-Student
johanness ist offline   Mit Zitat antworten
Alt 31-03-2004, 17:28   #11 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Ich und der bloba haben mal was zusammengenagelt!!
Hehe bin imo bisschen durch den Wind!!
net erschrecken
ActionScript:
  1. mcs = ["mc1", "mc2", "mc3", "mc4", "mc5"];
  2. kord = [];
  3. MovieClip.prototype.make = function(koordX, widthX, speed) {
  4.     if (this._x != koordX || this._width != widthX) {
  5.         this.onEnterFrame = function() {
  6.             var deltaX = this._x-koordX;
  7.             var gamaX = this._width-widthX;
  8.             var dist = Math.sqrt(deltaX*deltaX);
  9.             var dist2 = Math.sqrt(gamaX*gamaX);
  10.             var moveX = speed*(deltaX/dist);
  11.             var move2X = speed*(gamaX/dist2);
  12.             if (speed>=dist && speed>=dist2) {
  13.                 this._x = koordX;
  14.                 this._width = widthX;
  15.                 delete this.onEnterFrame;
  16.             } else {
  17.                 this._x -= moveX;
  18.                 this._width -= move2X;
  19.             }
  20.         };
  21.     }
  22. };
  23. for (var i = 0; i<mcs.length; i++) {
  24.     kord.push(this[mcs[i]]._x);
  25.     this[mcs[i]].onRollOver = function() {
  26.         w = this._name.slice(2, 3);
  27.         temp = mcs.slice(w, mcs.length);
  28.         for (var j = w; j<mcs.length; j++) {
  29.             this._parent[mcs[j]] != this ? this._parent[mcs[j]].make(kord[j]+40, 80, 5) : this.make(kord[j], 120, 5);
  30.         }
  31.         for (var j = 0; j<w; j++) {
  32.             this._parent[mcs[j]] != this ? this._parent[mcs[j]].make(kord[j]-40, 80, 5) : this.make(kord[j], 120, 5);
  33.         }
  34.     };
  35.     this[mcs[i]].onRollOut = function() {
  36.         for (var j = 0; j<mcs.length; j++) {
  37.             this._parent[mcs[j]].make(kord[j], 80, 5);
  38.         }
  39.     };
  40. }
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 31-03-2004, 18:26   #12 (permalink)
Flash & TYPO3
 
Registriert seit: Oct 2003
Ort: Bayern
Beiträge: 2.700
Hey, danke ihr zwei! Das ist schon mal mehr das was ich suche. Ist nur noch das Problem, dass bei euerer Variante die "nicht benutzten" Buttons zwar schon verschoben werden.
Aber ich fänd's gut, wenn alle fünf buttons stehts "zusammen" sind.

Meinst, ihr bekommt das noch hin? :-) :-)

DANKE


[Eidth] PS: Wenn das mal funzt, kann man es fast als [Stuff] durchgehen lassen! [/Edith]
__________________
Mediendesign-Student

Geändert von johanness (31-03-2004 um 18:28 Uhr)
johanness ist offline   Mit Zitat antworten
Alt 31-03-2004, 18:55   #13 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
so hängen seh zusamme!!
zwar nicht haargenau aber es geht!!
Angehängte Dateien
Dateityp: zip buttons2.zip (3,7 KB, 28x aufgerufen)
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 31-03-2004, 21:20   #14 (permalink)
Flash & TYPO3
 
Registriert seit: Oct 2003
Ort: Bayern
Beiträge: 2.700
Danke ist echt cool!
Aber sie überschneiden sich noch recht oft...
Werd mir am Freitag oder Samstag mal meine Version nochmal ansehen und vielleicht verbessern! theoretisch müsste man doch eigentlich wirklich nur die Buttons noch um die schon errechneten Werte verschieben, oder? Die stimmen ja eigentlich! Aber der Button, über den man geht, bereitet mir noch Kopfzerbrechen...
__________________
Mediendesign-Student
johanness ist offline   Mit Zitat antworten
Alt 31-03-2004, 21:23   #15 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
da ist halt immer diese verzögerung drinne!!
des vergrößern dauert halt längr wie die einfache verschiebung der Buttons!!
Aber Du wirst des schon hinbekommen!1
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 21:51 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele