Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 30-01-2006, 15:33   #1 (permalink)
Neuer User
 
Registriert seit: Dec 2005
Beiträge: 211
push.Button Zuweisung und Verlinkung

Habe hier folgendes Problem:
- Buttons werden über ein Array ge"push"ed
- Je nach Button soll eine andere Animation abgerufen werden oder ein anderes swf geladen oder oder oder, jedoch hapert es bei der Buttonzuweisung, d.h. wenn ich auf Button "Studios" klicke, soll die Animation "studios_animation" ablaufen oder "studios_ani.swf" geladen werden. Auf gut deutsch: Wie weiß der jeweilige Button wer er ist.

PHP-Code:
////////
//Menü//
////////
fscommand("allowScale"false);
stop();
buttons = new Array();
buttons.push({titel:"Services"});
buttons.push({titel:"Preview"});
buttons.push({titel:"Studios"});
buttons.push({titel:"Portfolio"});
buttons.push({titel:"Clients"});
buttons.push({titel:"Contact"});
buttons.push({titel:"Login"});
for (var 
0i<buttons.lengthi++) {
    
attachMovie("clip""mc"+ii);
    
this["mc"+i]._x 135;
    
this["mc"+i]._y this["mc"+i]._height*i+163;
    
this["mc"+i].txt_mc.txt buttons[i].titel;
    
this["mc"+i].details buttons[i].inhalt;
    
this["mc"+i].onRelease = function() {
        
this.play();
        
//"klick" + 1 -> klick7 (weil 7 Buttons) bei jedem (!) Button.
        
for var j0j<8j++){
        
trace("klick"+j);
        }
    }
        
/* TO DO:
        - onRollOver = BOLD
        - onRelease = gotoAndStop ODER ActionSript Lösung
        */
        
this._parent.ausgabe this.details;
    };
// Position, an welcher angeklickter Button wandert.
pos_top mc0._y;
pos = new Array();
for (var 
0i<buttons.lengthi++) {
    
pos[i] = this["mc"+i]._y;
}
//Nachrutschen der nicht angewählten Buttons
Array.prototype.sort = function(str) {
    for (var 
0j<this.lengthj++) {
        if (
this[j]<str) {
            
//Eine Stufe nach unten rutschen. Bei "mc0._height*2" um 2 Stufen.
            
this[j] = this[j]+mc0._height;
        }
    }
};
onEnterFrame = function () {
    for (var 
0i<pos.lengthi++) {
        if (
this["mc"+i]._currentframe == 16) {
            
pos.sort(pos[i]);
            
pos[i] = pos_top;
            
wahl_mc i;
            
this["mc"+i]._y pos_top;
        }
        if ((
wahl_mc != i) && (this["mc"+i]._y<pos[i])) {
            
this["mc"+i]._y this["mc"+i]._y+1;
            
this["mc"+i].gotoAndStop(1);
        }
    }
}; 
Vielen Dank im Voraus
thomas_as ist offline   Mit Zitat antworten
Alt 30-01-2006, 18:28   #2 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Gib jedem eine ID.
PHP-Code:
for (var 0i<buttons.lengthi++) 
{
    
attachMovie("clip""mc"+ii);
    
// : vergebe ID
    
this["mc"+i].ID i;
    
this["mc"+i]._x 135;
    
this["mc"+i]._y this["mc"+i]._height*i+163;
    
this["mc"+i].txt_mc.txt buttons[i].titel;
    
this["mc"+i].details buttons[i].inhalt;
    
this["mc"+i].onRelease = function() 
    {
        
trace(this+' mit ID= 'this.ID+' Array: '+buttons[this.ID]);
    }

__________________
:: Warum einfach, wenn's auch kompliziert geht! ::

Geändert von psyk (30-01-2006 um 19:04 Uhr)
psyk ist offline   Mit Zitat antworten
Alt 31-01-2006, 09:06   #3 (permalink)
Neuer User
 
Registriert seit: Dec 2005
Beiträge: 211
vielen Dank für die schnelle Antwort.
Habe deine Idee ausprobiert und sie funktioniert bedingt. D.h die Zuweisung funktioniert, jedoch bekomme ich das mit dem Animationsaufruf "a0" noch nicht hin. Entweder geht die Animation und der "Rundlauf" (die Positionierung der Buttons funktioniert nicht. Oder ich habe den "Rundlauf", aber keine Animation.

Beispiel: Klick auf Button: mc0 (Services) soll Animation "a0" auslösen. Klick auf Button "mc1" soll "a1" auslösen,...

Wieso wird bei this["mc"+i] kein Punkt "." benötigt?
thomas_as ist offline   Mit Zitat antworten
Alt 31-01-2006, 09:16   #4 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
was ist "a0", "a1", etc? Eine Funktion? Eine Bildmarkierung? Eine Variable?
Weil du auf alle Elemente in einem Objekt wie in einem Array zugreifen kannst. Und bei Arrays verwendest du ja auch keinen . !
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 31-01-2006, 09:29   #5 (permalink)
Neuer User
 
Registriert seit: Dec 2005
Beiträge: 211
Zitat:
Zitat von bamboocha
was ist "a0", "a1", etc? Eine Funktion? Eine Bildmarkierung? Eine Variable?
Weil du auf alle Elemente in einem Objekt wie in einem Array zugreifen kannst. Und bei Arrays verwendest du ja auch keinen . !
"a0" ist eine Bildmarkierung in einer separaten Bezeichnerebene. Je nach Buttonklick soll eine treffende Animation ablaufen, ein .swf geladen werden, etc. Diese Animation habe ich bislang per Hand gelöst bzw. die noch nicht erledigen habe ich vor per Hand zu animieren.

Danke für die einfache und klare Antwort mit dem Punkt.
thomas_as ist offline   Mit Zitat antworten
Alt 31-01-2006, 09:55   #6 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
Dann hast du mehrere Möglichkeiten!
Entweder löst du die entsprechende Aktion im entsprechend angesprungenen Bild aus... dann würde der Aufruf wie folgt aussehen:
PHP-Code:
for (var 0i<buttons.lengthi++) 
{
    
attachMovie("clip""mc"+ii);
    
// : vergebe ID
    
this["mc"+i].ID i;
    
this["mc"+i]._x 135;
    
this["mc"+i]._y this["mc"+i]._height*i+163;
    
this["mc"+i].txt_mc.txt buttons[i].titel;
    
this["mc"+i].details buttons[i].inhalt;
    
this["mc"+i].onRelease = function() 
    {
        
_root.wo.auch.immer.gotoAndPlay("a"+this.ID);
    }

Wenn du aber alles direkt ausführen willst, wirst du nicht um ne Funktion herum kommen!
PHP-Code:
for (var 0i<buttons.lengthi++) 
{
    
attachMovie("clip""mc"+ii);
    
// : vergebe ID
    
this["mc"+i].ID i;
    
this["mc"+i]._x 135;
    
this["mc"+i]._y this["mc"+i]._height*i+163;
    
this["mc"+i].txt_mc.txt buttons[i].titel;
    
this["mc"+i].details buttons[i].inhalt;
    
this["mc"+i].onRelease = function() 
    {
        
organzieIt(buttons[this.ID].typbuttons[this.ID].zielbuttons[this.ID].bezeichner);
    }
}
function 
organizeIt(typwohinwas) {
    switch(
typ) {
        case 
1:
            
gotoAndDo(wohinwas);
            break;
        case 
2:
            
loadSWF(wohinwas);
            break;
    }
}
function 
gotoAndDo(wohinwas) {
    
wohin.gotoAndPlay(was);
}
function 
loadSWF(wohinwas) {
    
wohin.loadMovie(was);

Dann müsstest du einfach dein buttons-Array entsprechend um die Werte "typ" (goto oder load), "ziel" (Sprung-/Ladeziel), "bezeichner" (Bildmarkierung/Ladeobjekt) erweitern.
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 31-01-2006, 13:47   #7 (permalink)
Neuer User
 
Registriert seit: Dec 2005
Beiträge: 211
Vielen Dank und schöne Grüße in die Schweiz.

Funktioniert perfekt
thomas_as 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 03:08 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele