[GastForen Archiv Adobe Director Warten bis Avi vorbei, dann naechstes...

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

Warten bis Avi vorbei, dann naechstes...

Wo0oT
Beiträge gesamt: 2

15. Apr 2005, 21:47
Beitrag # 1 von 4
Bewertung:
(1418 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, ich versuche mich zur Zeit an meinem Director Projekt schulischerseits, bin auch schon recht weit gekommen nur stehe ich im moment vor einem argen problem. Ich versuche es so einfach wie moeglich zu beschreiben.

Ich habe einige Avi Files (40 Stueck) a 5 sekunden in Director importiert. Zu jedem Avi File habe ich ein zugehoeriges Bild gemacht.
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.

Das Auswahlverfahren funktioniert soweit, mein letzes Problem besteht nun darin, das die vom Benutzer ausgewaehlten Videos in richtiger Reihenfolge und nacheinander abgespielt werden.

um es lingotechnisch etws zu verdeutlichen:

wenn AviPic_4 Auswahl_1 beruehrt (intersect), dann spiele Avi_4 zuerst ab.

Das an sich ist nun noch nicht das Hauptproblem, sondern eher das er wartet bis das erste Avi abgespielt ist und erst dann das naechste Abspielt:

wenn AviPic_4 Auswahl_1 beruehrt, dann spiele Avi_4 ab
warte 5 Sekunden
wenn AviPic_1 Auswahl_2 beruehrt, dann spiele Avi_1 als naechstes
warte 5 Sekunden
etc...

Ich hoffe auf eine positive Antwort, sonst stehe ich vor einem echten Problem
X

Warten bis Avi vorbei, dann naechstes...

Batam
Beiträge gesamt: 328

19. Apr 2005, 20:20
Beitrag # 2 von 4
Beitrag ID: #160761
Bewertung:
(1418 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi

> um es lingotechnisch etws zu verdeutlichen
Das ist nicht Lingo-Technisch. Das ist noch nicht einmal Pseudocode. Ich glaube niemand hier hat Zeit dir deinen Hausaufgaben zu programmieren. Ein bisschen mehr Vorleistung must du schon bringen. Korrekturen sind dann sicher kein Problem.

Falls du dein Problem inzwischen nicht gelöst hast, dann schau mal nach unter:

Duration, movietime, movierate,…


mfg, Batam


als Antwort auf: [#160040]

Warten bis Avi vorbei, dann naechstes...

Wo0oT
Beiträge gesamt: 2

20. Apr 2005, 10:02
Beitrag # 3 von 4
Beitrag ID: #160829
Bewertung:
(1418 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich glaube du hast da etwas falsch verstanden, ich haette natuerlich hier auch meinen nicht funktionierenden Lingo Code hineinposten koennen, aber ich fand es deutclicher wenn ich einfach das Prinzip meines Vorhabens verdeutliche.

Und niemand soll hier meine Hausaufgaben machen, ich dachte das hier ist ein Forum in das man postet um Hilfe bei Problemen zu bekommen.

Wenn ich nicht schon alles mir moegliche ausprobiert haette, was ich nach einem halben jahr director erfahrung machen kann, haette ich nicht hier hineingepostet.

Natuerlich habe ich auch Duration, Movierate & Movietime ausprobiert, natuerlich habe ich auch schon bei meinem Lehrer Hilfe gesucht, vergeblich, obwohl ich mir nicht vorstellen kann, das das was ich machen moechte derart schwer ist. Alles was ich erfahren moechte ist doch nur wie man abfragt wann ein Movie vorbei ist und dann eine naechste Aktion startet, das ist NICHT das loesen meiner "Hausaufgabe"

Aber gut, hier mein jetziger Code, der leider alle Videos gleichzeitig abspielt...

>>>>>>>>>>>>>>>>>>>>>>>
on mouseUp me
if sprite(6).intersects(2) then
sprite(10).visible = TRUE
end if
if sprite(6).intersects(2) then
sprite(10).movierate = 1
else
if sprite(6).intersects(3) then
sprite(11).visible = TRUE
end if
if sprite(6).intersects(3) then
sprite(11).movierate= 1
else
if sprite(6).intersects(4) then
sprite(12).visible = TRUE
end if
if sprite(6).intersects(4) then
sprite(12).movierate = 1
end if
end if
if sprite(7).intersects(2) then
sprite(10).visible = TRUE
end if
if sprite(7).intersects(2) then
sprite(10).movierate = 1
else
if sprite(7).intersects(3) then
sprite(11).visible = TRUE
end if
if sprite(7).intersects(3) then
sprite(11).movierate = 1
else
if sprite(7).intersects(4) then
sprite(12).visible = TRUE
end if
if sprite(7).intersects(4) then
sprite(12).movierate = 1
end if
end if
end if
if sprite(8).intersects(2) then
sprite(10).visible = TRUE
end if
if sprite(8).intersects(2) then
sprite(10).movierate = 1
else
if sprite(8).intersects(3) then
sprite(11).visible = TRUE
end if
if sprite(8).intersects(3) then
sprite(11).movierate = 1
else
if sprite(8).intersects(4) then
sprite(12).visible = TRUE
end if
if sprite(8).intersects(4) then
sprite(12).movierate = 1
end if
end if
end if
end if
end
>>>>>>>>>>>>>>>>>>>>>>>


als Antwort auf: [#160040]

Warten bis Avi vorbei, dann naechstes...

Batam
Beiträge gesamt: 328

20. Apr 2005, 21:02
Beitrag # 4 von 4
Beitrag ID: #161113
Bewertung:
(1418 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
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)
X