ActionScript: Wiederholen einer Aufgabe in zeitgesteuerten Abständen

Dutch French Spanish Portuguese Italian German Japanese Chinese Korean Russian Arabic Bookmark and Share this Article Original English article
  

Sie möchten eine Tätigkeit oder Tätigkeiten in einem spezifischen zeitgesteuerten Abstand durchführen.

Verwenden Sie die setInterval() Funktion.

Die setInterval() Funktion erlaubt Ihnen, einen Abstand zu spezifizieren (in den Millisekunden) an denen Ihr greller Film eine Funktion hervorruft. Benutzen Sie setInterval() um eine bestimmte Tätigkeit über Zeit aber bei der Frequenz der Rahmenrate des Films nicht notwendigerweise durchzuführen.

//definieren Sie ein Funktion Funktion myIntervalFunction 
() {
 //geben Sie den Unterschied zwischen dem 
gegenwärtigen Timer-Wert aus und seinem Wert von// letztes Mal wurde 
die Funktion trace(getTimer() - lastTime genannt); lastTime = 
getTimer(); }
//oben eingestellt ein Abstand, der versucht, das 
myIntervalFunction() jedes// Millisekunde 
setInterval(myIntervalFunction einmal hervorzurufen, 1);

Im vorhergehenden Beispiel obwohl der Abstand theoretisch eine Millisekunde, in der Praxis ist, in seiner Genauigkeit und in granularity hängen Sie von der Computerplaybackleistung in Beziehung zu anderen Aufgaben ab, die vom Prozessor verlangt werden. Es gibt zwei Implikationen zu diesem:

Bauen Sie nicht auf Abstände, um extrem exakt zu sein.

Bauen Sie nicht auf Abstände, um als einige Millisekunden kleiner zu sein.

Die setInterval() Funktion bringt einen Bezeichner für den eben verursachten Abstand zurück. Wenn Sie in der LageSEIN möchten, den Abstand zu einer neueren Zeit zu stoppen, müssen Sie den Rückholwert speichern, wie folgt:

//Satz ein Abstand so, daß someFunction() ungefähr 
einmal pro Sekunde// benannt, setInterval() Rückholwert dem variablen
myIntervalID für neueres Gebrauch myIntervalID = 
setInterval(someFunction, 1000 zuweist wird);

Sie können die clearInterval() Funktion verwenden, um einen Abstand zu stoppen, wenn Sie den Bezeichner des Abstands kennen:

clearInterval(myIntervalID);

Wenn Sie den Abstand die Methode eines Gegenstandes anstelle von einer alleinstehenden Funktion hervorrufen wünschen, können Sie die Veränderung der setInterval() Funktion verwenden, in der Sie es den drei parameters.a Hinweis auf dem Gegenstand, den Namen der Funktion (als Zeichenkette) und den Abstand in den Millisekunden anstelle von gerade zwei führen:

//verursachen Sie einen einfachen Gegenstand mit dem 
Gegenstanderbauer obj = neues Object();
//weisen Sie eine Methode zu, die myMethod einem 
Gegenstand, obj. obj.myMethod = Funktion genannt wird () 
{trace("obj.myMethod() ist benannt worden"); }; //Gebrauch
setInterval() zum des Films zu erklären, die myMethod() Methode von 
obj// Gegenstand hervorzurufen ungefähr alle sechs Sekunden 
setInterval(obj, "myMethod", 6000);

Welche Veränderung der setInterval() Funktion Sie verwenden, werden alle zusätzlichen Parameter, die Sie zur setInterval() Funktion führen, entlang zur Funktion oder zur Methode geführt:

//definieren Sie eine Funktion, die einen Parameter 
annimmt und ihn im Ausgang Fenster-Funktion displayValue anzeigt (val)
{trace(val); }
//Gebrauch setInterval() zum von von 
displayValue() einmal pro Minute zu benennen. Der dritte 
Parameter ist// geführt zur Funktion, wenn er benannt wird, damit 
jede Zeit "Häschenkaninchen// Hippityhopfen" wird angezeigt im 
Ausgang Fenster setInterval(displayValue, 60000, "Häschenkaninchen 
gehen Hippityhopfen" gehen);

Beachten Sie, daß alle mögliche Werte, die Sie zu einer Funktion oder zu einer Methode über die setInterval() Funktion führen, nur zu der Zeit der Abstand wird initialisiert ausgewertet werden. So werden die gleichen Parameterinhalte immer zu einer Funktion oder zu einer Methode geführt, die über setInterval() benannt wird:

obj = neues Object();
obj.traceAnimalName = Funktion (Name) {trace(name); 
};
myAnimalName = "Junges";
setInterval(obj, "traceAnimalName", 30, myAnimalName);
/ /, selbst wenn myAnimalName einen neuen Wert zugewiesen 
wird, der Wert "Junges" wird immer zu// traceAnimalName() geführt, 
weil myAnimalName "Junges" war, als setInterval() erstes// benanntes 
myAnimalName = "Welpe" war;

Eine der ordentlichen Sachen, die Sie mit setInterval(tun können), ist verursachen Animationen, die Unabhängiges der Rahmenrate des Films sind. Erinnern Sie daran, daß die onEnterFrame() Methode in dem gleichen Abstand wie die Rahmenrate durchführt und so verwendet, daß Technik Sie an die Eigenschaften des Films bindet. Aber mit setInterval() können Sie eine Funktion oder eine Methode in jedem möglichem Abstand benennen, den Sie wünschen. Ist hier ein Beispiel, in dem zwei Abstände set.one für einen quadratischen Filmclip (alle 50 Millisekunden) und eins für einen Kreisfilmclip sind (alle 100 Millisekunden):

//definieren Sie die Funktion zuerst. Diese Funktion
nimmt drei Parameter: Bezugsauf// der Filmclipgegenstand, die 
Änderung in x und die Änderung im y. Funktion moveObj (obj, dx, dy) 
{
 //Stufensprung das x des Filmclips und y 
Koordinaten obj._x + = dx; obj._y + = dy;
 / /, falls der Abstand kleiner als die Rahmenrate des 
Films ist, müssen Sie verwenden// die eingebaute updateAfterEvent() 
Methode, zum des Stadium updateAfterEvent(zu erneuern); }
//verursachen Sie zwei Abstände. Jedes ruft
die moveObj() Funktion hervor, aber an unterschiedlichem// Abstände 
und mit unterschiedlichen Filmcliphinweisen wie die squareInterval 
Parameter = setInterval(moveObj, 50, Quadrat, 1, 1); 
circleInterval = setInterval(moveObj, 100, Kreis, 1, 1);
dieses ist ein Artikel, der von Gabriel Savimbi hinzugefügt wird


Verzicht: Unsere Web site ist nicht zu der Information verantwortlich, die durch diesen Artikel enthalten wird. Dieser Artikel reflektiert keineswegs die Ansichten, die Meinungen, die Gedanken oder den Glauben des Artikelverzeichnisstabes.

Übersetzung Nachricht: Der Artikel "ActionScript: Eine Aufgabe in zeitgesteuerten Abständen wiederholend ", wurde mit einem automatisierten Übersetzungsdienst übersetzt. Wir entschuldigen herzlichst uns für alle mögliche Übersetzung Störungen, die auftraten. Danke für das Verstehen.


Online: 1792 users browsing the articles directory