Hi.
> Der Sinn des Programms besteht kurz gesagt darin, das der Benutzer
> die Bilder sieht, und 8 von 40 Avi files in der Reihenfolge in der
> der Benutzer sie auswaehlt dann auch spaeter abgespielt werden.
Wo und wie merkst du dir welche Videos in welcher Reihenfolge abgespielt werden?
> Und niemand soll hier meine Hausaufgaben machen, ich dachte das
> hier ist ein Forum in >das man postet um Hilfe bei Problemen zu
> bekommen.
Das hast du ja, du hast sie nur nicht genutzt.
> Alles was ich erfahren moechte ist doch nur wie man abfragt wann
> ein Movie vorbei ist und dann eine naechste Aktion startet,
Ich kann mich nur wiederholen: Duration, movietime
> Natuerlich habe ich auch Duration, Movierate & Movietime ausprobiert
Davon sieht man nichts in deinem Code.
> hier mein jetziger Code, der leider alle Videos gleichzeitig
> abspielt
Eine Monster-If-Bedingung. Der Code tut genau was du programmiert hast. Wenn ich ihn auf das wesentliche eindampfe, dann bleibt nicht viel übrig.
-- vereinfacht (ohne ELSE) und verkürzt mit OR
on mouseUp me
--intersects(2)--------------------
if sprite(6).intersects(2) OR sprite(7).intersects(2) OR sprite(8).intersects(2)then
sprite(10).visible = TRUE
sprite(10).movierate = 1
end if
--intersects(3)--------------------
if sprite(6).intersects(3) OR sprite(7).intersects(3) OR sprite(8).intersects(3) then
sprite(11).visible = TRUE
sprite(11).movierate= 1
end if
--intersects(4)--------------------
if sprite(6).intersects(4) OR sprite(7).intersects(4) OR sprite(8).intersects(4) then
sprite(12).visible = TRUE
sprite(12).movierate = 1
end if
end
Dieser Code leistet das Selbe wie deiner. Diese ganze IF-Konstruktion, egal ob deine oder meine Version, ist ziemlich sinnlos und leistet nichts für dein Projekt. Das ist nicht böse gemeint. Irgendwie fehlt dir noch der Durchblick.
----------------------------------------------------------------------
Vielleicht kann ich dir mit einem kleinen Beispiel weiterhelfen.
1. Erstelle mal ein neues Projekt und importiere 3 Videos. Die Videos können irgendwo in der Besetzung liegen. Sie müssen nur zusammen liegen.
2. Plaziere das erste der Videos im Spritekanal 10 im Drehbuch. Wo im Drehbuch ist egal, ob ganz vorne oder mittendrin. Es spielt keine Rolle ob das Video-Sprite ein Frame belegt oder mehrere.
3. Erstelle ein Verhalten und übernehme den folgenden Code:
on exitFrame me
myDuration = sprite(10).member.duration
if sprite(10).movietime < myDuration then
go to the frame
else
sprite(10).membernum = sprite(10).membernum + 1
if sprite(10).member.type <> #empty then
sprite(10).movietime = 0
go to the frame
else
sprite(10).membernum = sprite(10).membernum - 3
sprite(10).movietime = 0
go to the frame
end if
end if
end exitFrame
4. Platziere das Verhalten im Verhaltenskanal über dem Video. Das ist der Kanal direkt unter den beiden Audiokanälen. Das Sprite selbst braucht kein Verhalten.
----------
Wenn du in Director jetzt auf Play drückst, dann siehst du wie die drei Videos endlos der Reihe nach abgespielt werden. Die einzelnen Filme können alle unterschiedlich lange dauern. Der nächste Film wird immer erst gestartet wenn der laufende fertig ist.
Das kleine Beispiel zeigt wie du duration und movietime einsetzen kannst. Ausserdem zeigt es dir, dass du nur ein Sprite für alle Videos brauchst. Das Beispiel ist primitiv und sicher keine optimale Lösung.
Da ich nicht nachvollziehen kann wie die 8 von 40 Avi ausgewählt und ihre Reihenfolge gespeichert wird habe ich in dem Beispiel keine Auswahl berücksichtigt. Vielleicht liefert es dir aber einen Ansatz um weiter zu machen. Statt die Member hochzuzählen könntest du auch eine Liste durchgehen, in der die Auswahl gespeichert ist. Statt der Member Nummer kannst du auch den Member Namen verwenden.
mfg Batam
als Antwort auf: [#160040]
(Dieser Beitrag wurde von Batam am 20. Apr 2005, 21:08 geändert)