Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18-08-2005, 22:36   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2004
Ort: Hamburg
Beiträge: 11
function mit Variable aufrufen

Hallo! Wohl eine Newbiefrage oder ein Fatalfehler...

Möchte Gerne eine eine function aufrufen und diesen Aufruf mit einer Variable kombinieren.

ActionScript:
  1. on (release) {
  2.     MeineFunktion4();
  3. }

...die Zahl "4" wiederrum kommt aus einer Variable, die "f_aktiv" heißt.

also sowas in der Art:

ActionScript:
  1. on (release) {
  2.     MeineFunktion+f_aktiv();
  3. }

... geht aber nich.

Und jetzt frag ich mich ob es an der falschen Syntax liegt oder ob man das total anders löst?

Ach ja, ich versuche mich in AS2. Falls das in diesem Fall was zu bedeuten hat.

Tausend-Dank
stv-g ist offline   Mit Zitat antworten
Alt 18-08-2005, 22:45   #2 (permalink)
Level up
 
Benutzerbild von Alois
 
Registriert seit: Jun 2001
Ort: Bocholt
Beiträge: 4.155
naja vermutlich willst Du sowas haben:
ActionScript:
  1. function malFuenf(produkt){
  2. return(produkt*5);
  3. };
  4. //funktion aufrufen
  5. trace(malFuenf(4));
  6. x=7;
  7. trace(malFuenf(x));

Gruß

Alois
__________________
-Spuckt mir auf den Stuhl, ich will im Grünen sitzen-
Alois ist offline   Mit Zitat antworten
Alt 18-08-2005, 22:54   #3 (permalink)
Neuer User
 
Registriert seit: Jul 2004
Ort: Hamburg
Beiträge: 11
ich glaub nich...

ich möchte mit dieser Zahl/Variable nicht rechnen. Mein Varibale könnte also auch A - B oder C beinhalten. Letztlich soll nur die Funktion ausgeführt werden, die in Bezug zur Variable steht.
Also: Wenn meine Varibable = "B" ist, soll die functionB() ausgeführt werden; usw.
stv-g ist offline   Mit Zitat antworten
Alt 18-08-2005, 23:05   #4 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 644
So klapt es
ActionScript:
  1. function bla1(){
  2.     trace("1");
  3. }
  4. function bla2(){
  5.     trace("2");
  6. }
  7. i = 2;
  8. _root["bla"+i]();
jonny-noob ist offline   Mit Zitat antworten
Alt 18-08-2005, 23:09   #5 (permalink)
Level up
 
Benutzerbild von Alois
 
Registriert seit: Jun 2001
Ort: Bocholt
Beiträge: 4.155
...ein wenig Mitdenken ist erlaubt:
ActionScript:
  1. function aOderB(meinWert){
  2. if(meinWert=="a")return("a aufgerufen");
  3. if(meinWert=="b")return("b aufgerufen");
  4. return ("Wert nicht a oder b sondern: "+meinWert);
  5. }
  6. //Test
  7. trace(aOderB("a"));
  8. trace(aOderB("b"));
  9. trace(aOderB("x"));
__________________
-Spuckt mir auf den Stuhl, ich will im Grünen sitzen-
Alois ist offline   Mit Zitat antworten
Alt 18-08-2005, 23:12   #6 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 644
Sollte das jetzt an mich gerichtet sein?
Ich hab ihm nur gegeben was er wollte...
jonny-noob ist offline   Mit Zitat antworten
Alt 18-08-2005, 23:28   #7 (permalink)
Level up
 
Benutzerbild von Alois
 
Registriert seit: Jun 2001
Ort: Bocholt
Beiträge: 4.155
sorry johnny-noob..., hatte Dein posting vorher noch nicht gelesen ,
...im übrigen eine durchaus 'gute Lösung' ich halte es nur für höchst unwahrscheinlich, daß stv-g das so wirklich braucht
...ich denke eher, daß stv-g seine Funktionen flexibler gestalten sollte, aber das ist halt nur 'Spekulation'...
__________________
-Spuckt mir auf den Stuhl, ich will im Grünen sitzen-

Geändert von Alois (18-08-2005 um 23:33 Uhr)
Alois ist offline   Mit Zitat antworten
Alt 19-08-2005, 00:46   #8 (permalink)
:Void
 
Benutzerbild von janoshnosh
 
Registriert seit: Jun 2005
Ort: börlin
Beiträge: 931
@alois: glaube, dass stv-g genau das brauchte

@jonny-noob:
ich klinke mich mal ein, denn das ist etwas, was ich viel benutze, aber noch nicht 100% herr der sache bin .

und zwar bei dem fall, wenn ich z.b. kein _root verwenden kann also nicht
_root[varA+''+varB] = nischt;
schreiben kann!? es gibt so fälle, da geht weder this, _root, _parent.... wenn man einfach nichts hat, um vor [varA+''+varB] zu schreiben?

[varA+''+varB] = nischt;
geht nicht, wie viele andere dinge die ich ausprobiert habe.
gibts da ne möglichkeit?

hoffe das war diesmal verständlicher (als bei meinen bisherigen vergeblichen versuchen, das herauszubekommen )

greets janosch
janoshnosh ist offline   Mit Zitat antworten
Alt 19-08-2005, 03:33   #9 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 644
Hm, mir wäre kein fall bekannt wo man nichts von dennen benutzen kann, hast du ein bsp. ? Da würde es einfacher machen dir zu helfen
jonny-noob ist offline   Mit Zitat antworten
Alt 19-08-2005, 07:24   #10 (permalink)
:Void
 
Benutzerbild von janoshnosh
 
Registriert seit: Jun 2005
Ort: börlin
Beiträge: 931
hi,
stimmt schon, _global kann man immer benutzen, will ich nur oft einfach nicht. in interval funktionen, wenn die funktion direkt mit der interval erklürung geschrieben wird, gibt es oft kein "this" (
ActionScript:
  1. var asdf = setInterval(function () {
  2. trace(this);
  3. var myVar;
  4. }, 100);
) dies wäre so ein interval, wenn ich keine globale variable deklarieren kann, weil das script gleichzeitig beliebig oft aufgerufen werden kann. var ist überhaupt ein gutes beispiel dafür:
ActionScript:
  1. function test () {
  2.     var myVar = 5;
  3.     //hier sollte eine variable erstellt werden, die myVar_5 heißt
  4.     var ['myVar_'+myVar] = true;
  5. return myVar_5;
  6. }
  7. trace(test());

alternativvorschläge werden nicht akzeptiert ! es muss da doch ne möglichkeit geben!?

gruß janosch
janoshnosh ist offline   Mit Zitat antworten
Alt 19-08-2005, 07:56   #11 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
aloha!
ich weiß mal wieder net, ob ich das überhaupt verstanden habe:
ActionScript:
  1. function test() {
  2.     var myVar = 5;
  3.     var mc = this;
  4.     //hier sollte eine variable erstellt werden, die myVar_5 heißt
  5.     mc['myVar_'+myVar] = true;
  6.     return myVar_5;
  7. }
  8. trace(test());
  9. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  10. var x = this;
  11. var asdf = setInterval(function () {
  12.         trace(x);
  13.         var myVar;
  14. }, 100);
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary

Geändert von andretti (19-08-2005 um 09:53 Uhr)
andretti ist offline   Mit Zitat antworten
Alt 19-08-2005, 12:47   #12 (permalink)
Level up
 
Benutzerbild von Alois
 
Registriert seit: Jun 2001
Ort: Bocholt
Beiträge: 4.155
nun gut, warum ich meine, daß stv-g das so zwar gebrauchen kann, es anders aber vermutlich besser gebrauchen kann:
[hochspekulativ]ich denke stv-g scriptet so in der Art:
ActionScript:
  1. for(var i=0;i<4;i++){
  2.     var myMc=this.attachMovie("vorlage","mc"+i,i+4,{_x:80,_y:i*20+10});
  3.     var myButton=this.attachMovie("button","button"+i,i,{_x:30,_y:i*20+10});
  4.     myButton.tf.text="btn "+i;
  5.     myButton.i=i;
  6.     myButton.onRelease=function(){
  7.         this._parent["myFunc"+this.i]();
  8.     }
  9. }
  10. myFunc0=function(){
  11.     mc0._x+=20;
  12. }
  13. myFunc1=function(){
  14.     mc1._x+=20;
  15. }
  16. myFunc2=function(){
  17.     mc2._x+=20;
  18. }
  19. myFunc3=function(){
  20.     mc3._x+=20;
  21. }
naja, funktioniert.... aber wenn er seine Funktionen etwas flexibler gestaltet, dann gehts halt mit weniger Code:
ActionScript:
  1. for(var i=0;i<4;i++){
  2.     var myMc=this.attachMovie("vorlage","mc"+i,i+4,{_x:80,_y:i*20+10});
  3.     var myButton=this.attachMovie("button","button"+i,i,{_x:30,_y:i*20+10});
  4.     myButton.tf.text="btn "+i;
  5.     myButton.mc=myMc;
  6.     myButton.onRelease=function(){
  7.         this._parent.myFunc(this.mc);
  8.     }
  9. }
  10. myFunc=function(mc){
  11.     mc._x+=20;
  12. }
[/hochspekulativ]
__________________
-Spuckt mir auf den Stuhl, ich will im Grünen sitzen-
Alois ist offline   Mit Zitat antworten
Alt 19-08-2005, 12:56   #13 (permalink)
:Void
 
Benutzerbild von janoshnosh
 
Registriert seit: Jun 2005
Ort: börlin
Beiträge: 931
[ueberzeugt]ja hast recht, sieht gut aus! [/ueberzeugt]
janoshnosh ist offline   Mit Zitat antworten
Alt 19-08-2005, 18:54   #14 (permalink)
Neuer User
 
Registriert seit: Jul 2004
Ort: Hamburg
Beiträge: 11
Zitat:
Zitat von jonny-noob
So klapt es
ActionScript:
  1. function bla1(){
  2.     trace("1");
  3. }
  4. function bla2(){
  5.     trace("2");
  6. }
  7. i = 2;
  8. _root["bla"+i]();


Danke Danny!! – jetzt gehts erstmal.
Komischerweise gehts nur mit "_root". Mit irgendwelchen "_parent"s komm ich leider nicht zum ziel. Kannst Du mir sagen warum?

(sorry... hatte das gerade gelöscht -- muss aber hier wieder rein sonst kommt da ja niemand mit) *schandeübermich*
stv-g ist offline   Mit Zitat antworten
Alt 19-08-2005, 19:01   #15 (permalink)
alien
 
Benutzerbild von Smirgel
 
Registriert seit: May 2002
Ort: Colonia
Beiträge: 7.597
wenn du die funktionen auf der hauptzeitleiste definierst, liegen sie ja auf _root. ein _parent gibts da nicht mehr. du könntest aber auch this nehmen.

grüße.
smi.
__________________
bei fragen, fragen.
Smirgel 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:31 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele