Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 17-01-2006, 12:31   #1 (permalink)
Neuer User
 
Registriert seit: Oct 2005
Beiträge: 21
Funktion startet von selbst

hallo zusammen.

hab ne ganz komische sache bei mir hier am laufen.

ich erstelle eine Funktion

Code:
function Halten(j:Number) {
	if (wurf>0 && wurf<3) {
		if (eval("werfen"+j) == true) {
			this["werfen"+j] = false;
			eval("w"+j).filters = [new ColorMatrixFilter(matrix)];
		} else {
			this["werfen"+j] = true;
			eval("w"+j).filters = none;
		}
	}
}
weiter unten möchte ich gerne die Funktion aufrufen wenn ich den MC "w1" drücke.

Code:
w1.onRelease = Halten(1);
Wenn ich jetzt aber aus dem 2 Frame mit Hilfe von gotoAndStop() auf den Frame wechsle wo sich oben genannte Funktion und Aufruf befinden, dann führt er automatisch erst die erstellte Funktion aus (anscheinend über das onRelease). Wo liegt mein (Denk-)Fehler?

Vielen Dank im Vorraus
bandicut ist offline   Mit Zitat antworten
Alt 17-01-2006, 12:42   #2 (permalink)
Creative Artist
 
Benutzerbild von Semo
 
Registriert seit: Apr 2005
Ort: Rivendell
Beiträge: 170
Hallo

Das kann Flash ja gar nicht anders. Wenn der Abspielkopf wieder auf den Frame kommt wo das AS liegt, dann stellt er automatisch dieses Frame dar und führt jede x-beliebige Funktion aus, die darin liegt. Es fehlt etwas, was dieses erneute Ausführen abfängt. Flash weiß nicht, ob es das nicht soll, wenn Du es nicht vorschreibst

Du brauchst eine Schleife mit Prüfung, ob der Interpreter das AS wirklich ausführen darf.

Grüße

Semo
Semo ist offline   Mit Zitat antworten
Alt 17-01-2006, 12:45   #3 (permalink)
meistens harmlos
 
Benutzerbild von rena
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 17.643
Dreh das mal um ...
PHP-Code:
halten = function(j:Number) {
//und dann weiter wie gehabt 
__________________
www.rena-hermann.de

The angels have the phone box
rena ist offline   Mit Zitat antworten
Alt 17-01-2006, 14:48   #4 (permalink)
Neuer User
 
Registriert seit: Oct 2005
Beiträge: 21
@rena

das umdrehen hat etwas geholfen. leider wird sobald ich per onRelease die Funktion aufrufen will, die selbige sofort ausgeführt. allerdings hab ich das Phenomän, das wenn ich keine Parameter übergebe, alles so funzt wie es soll. leider würde ich die parameter aber ganz gerne nutzen.

nochmal zur erklärung
so wird die funktion bereits ausgeführt wenn der Frame auftritt
Code:
Halten = function(j:Number) {
	trace("Achtung");
	if (wurf>0 && wurf<3) {
		if (eval("werfen"+j) == true) {
			this["werfen"+j] = false;
			eval("w"+j).filters = [new ColorMatrixFilter(matrix)];
		} else {
			this["werfen"+j] = true;
			eval("w"+j).filters = none;
		}
	}
};
w1.onRelease = Halten(1);
und so wird die Funktion erst ausgeführt wenn ich den MC/Button "w1" gedrückt habe
Code:
Halten = function() {
	trace("Achtung");
	if (wurf>0 && wurf<3) {
		if (eval("werfen"+j) == true) {
			this["werfen"+j] = false;
			eval("w"+j).filters = [new ColorMatrixFilter(matrix)];
		} else {
			this["werfen"+j] = true;
			eval("w"+j).filters = none;
		}
	}
};
w1.onRelease = Halten;
hat jemand dafür ne erklärung???
bandicut ist offline   Mit Zitat antworten
Alt 17-01-2006, 15:23   #5 (permalink)
Neuer User
 
Registriert seit: Dec 2001
Ort: D
Beiträge: 381
ist auch eigentlich logisch, warum das so ist.

var test = testFunktion();
-> Die Funktion "testFunction" wird ausgeführt und die var "test" erhält
den möglichen Rückgabewert der Methode.

var test = testFunction;
-> Der var "test" wird eine Referenz der Funktion "testFunktion" zugewiesen,
die Methode wird aber nicht ausgeführt. Mit "test()" wird dann die Methode
"testFunktion" aufgerufen.
momo-loom ist offline   Mit Zitat antworten
Alt 17-01-2006, 15:35   #6 (permalink)
Achim Math.PI
 
Benutzerbild von bloba
 
Registriert seit: Jul 2001
Ort: cool Colonia
Beiträge: 11.642
will heissen
PHP-Code:
Halten = function (j:Number) {
    
trace("Achtung");
    if (
wurf>&& wurf<3) {
        if (eval(
"werfen"+j) == true) {
            
this["werfen"+j] = false;
            eval(
"w"+j).filters = [new ColorMatrixFilter(matrix)];
        } else {
            
this["werfen"+j] = true;
            eval(
"w"+j).filters none;
        }
    }
};
w1.onRelease = function() {
    
Halten(1);
}; 
__________________
gruß bloba

2 x onkel² b_d
bloba ist offline   Mit Zitat antworten
Alt 17-01-2006, 16:30   #7 (permalink)
Neuer User
 
Registriert seit: Oct 2005
Beiträge: 21
Danke bloba

Genau so muss es sein......

Warum muss der Fehler eigentlich immer im Detail stecken???
bandicut ist offline   Mit Zitat antworten
Alt 17-01-2006, 19:32   #8 (permalink)
Achim Math.PI
 
Benutzerbild von bloba
 
Registriert seit: Jul 2001
Ort: cool Colonia
Beiträge: 11.642
hehe das hab ich mich heut auch bei ner andern sache gefragt
__________________
gruß bloba

2 x onkel² b_d
bloba 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:48 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele