Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 14-01-2005, 09:00   #1 (permalink)
Neuer User
 
Registriert seit: Mar 2003
Beiträge: 46
Funktionen dynamisch aufrufen

Guten morgen,

habe auf der Bühne mehrere dynamisch generierte Buttons. Jeder Button hat eine Nummer. Bei on(press) soll jeder eine andere Funktion aufrufen. Mein Ansatz war es die Funktionsnamen in einem Array zu speichern und dann so aufzurufen:

PHP-Code:
myArray = new Array("test1()","test2()","test3()")

butt1.onPress=function()
{
myArray[this.num]
}

butt2.onPress=function()
{
myArray[this.num]

Das haut aber irgendwie nicht hin. Hat jemand vielleicht eine Idee, wie man dynamisch, Buttons eine Funktion zuweisen kann???

Thx,

---------------
ElectroCunt
---------------
ElectroCunt ist offline   Mit Zitat antworten
Alt 14-01-2005, 09:34   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
ActionScript:
  1. var buttonzahl = 2;
  2. for(var i=1;i<=buttonzahl;i++){
  3.     _level0["butt"+i].ID = i;//jedem Button eine ID zuweisen
  4. }
  5. this.butt1.onPress = this.butt2.onPress = function(){
  6.    _level0.test(this.ID);//die ID jetzt als Parameter für den Funktionsaufruf nehmen
  7. }
  8. function test(nr){
  9.    trace("nr="+nr);//einfach mal im Testmodus ausgeben lassen
  10. }
  Mit Zitat antworten
Alt 14-01-2005, 10:00   #3 (permalink)
fly, you fools!
 
Registriert seit: Jun 2003
Ort: Oldenburg
Beiträge: 131
ich wüsste nicht, dass man funktionen wie beispielsweise variablen mit eval(var) aufrufen kann. vielleicht ist folgendes ein lösungsansatz:

PHP-Code:
//
var anzButtons 2;
for (var 
1i<=anzButtonsi++) {
    var 
obj _root["butt"+i];
    
obj.num i;
    
obj.onPress = function() {
        
switchMe(this.num);
    };
}
//
function switchMe(switchNum) {
    switch (
switchNum) {
    case 
:
        
test1();
        break;
    case 
:
        
test2();
        break;
    }
}
//
function test1() {
    
trace("function 1");
}
function 
test2() {
    
trace("function 2");

|H|K| ist offline   Mit Zitat antworten
Alt 14-01-2005, 10:06   #4 (permalink)
Neuer User
 
Registriert seit: Mar 2003
Beiträge: 46
@ agedoubleju:
Ich will ja nicht die Button ID als Parameter übergeben, sondern der Button soll eine bestimmte Funktion aufrufen und nicht nur wie bei Dir die test().

@|H|K|:
Hatte ich auch schon, aber "case" ist immer viel zu viel schreibarbeit und sehr unflexibel. Irgendwie mag ich "case" nicht


Gibts da nix anderes??

---------------
ElectroCunt
---------------
ElectroCunt ist offline   Mit Zitat antworten
Alt 14-01-2005, 10:35   #5 (permalink)
fly, you fools!
 
Registriert seit: Jun 2003
Ort: Oldenburg
Beiträge: 131
Zitat:
Zitat von ElectroCunt
Gibts da nix anderes??
ja, doch.

PHP-Code:
myArray = new Array("test1""test2""test3");
anzButtons 2;
for (var 
1i<=anzButtonsi++) {
    var 
obj _root["butt"+i];
    
obj.num i-1;
    
obj.onPress = function() {
        
_root[myArray[this.num]]();
    };
}
function 
test1() {
    
trace("function 1");
}
function 
test2() {
    
trace("function 2");

|H|K| ist offline   Mit Zitat antworten
Alt 14-01-2005, 11:08   #6 (permalink)
Neuer User
 
Registriert seit: Mar 2003
Beiträge: 46
yop, sehr geil, das ist genau das was ich brauche. Thx.

---------------
ElectroCunt
---------------
ElectroCunt 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 13:50 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele