ActionScript: Wiederholen einer Aufgabe in
zeitgesteuerten Abständen
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.