Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 24-11-2006, 03:44   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2006
Beiträge: 6
Question function stoppen

wenn ich eine function aufgerufen hab, wie kann ich sie dann auch wieder "zurückrufen"?

Beispiel:

function Test() {
if (v<1) {
meineMP3.stop();
} else {
v = v-1;
meineMP3.setVolume(v);
}
}

Irgendwo in meiner *.fla sag ich dann logischerweise:

Test();

und die Funktion beginnt zu Arbeiten. Wenn ich aber möchte dass sie irgendwann wieder aufhört, was mache ich dann? Gibt's da einen Befehl der sagt:

stop Test();

oder so???

Vielen Dank im Voraus
Boutz ist offline   Mit Zitat antworten
Alt 24-11-2006, 06:07   #2 (permalink)
undefined
 
Benutzerbild von mildesign
 
Registriert seit: Jul 2001
Ort: Stuttgart
Beiträge: 1.839
ui da ist noch einer wach ;o)
Also ich versteh den Sinn nicht so ganz von deiner Aktion.

Eine Funktion ist eine Verarbeitung von verschiedene Parametern (mit einem Ergebnis) Man schreibt Funktionen um wiederkehrende Aufgaben mit veränderten Rahmenbedingungen schnell abzuarbeiten --> man muss weniger Code schreiben ;o)

Wenn man eine Funktion startet sollte immer das Ziel sein diese auch vollkommen auszuführen.

Zitat:
Irgendwo in meiner *.fla sag ich dann logischerweise:
Test();
und die Funktion beginnt zu Arbeiten.
ja die Funktion wird 1 mal aufgeführt. Das ist ja keine Endlosschleife.

wenn du soetwas machen willst dann entweder über setInterval oder die Funktion dem EnterFrame Ereignis zuweisen.

PHP-Code:
myMC.onEnterFrame=function(){
if(
bedingung){
machwas();
}else{
//onEnterFrame wird gelöscht damit die Funktion nicht nochmal ausgeführt wird.
delete this.onEnterFrame;

__________________
mfg Frank

Geändert von mildesign (24-11-2006 um 06:08 Uhr)
mildesign ist offline   Mit Zitat antworten
Alt 24-11-2006, 06:25   #3 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
Ich würde die Funktionsbezeichnung Test
nicht groß schreiben, weil man Klassen
groß schreibt.
Also bei Funktionen lieber immer klein
schreiben.
__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------
thebiz ist offline   Mit Zitat antworten
Alt 24-11-2006, 11:06   #4 (permalink)
HAY
Neuer User
 
Benutzerbild von HAY
 
Registriert seit: Aug 2002
Ort: Faust-Stadt
Beiträge: 2.577
hallo
mit 'return' eine function vorzeitig beenden.
PHP-Code:
//Die Aktion return beendet die Funktion und ersetzt sie durch den Rückgabewert. 
0;
test = function (a) {
    for (
020i++) {
        if (
== a) {
            
trace ("Wenn a == i brauche ich den rest der function nicht ");
            return;
        }
    }
    
trace ("a != i Arbeite in der function weiter");
};
test (10); 
__________________
gruß Harry
HAY ist offline   Mit Zitat antworten
Alt 24-11-2006, 15:47   #5 (permalink)
Neuer User
 
Registriert seit: Nov 2006
Beiträge: 6
erstmal vielen Dank für die Antworten. Ich habe mich aber anscheinende etwas unklar ausgedrückt. Ich möchte einen fadeout für eine mp3 schreiben.
Ich poste mal den kompletten Code:

var test:Sound = new Sound();
test.loadSound("test.mp3", true);
test.start();
v = 100;
function ausblenden() {
onEnterFrame = fadeout;
}
function fadeout() {
if (v<1) {
always.stop();
} else {
v = v-1;
always.setVolume(v);
}
}

Wenn ich nun einem beliebigen button sage:
on (release) {
_root.ausblenden();
}
dann wird meine MP3 wunderbar ausgeblendet. Das Problem ist nur:

Wenn ich nun irgendwann in meiner timeline auf das frame zurückspringe, indem steht:
var test:Sound = new Sound();
test.loadSound("test.mp3", true);
test.start();
dann startet meine MP3 zwar erneut, aber wird logischerweise sofort wieder ausgeblendet, weil v ja dann wieder den Wert 100 hat.
Deshalb müsste ich ja einfach einem anderen button sagen:
on (release) {
_root.gotoAndStop("Seite1");
_root.v = 100;
und irgendwie _root.StoppeDieFunktionAusblenden;
}
damit von der Variable v nicht mehr ständig 1 subtrahiert wird.

danke.
Boutz ist offline   Mit Zitat antworten
Alt 24-11-2006, 16:31   #6 (permalink)
HAY
Neuer User
 
Benutzerbild von HAY
 
Registriert seit: Aug 2002
Ort: Faust-Stadt
Beiträge: 2.577
hi
so
PHP-Code:
function ausblenden (v) {
    
this.onEnterFrame = function () {
        if (
== 0) {
            
always.stop ();
            
delete this.onEnterFrame;
        } else {
            
v--;
            
always.setVolume (v);
        }
    };
}
button.onRelease = function () {
    
_root.ausblenden (100);
}; 
__________________
gruß Harry
HAY ist offline   Mit Zitat antworten
Alt 24-11-2006, 18:56   #7 (permalink)
Neuer User
 
Registriert seit: Nov 2006
Beiträge: 6
1. ich Blödmann hab mich oben verschrieben: es heißt beispielsweise immer test.stop(); und nicht always.stop(); war noch der alte code. Wie mir scheint habt ihr es trotzdem verstanden.

2. danke Harry. Du hast meinen code sauberer gestaltet und es funktioniert jetzt auch alles.

3. Vielen Dank, wunderbar!
Boutz 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:33 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele