Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 09-08-2005, 22:19   #1 (permalink)
Neuer User
 
Benutzerbild von alexpetri
 
Registriert seit: Sep 2001
Ort: FrankfurtMain, Sondershausen
Beiträge: 710
akkordeon menü mit watch

Hallo, hab hier mal ein menü gebastelt
was eine art akkordeon menü darstellt,
allerdings mit variabler höhe,
mein problem ist jetzt noch, das ich bei dem
angeklickten button ich die farbe verändert hätte
z.b. von blau nach grün
nur wie mache ich das dynamisch?
müsste evtl in die moveme funktion rein

wenns fertig ist poste ich dann mal ein bsp.
für sonstige code verbesserungsvorschläge wäre ich auch sehr dankbar...
(z.b benutzen der easing equations)


ActionScript:
  1. function buildMenue(menue) {
  2.     o = new Object();
  3.     max = menue.length;
  4.     mc = _root.createEmptyMovieClip("myMenue", 100);
  5.     mc._x = 100;
  6.     mc._y = 100;
  7.         spacer = 10;
  8.     for (i=0; i<max; i++) {
  9.         btn = mc.attachMovie("testbtn", "button"+i, i);
  10.         btn._x = 0;
  11.         btn._y = i*(20+spacer);
  12.         trace(i*(20+spacer));
  13.         btn.i = i;
  14.         btn.nullPos = btn._y;
  15.         btn.nullH = 20;
  16.         btn.myH = 10*(random(8)+12);
  17.         btn.spacer = spacer;
  18.         btn.btnTxt.text = menue[i];
  19.         btn.onPress = function() {
  20.             o.aktu != this ? o.aktu=this : o.aktu=0;
  21.         };
  22.     }
  23.     o.watch('aktu', watcher);
  24. }
  25. function watcher(inst, alt, neu, irgendwas) {
  26.     diff = new Array();
  27.     hneu = 0;
  28.     for (i=0; i<=5; i++) {
  29.         mc = _root.myMenue["button"+i];
  30.         diff[i] = i*(mc.nullH+mc.spacer)+hneu;
  31.         if (i == neu.i) {
  32.             hneu = mc.myH-mc.nullH;
  33.         }
  34.         trace(diff[i]);
  35.     }
  36.     for (i=0; i<=5; i++) {
  37.         mc = _root.myMenue["button"+i];
  38.         if (i == neu.i) {
  39.             mc.moveme(diff[i], mc.myH);
  40.         } else {
  41.             mc.moveme(diff[i], mc.nullH);
  42.         }
  43.     }
  44.     return neu;
  45. }
  46. MovieClip.prototype.moveme = function(zielP, zielH) {
  47.     this.onEnterFrame = function() {
  48.         if (Math.round(this._y) != zielP || Math.round(this.main._height) != zielH) {
  49.             this._y += (-this._y+zielP)*.3;
  50.             this.main._height += (-this.main._height+zielH)*.3;
  51.         } else {
  52.             this._y = zielP;
  53.             this.main._height = zielH;
  54.             delete this.onEnterFrame;
  55.         }
  56.     };
  57. };
hier der init code
ActionScript:
  1. menue = new Array();
  2. menue[0] = "Game-Info";
  3. menue[1] = "Highscore";
  4. menue[2] = "Quiz";
  5. menue[3] = "Fitness";
  6. menue[4] = "E-Cards";
  7. menue[5] = "Service";
  8. buildMenue(menue);
  9. stop();
__________________
Talk to the hand, cause the head aint listening
alexpetri ist offline   Mit Zitat antworten
Alt 10-08-2005, 11:17   #2 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
aloha!

der aus der bibliothek attachte button ist ein movieclip?
den movieclip ein zweites frame verpassen, und bei beiden frames ein "stop();" schreiben;
im zweiten frame änderst Du die Hintergrundfarbe;
ActionScript:
  1. btn.onPress = function() {
  2.           o.aktu != this ? this.gotoAndStop(2) && o.aktu.gotoAndStop(1) :0;
  3.           o.aktu != this ? o.aktu=this : o.aktu=0;
  4.  
  5.                 };
sollte ich richtig erwischt haben?
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary
andretti ist offline   Mit Zitat antworten
Alt 10-08-2005, 11:42   #3 (permalink)
Neuer User
 
Benutzerbild von alexpetri
 
Registriert seit: Sep 2001
Ort: FrankfurtMain, Sondershausen
Beiträge: 710
naja danke erstmal
wollte das eigentlich dynamisch tweenen
also als fkt beschreiben. alles schön flüssig
__________________
Talk to the hand, cause the head aint listening
alexpetri ist offline   Mit Zitat antworten
Alt 10-08-2005, 11:48   #4 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
also einen dynamischen farbwechsel?
überblenden quasi?
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary
andretti ist offline   Mit Zitat antworten
Alt 10-08-2005, 11:53   #5 (permalink)
Neuer User
 
Benutzerbild von alexpetri
 
Registriert seit: Sep 2001
Ort: FrankfurtMain, Sondershausen
Beiträge: 710
genau, wenn du dir die moveme fkt anschaust.

dort soll quasi analog zu den höhen und positions funktionen
eine funktion für den farbwechsel rein.
__________________
Talk to the hand, cause the head aint listening
alexpetri ist offline   Mit Zitat antworten
Alt 10-08-2005, 12:30   #6 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
in dem button einen movieclip drüber machen;
den im script mal auf _alpha = 0; setzen;
und dann siehe script;
ActionScript:
  1. _global.active;//variabel zum auslesen, ob es  aktiv ist
  2. MovieClip.prototype.moveme = function(zielP, zielH) {
  3.     this.onEnterFrame = function() {
  4.         if (Math.round(this._y) != zielP || Math.round(this.main._height) != zielH) {
  5.             this._y += (-this._y+zielP)*.3;
  6.             this.main._height += (-this.main._height+zielH)*.3;
  7.         } else {
  8.             this._y = zielP;
  9.             this.main._height = zielH;
  10.             delete this.onEnterFrame;
  11.         }
  12.     };
  13. //ab hier dann die fade geschichte
  14.     this.background_mc._alpha = 0;
  15.     this.onRelease = function() {
  16.         if (this != _global.active) {
  17.             _global.active.background_mc.onEnterFrame = function() {
  18.                 this._alpha>=0 ? this._alpha -= 10 : 0;
  19.             };
  20.             this.background_mc.onEnterFrame = function() {
  21.                 this._alpha<=100 ? this._alpha += 10 : 0;
  22.             };
  23.         }_global.active = this;
  24.     };
  25. };
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary
andretti 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 06:29 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele