[MX] Eine Funktion von aussen aufrufen

alma

Erfahrenes Mitglied
Hallo zusammen

Ich habe wieder mal ein kleines Problem.

Ich habe ein Funktion:
PHP:
blatteins = new Array()
button2.onRelease = function(button2) {
	blatteins[0] = frage1.r1.getState();
	blatteins[1] = frage1.r2.getState();
	blatteins[2] = frage1.r3.getState();
trace(blatteins[1]);
}
Das Trace gibt mir ja den Zustand des RadioButtons zurück. Dies funktioniert bei mir jedoch nur, wenn das Trace innerhalb der Funktion steht. Kann ich dies jedoch auch von einer anderen Stelle aus abrufen? Wenn ja, kann ich den Wert von z.B. blatteins[1] auch drei oder vier Bilder (in der gleichen Zeitleiste) noch abrufen?

Danke für eure Hilfe

Alma
 
Das hängt mit den Pfaden zusammen. Du müsstest, wenn du das tace irgendwo anders ausführen willst, die Position der Variable mit angeben, also zB
trace(_root.mc1.mc2.array[position]);

MfG
Killkrog
 
Also, wenn du in Flash Variablen hast, sind diese an bestimmten 'Positionen' nämlich in MovieClips (=MCs)

_root beschreibt hierbei die Zeitleiste, also den 'Anfang'.
Auf diesem _root liegen dann verschieden MCs, denen du Instanznamen vergibst.
Angenommen, wir hätten einen MC mit namen film1 auf der Hauptzeitleiste (_root) und in diesem MovieClip gäbe es die Variable var1.

Dann müsstest du _root.film1.var1 schreiben, um diese anzusprechen, nicht einfach nur var1. Das sind die absoluten Pfadangaben, also immer von _root ausgehend.
Es gibt noch die Möglichkeit der relativen Pfadangabe. Aber ich habe nicht wirklich Lust, hier alles zu erklren, sondern verweise dich einfach in die Tutorials-Sektion (wo du eigentlich eh immer als erstes hinsehen solltest) und lege dir hier speziel diese Hilfestellung von Rena an.

Wenn jedoch die MovieClips, in denen sich die Variablen befinden, schon wieder entladen wurden (d.h., dass sie sich nicht mehr im aktuellen Frame befinden) kannst du sie auch nicht mehr abfragen. Dazu müsstest du sie schon irgendwo speichern, worauf du immer zugreifen könntest, wie z.B. der Hauptzeitleiste.
Dann hast du also Folgendes:

_root.variable1 = Wert_des_Radio_Buttons

Hoffe das hilft dir.
~ Killkrog
 
Zuletzt bearbeitet:
hi Alma


PHP:
button2.onRelease = function(button2) {
    blatteins[0] = frage1.r1.getState();
}

der Interpretor setzt immer ein this vor Variablen und
Objekte.

this.blatteins[0] = frage1.r1.getState();

und this bezieht sich auf button2. Du erstellst also

button2.blatteins[0] = frage1.r1.getState();

mit anderen worten:

blatteins[0] = frage1.r1.getState();

existiert gar nicht, weshalb es auch nicht aufgerufen werden kann.

Hoffentlich war's verständlich. Gruss stephan
 
Ach ja ? es ist schon Schlimm genug, dass man hier immer
Deine fehlerüberfüllten und arroganten Antworten ertragen muss,
dass Du jetzt aber noch mit Kraftausdrücken fremde Postings
absegnest (die -tut mir leid- korrekt sind) geht für meinen Geschmack
zu weit.

Ich denke, dass einer der Moderatoren an dieser Stelle gefragt ist,
ansonsten ich mir die Zeit auch sparen kann.


Mit freundlichen Grüssen an die Mods

Stephan
 
noch zum Thema :



PHP:
blatteins[0] = frage1.r1.getState();

existiert tatsächlich nicht.

PHP:
button2.blatteins[0] = frage1.r1.getState();


wohl schon eher.
 
Dann schau dir doch mal oben sein Script an.
Er hat das Zeug ja schon in einer 'Button' Funktion stehen, darum wäre es vollkommen unnütz, dass alles nochmal zu schreiben.
Ausserdem sagte er ja, dass er mit trace die Werte ausgegeben bekommt, allerdings nur innerhalb der Funktion. Da liegt (wie ich schon sagte) an der Tatsache, dass er sich hier auf einen relativen Pfad bezieht, daher auch sein Problem mit der Abrufbarkeit der Variablen von anderen Punkten des Films aus.

MfG
dein arroganter Killy
 
...es geht nur um das hier:
Original geschrieben von Stephan Zesiger
blatteins[0] = frage1.r1.getState();

existiert gar nicht
--------------------------------------------------------------------------------



Bullshit

und das ist kein bullshit weil nach seinem script
der variablentest von blatteins[0] undefined
ergibt sprich inexistent ist.

ich mag mich nicht mit Dir rumärgern, sorry.
 

Neue Beiträge

Zurück