• beyond tellerrand – play. Register Now!
Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash 8

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 03-01-2008, 21:54   #1 (permalink)
unomuse
 
Benutzerbild von muse
 
Registriert seit: Jan 2003
Ort: Im wunderschönen Hamburg
Beiträge: 117
Array bei mit for-Schleife generierten Buttons nutzen

Hejhej,

also, erstens; ich habe da so ein paar Menüpunkte, die mittels einer for-Schleife auf der Bühne positioniert werden und gleich über einen RollOver- sowie Release-Befehl verfügen.
Nun möchte ich natürlich, dass für jeden Button eine unterschiedliche function bei Release aufgerufen wird?

Hier kann man sich das ganze mal als Fla anschauen: http://www.d-fritz.de/aeweb_02ff.zip
Hier das Script:

PHP-Code:

menucount 
9;
menustartrotation 80;
menurotation 25;
menuitems = [];
//elasticzoomtime at RollOver
ezt 0.75;
//
menuholder createEmptyMovieClip("menuholder", -2);
menuholder._x Stage.width/2;
menuholder._y Stage.height;
//
for (var 0i<menucounti++) {
    var 
menuitem_a menuholder.createEmptyMovieClip("menuitem_a"+ii);
    
menuitem_a._rotation menustartrotation+i*menurotation;
    
menuitem_a._y = -250;
    var 
rm menuitem_a.attachMovie("rm"+i"menu"+ii+menucount);
    
rm._y 500;
    
rm._rotation = -menustartrotation-i*menurotation;
    
rm.onRollOver = function() {
        
//_root.selected = this;
        
new Tween(this"_xscale"Elastic.easeOutthis._xscalerm_ss+40ezttrue);
        new 
Tween(this"_yscale"Elastic.easeOutthis._yscalerm_ss+40ezttrue);
    };
    
rm.onRollOut = function() {
        
//_root.selected = this;
        
new Tween(this"_xscale"Elastic.easeOutthis._xscalerm_ssezttrue);
        new 
Tween(this"_yscale"Elastic.easeOutthis._yscalerm_ssezttrue);
    };
    
rm.onReleaseOutside rm.onRollOut;
    
menuitems.push(rm);
    
rm.onRelease = function() {
        
trace(this);
    };

Zweitens; ich hätte furchbar gerne, dass wenn man über eine Button rüberrollt und er größer wird, dass die drei jeweils benachbarten Buttons dem Angewählten (in der negativen Potenz) Platz machen. So wie bei dem Dock des Mac OS X nur eben nicht auf einer horizontalen Achse sondern halt eben im Kreis. Das ganze hatte i9ch in einer vorherigen Version bereits mit mehreren Tween-Klassen probiert, führte verständlicherweise aber zu erheblichen Performance-Verlusten.

Vieleicht hat ja jemand einen Tipp für mich.

Cheers!
__________________
Da kann ja jeder aus'm Wald kommen und sagen, dass er der Förster ist.
muse ist offline   Mit Zitat antworten
Alt 04-01-2008, 08:09   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
Nun möchte ich natürlich, dass für jeden Button eine unterschiedliche function bei Release aufgerufen wird?
Dann solltest du dir in der for-Schleife den Schleifenzähler merken und im Tweenstart berücksichtigen, bspw.:
PHP-Code:
for (var 0i<menucounti++) { 
   var 
menuitem_a menuholder.createEmptyMovieClip("menuitem_a"+ii);
   
menuitem_a._rotation menustartrotation+i*menurotation;
   
menuitem_a._y = -250;
   var 
rm menuitem_a.attachMovie("rm"+i"menu"i+menucount);//"menu" braucht keine fortlaufende Nummer, da es ja als einziger MC eingebettet ist
   
rm._y 500;
   
rm._rotation = -menustartrotation-i*menurotation
   
rm.ID i;//merken
   
rm.onRollOver = function() {
        
//_root.selected = this;
        
var merker _root["menuitem_a"+this.ID].menu;
        new 
Tween(merker"_xscale"Elastic.easeOutmerker._xscalerm_ss+40ezttrue);
        new 
Tween(merker"_yscale"Elastic.easeOutmerker._yscalerm_ss+40ezttrue);
    }; 

  Mit Zitat antworten
Alt 04-01-2008, 10:08   #3 (permalink)
relayit.de
 
Registriert seit: Sep 2001
Beiträge: 427
zu zweitens: ich seh da ehrlich gesagt keinen grossen unterschied, du nimmst anstatt der x-achse ja nur eine andere variable, naemlich rotation, oder irre ich?
__________________
hmmm.....
japanitrat ist offline   Mit Zitat antworten
Alt 08-01-2008, 21:36   #4 (permalink)
unomuse
 
Benutzerbild von muse
 
Registriert seit: Jan 2003
Ort: Im wunderschönen Hamburg
Beiträge: 117
Hejhej,

vielen Dank. Antwort kommt spät, aber hier ist sie:

Wie kann ich jetzt per Klick auf einen der Munüpunkte eine Function, die außerhalb der for-Schleife liegt aufrufen?
Und zwar für jeden Menüpunkt eine andere. Das wird mir dabei nicht ganz klar.

Das mit der Animation der benachbarten Buttons ist mir erstmal wurscht!

Wäre sehr dankbar für einen weiterführenden Tipp ;-)

Cheers!
__________________
Da kann ja jeder aus'm Wald kommen und sagen, dass er der Förster ist.

Geändert von muse (08-01-2008 um 21:37 Uhr)
muse ist offline   Mit Zitat antworten
Alt 09-01-2008, 08:10   #5 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
Wie kann ich jetzt per Klick auf einen der Munüpunkte eine Function, die außerhalb der for-Schleife liegt aufrufen?
Und zwar für jeden Menüpunkt eine andere.
Wieso für jeden eine andere? Nimm eine Hauptfunktion und übergib einen Parameter, den kannst du dann mit einer switch-case-Anweisung auswerten, bspw.:
PHP-Code:
for...
   
rm.ID i;//merken
   
rm.onRelease = function() { 
      
_root.menu(this.ID);
   }
...
}
function 
menu(wert){
   switch(
wert){
      case 
0:
         
//hier der Code
         
break;
      case 
1:
         
//hier der Code
         
break;
      
//etc.
   
}

  Mit Zitat antworten
Alt 09-01-2008, 22:50   #6 (permalink)
unomuse
 
Benutzerbild von muse
 
Registriert seit: Jan 2003
Ort: Im wunderschönen Hamburg
Beiträge: 117
Hejhej,

puh hätte ich irgendwie auch alleine drauf kommen können.
Vielen Dank für Deine Unterstützung.

Cheers!
__________________
Da kann ja jeder aus'm Wald kommen und sagen, dass er der Förster ist.
muse 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 04:18 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele