[GastForen Archiv Adobe Director Simple Pause in Lingo einbinden

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Archiv - Archivierte Foren
Themen
Beiträge
Moderatoren
Letzter Beitrag

Simple Pause in Lingo einbinden

Nowak
Beiträge gesamt: 11

22. Jan 2006, 16:59
Beitrag # 1 von 5
Bewertung:
(3281 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Innerhalb eines Lingoscripts sollte ich die Geschwindigkeit, mit der eine Schlaufe abläuft, einstellen können. Aus mir unverständlichen Gründen wirkt delay 12 einfach nicht, auch nicht mit startTimer. Ich weiss, dass da irgend ein Trivialfehler drin steckt, aber offenbar bin ich im Moment total vernagelt!

Mit herzlichem Dank

Hans Peter Nowak
X

Simple Pause in Lingo einbinden

Batam
Beiträge gesamt: 328

23. Jan 2006, 00:39
Beitrag # 2 von 5
Beitrag ID: #206418
Bewertung:
(3273 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi.

Na dann versuche ich mal deinen Nagel zu ziehen. ;-)

-- Zitat aus der Director Hilfe
-- This handler delays the movie for 2 seconds when the playhead exits the current frame:
Code
on exitFrame 
delay 2 * 60
end


Mit "delay 12" wartest du also nur eine 5tel Sekunde. Deshalb hast du den Eindruck es würde nicht funktionieren. Oder wolltest du es so kurz?

mfg, Batam


als Antwort auf: [#206356]

Simple Pause in Lingo einbinden

Nowak
Beiträge gesamt: 11

23. Jan 2006, 16:55
Beitrag # 3 von 5
Beitrag ID: #206622
Bewertung:
(3263 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke Batam für die schnelle Antwort

Das geht eben nicht, weil es ein on exitFrame braucht. Ich habe eine Schlaufe, die den Wert 'blend' eines Grafikelementes ausblenden soll und das muss innerhalb des Frames geschehen. Nun läuft das mit der Normalgeschwindigkeit 30 zu schnell ab, die ich aber aus anderen Gründen brauche.

Ich habe folgendes gemacht:

if rollOver(20) and the mouseDown=TRUE then
set gBlend = gBlend +1
if gBlend = 11 then
set gBlend = 0
end if

delay 12

set the blend of sprite 21 to (100 - gBlend*10)
updateStage

else if rollOver(20) and the mouseDown = FALSE then
set the blend of sprite 21 to 100

end if

Das funktioniert bestens, ausser, dass es immer mit maximalem Tempo abläuft ohne auf den Wert von delay zu reagieren.
Gleich noch eine Frage: Gibt es irgend eine Möglichkeit, aus einer solchen Schlaufe auszubrechen ohne das Frame zu verlassen? In anderen Programmiersprachen ist das ja Standart, aber in Lingo scheint es nicht zu gehen?


als Antwort auf: [#206418]

Simple Pause in Lingo einbinden

Batam
Beiträge gesamt: 328

23. Jan 2006, 19:06
Beitrag # 4 von 5
Beitrag ID: #206660
Bewertung:
(3259 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi.

Das läßt sich einfach mit einer weiteren Zählvariablen lösen.

Code
global gBlend, gDelay 

on beginSprite me
gBlend = 0
gDelay = 0
end

on exitFrame
if rollOver(20) and the mouseDown = TRUE then
if gDelay mod 12 = 0 then
set gBlend = gBlend + 1

if gBlend = 11 then
set gBlend = 0
end if

set the blend of sprite 21 to (100 - gBlend*10)
updateStage

gDelay = 0
end if

gDelay = gDelay + 1

else if rollOver(20) and the mouseDown = FALSE then
set the blend of sprite 21 to 100
end if
end exitFrame


Das Sprite 21 wird dadurch schrittweise ausgeblendet. Ich vermute mal das ist was du wolltest. Zumindest habe ich deinen Quellcode so interpretiert.

Antwort auf: Gibt es irgend eine Möglichkeit, aus einer solchen Schlaufe auszubrechen ohne das Frame zu verlassen?

Schau dir mal exit, halt und abort an.

mfg, Batam


als Antwort auf: [#206622]

Simple Pause in Lingo einbinden

Nowak
Beiträge gesamt: 11

24. Jan 2006, 10:26
Beitrag # 5 von 5
Beitrag ID: #206731
Bewertung:
(3252 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke Batam für die ausführliche Antwort!

Das geht auch wirklich - kein Problem mehr.

Die exit Bedingung erlaubt aber keine Sprungadresse. Sprungadressen innerhalb eines Lingo gibt es ja offenbar nicht, man kann dann nur entweder ein anderes Frame aufrufen oder das Frame erneut laufen lassen?

Na jedenfalls herzlichen Dank - jetzt läuft das Programm wie gewünscht.

Hans Peter Nowak


als Antwort auf: [#206660]
X