Willkommen im TP-Hilfe-Forum! Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst.
Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team.
komm einfach nicht weiter. Mein Problem:
Das ganze ist eine offline Päsentation. Ich habe einen Hauptfilm in dem Einzelne swfs geladen werden...nacheinander immer nur eine swf.
Der Hauptfilm hat einen Backroundsound der sich kontinuierlich als loop abspielt. In den einzelnen swfs wird mit einem sound object eine audio datei erzeugt. Ein Sprecher.
Aus dem Hauptfilm heraus soll nun das Audio von den Sprecherdateien und der Backroundsound global und seperat steuerbar sein.
Für den Sprecher liegt in der swf dieses as:
PHP-Code:
_global.sndSprecher = new Sound(this);
sndSprecher.attachSound('sprecher');
sndSprecher.start(0, 0);
sndSprecher.setVolume(70);
danke das du dir es anschauen willst...bin so langsam ziemlich am verzweifeln da ich nichts finde wie ich es lösen kann.
Zum Verständnis.
Viel mehr reduzieren konnte ich die dateien nicht da sie sonst nicht mehr funktionieren. Es ist eine Offline CD-Präsentation.
Start.exe -> Der Projektor
terminal.swf -> Auswahlmenu
preloader.swf -> gefakter Preloader
auto.swf -> der automatisch durchlaufende Vortrag
auto/f01.swf -> die einzelnen swfs werden in die auto.swf geladen
in der auto.swf wird ein hintergrundsound geladen den ich von da aus steuere.
Funktioniert alles. in der einzelnen swfs also f01.swf f02.swf etc...befinden sich audio dateien die einen sprecher enthalten. und die sollen global aus der auto.swf gesteuert werden...bzw an und ausschlatbar sein. Und hier häng ich.
Ich muß die dateien splitten da es sonst zu performance problemen führt.
Hab die daten hier hochgeladen allerdings ohne die sounddateien da es sonst zu groß wird.
Start.exe -> Der Projektor
terminal.swf -> Auswahlmenu
preloader.swf -> gefakter Preloader
auto.swf -> der automatisch durchlaufende Vortrag
auto/f01.swf -> die einzelnen swfs werden in die auto.swf geladen
in der auto.swf wird ein hintergrundsound geladen den ich von da aus steuere.
Funktioniert alles. in der einzelnen swfs also f01.swf f02.swf etc...befinden sich audio dateien die einen sprecher enthalten. und die sollen global aus der auto.swf gesteuert werden...bzw an und ausschlatbar sein. Und hier häng ich.
OK, das mit den Sounds sollte nicht das Problem sein, aber....
Wo ist da eine Steuerung?
Ich sehe da keine, einzig und alleine "Test" steht dort aus der auto/f01.swf.
So ganz verstehe ich das System noch nicht, erklär es doch nochmals...
EDIT:
hast Du die start.fla auch mal da, dann kann man sinnvoller debuggen
Also das ist die automatisch durchlaufende Präsentation.
Die Steuerung funktioniert mit dem Script:
PHP-Code:
//alles auf Frame 1 der Hauptzeitleiste
_global.meineFilmliste = new Array("auto/f01.swf","auto/fakten.swf","auto/f02.swf","auto/f03.swf","auto/f04.swf","auto/f05.swf","auto/f06.swf","auto/f07.swf","auto/f08.swf","auto/f09.swf","auto/f10.swf","auto/f11.swf","auto/umsatz.swf","auto/f12.swf","auto/f13.swf","auto/f14.swf","auto/zielgruppen.swf","auto/f15.swf","auto/f16.swf","auto/f17.swf","auto/f18.swf","auto/f19.swf","auto/argumente.swf","auto/f20.swf","auto/f21.swf","auto/f22.swf","auto/f23.swf","auto/f24.swf","auto/f25.swf","auto/f26.swf","auto/f27.swf","auto/f28.swf","auto/f29.swf","auto/f30.swf","auto/f31.swf","auto/f32.swf","auto/f33.swf","auto/f34.swf","auto/f35.swf","auto/erfolg.swf","auto/f36.swf","auto/f37.swf","auto/f38.swf","auto/f39.swf","auto/f61.swf","auto/f41.swf","auto/f40.swf","auto/f60.swf","auto/f42.swf","auto/f43.swf","auto/f44.swf","auto.swf");//etc
_global.meinZaehler = 0;//Indexzähler setzen
function neu(){
_level10.con.removeMovieClip();//MC falls vorhanden löschen
_level10.onEnterFrame = function(){//einen Framewechsel erzwingen weil Flash auf dem selben Frame nicht gerne einen MC löscht und gleich wieder erstellt
delete _level10.onEnterFrame;//kann sofort wieder gelöscht werden
_level10.createEmptyMovieClip("con",1);//leeren MC erstellen
_level10.con.loadMovie(_global.meineFilmliste[_global.meinZaehler]);//und in diesen MC einen externen Film nachladen
if( _global.meinZaehler == _global.meineFilmliste.length){//wenn alle Filme abgespielt wurden...
_global.meinZaehler = 0;//wieder von vorne abspielen
}
else{
_global.meinZaehler++;//für den nächsten Film den Zähler erhöhen
}
}
}
_level10.neu();//diesen Befehl auch in den letzten Frame jedes nachgeladenen Filmes setzen!
this.stop();
var keyListener = new Object();
keyListener.onKeyDown = function () {
if (Key.isDown(40)) {
// Down
Key.removeListener(keyListener);
loadMovieNum("terminal.swf", 10);
}
}
Key.addListener(keyListener);
Die start.fla ist eigentlich nur der Behälter und für den Projektor.
Ich habs mittlerweile so gelöst:
Dieses AS in der auto.fla
[php]
var sndMusic:Sound = new Sound(this);
sndMusic.attachSound('EFL');
function fncSetMusicVolume(val:Number) {
sndMusic.setVolume(val);
Löse dich mal vom Abstrakten....
Beschreibe mir mal ohne Code, was denn nun genau passieren soll.
Ich habe bis dato folgendes:
Im Terminal wähle ich "Automatische...."
Dann wird die auto.swf eingeladen und der BG-Sound läuft. die auto/f01.swf wird geladen (Anhang wird ausgegeben) nach Ablauf von 11.2 Sec der f01.swf wird die auto/fakten.swf geladen und für 5.9 Sec abgespielt. danach wieder die f01.swf usw.
Die einzige Steuerung die ich habe ist der Lautsprecher (Anhang).
Bei klick auf diesen stop bzw. startete wieder der BG-Sound, die anderen Sounds (SWFs) werden weiterhin in einer Schleife (nach dem Array) abgespielt.
So, das ist es, was ich nun hier habe.
Und wie soll es nun sein?
Also nur textuell beschreiben, Code brauch in nun erstmal nicht, der liegt mir ja vor.
also das ist genau richtig...in der ganzen presentation werden dann natürlich f01.swf f02.swf f03.swf....etc geladen in der sich compositings aus AfterEffects befinden und text. Dazu (das habe ich nicht mitgeschickt da zu groß) wird in jeder der swfs als z.B f01.swf ein sound objekt erzeugt. Es ist ein Sprecher der den Text vorließt. Und um diesen geht es mir. Den will ich genau so wie den Backround sound global steuern. Dabei hatte ich das Problem das ich das nicht per start und stop machen kann da sobal die f02.swf geladen wird der sprecher sound von dieser swf startete egal ob ich nun in der f01.swf an oder aus gedrückt habe.
habe das nun mit der if abfrage über das volume gelöst aber hab nun das problem der dieses as auch den backroundsound beeinflußt und diese sollen unabhängig voneinander steuerbar sein.
Ich habe den Code mal etwas sortiert und ausgedünnt.
Das Problem war, dass Du alle Sound-Objekte mit this lädst und somit alle einer Zeitleiste zugeordnet sind.
setVolume greift dann auf alle Sounds zu.
Nun ist es so, dass beim Starten der Hintergrundsound im Loop mit Volume=70 gespielt wird und mit klick auf den Button das Volume auf 0 geht (der Sound läuft allerdings weiter!).
Wenn man nun wieder auf den Button klickt, dann wird das Volume wieder auf 70 gestellt.
Gleichzeitig wird der erste Sprecher geladen und mit Volume=100 abgespielt.
Klickt man nun auf den Button wird der Sound und das Movie angehalten.
Bei erneutem Klick wird beides weitergespielt.
Am Ende eines Sprechers wird der nächste geladen, bis alle Array-Elemente (Sprecher) durch sind, dann geht es von vorne los.
Wichtige Änderungen in der auto.swf:
Array-Def von _global.meineFilmliste:
Die auto.swf selber nicht als letztes Element eintragen! (Zeile 4)
Die if-Abfrage um den Dateizähler wieder auf 0 zu setzten sieht nun wie folgt aus:
if( _global.meinZaehler == _global.meineFilmliste.length-1) (Zeile 19)
Beim stopen und starten des Sprecher-Sounds über den Button wird auch das Movie an sich angehalten, sonst läuft der Film weiter, aber der Sprecher stoppt, damit wäre es später nicht mehr synchron.
Weiterhin; wenn man den Film nicht stopen würde, man aber den Sound stoppt und das Movie am Ende ist, würde der nächste Film geladen und dann würde der nächste Sprecher beginnen!
_level10.con.stop(); (Zeile 52)
_level10.con.play(); (Zeile 56)
Der Hintergrund-Sound wird nun einem MC zugewiesen, das zuvor erstellt wird.
this.createEmptyMovieClip("bgsound",999); (Zeile 82)
_global.sndMusic = new Sound(bgsound); (Zeile 83)
Wichtige Änderungen in den Sounddateien (fakten.swf, f01.swf, usw.):
Die Sprecher-Sounds werden nun in allen Sprecher-SWFs wie folgt geladen, also alle SoundObjekte haben den gleichen Namen, da ja immer nur ein Sound läuft.
PHP-Code:
// Sprecher einladen und starten _global.sndSprecher = new Sound(this); _global.sndSprecher.attachSound("EFL"); _global.sndSprecher.start(0, 0); _global.sndSprecher.setVolume(100); _global.sndSprecherPlaying = true;
So ich hoffe ich habe Dein Anliegen nun richtig verstanden und die Lösung ist soweit OK
Hey klasse erstmal vielen Dank für deine Mühe find ich wirklich super!!
Leider hab ich es nicht ganz so gemeint.
Also klar das mit dem Hintergrundsound passt. Nur der Film sollte nicht stoppen wenn der sprecher anhält. Sprich die Animationen sollen weiter laufen nur mit Musik z.b. Deswegen dachte ich es wäre mit dem volume zu machen.
Kann ich nicht in jeder f01.swf oder f02.swf eine If Abfrage einbauen und mit get.Volume abfragen auf welchen Wert ich das sound.object im vorherigem swf gesetzt habe?
etwas so?
PHP-Code:
volume = sndMusic.getVolume ()
if (volume == 100) {//if braucht IMMER 2 ==
_global.sndMusic.setVolume(100);
} else if (volume == 0) {
_global.sndMusic.setVolume(0);