ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
370
370
EMPFEHLEN
-
04.02.05 13:03 #1
- Registriert seit
- Aug 2004
- Beiträge
- 3
Hallo,
ich hätte da gern mal ein Problem.
Ich versuche ein flv als Blende zwischen zwei Menüs, die ich als einzelne swf-Files schreibe, einzubauen.
Auf Button-Click soll der Film einblenden, durchspielen, und am Ende in das neue Menü überblenden. Bis zum Film bin ich gekommen, aber wie kann ich Flash sagen, kurz vor Ende des Films auszublenden und das nächste swf überhaupt und rechtzeitig zu laden?
Das ist mein bisheriger code:
this.btnFire.onRelease = function() {
attachMovie("mc_fireBurn", "mc_fireBurn", this.getNextHighestDepth());
function blend():Void {
mc_fireBurn._alpha += 5;
updateAfterEvent();
}
mc_fireBurn._alpha = 0;
var nInterval:Number = setInterval(blend, 1);
};
"btnFire" ist der dazugehörige Button, der im Over-Status animiert ist.
"mc_fireBurn" ist der Movie-Clip, in dem mein Film sitzt.
Ein weiteres Problem, das sich zeigt, ist, dass der Film im Zeitraum des Blendens langsamer läuft. Kann man dem abhelfen?
Danke euch.
Grüße M.
-
Hi,
poste bitte mal die Datei, denn als "Trockenübung" ist das recht umständlich zu ersehen...
Gruß
P.S.: und verwende zum Posten bitte Code- oder PHP-Tags, danke!
.
-
04.02.05 16:45 #3
- Registriert seit
- Aug 2004
- Beiträge
- 3
Hallo Datic,
das fla liegt auf:
HTML-Code:http://www.mmusicproduction.com/downloads/01start005.zip
Grüße
-
Hi,
wenn ich das recht verstanden habe, soll während der Film läuft, der Hintergrund (sprich: das was darunter liegt) gegen einen anderen ausgetauscht werden und der Film soll sich die letzten paar Bilder ausblenden...
Recht einfach würde das z.B. so gehen:
Sag Deinem Clip "mcFireBurn" im ersten Frame, dass er sich einblenden soll, z.B. so:Wie Du siehst, wird nach dem Einblenden eine Funktion "dispatch" auf _root aufgerufen, die das Umtauschen der Menüs/Hintergründe übernimmt.PHP-Code:this._alpha = 0;
this.onEnterFrame = function() {
this._alpha += (100 - this._alpha) / 10;
if (this._alpha > 95) {
this._alpha = 100;
_root.dispatch();
delete this.onEnterFrame;
}
}
Zum Ausblenden packen wir am Ende (sagen wir Frame 90) noch ein Schlüsselbild mit sowas:Somit sparst Du Dir das Rumfummeln mit Intervallen (Da Du Dein Intervall nicht überschrieben hast, hast Du sowieso eine ziemlich üble Rekursion gebaut...PHP-Code:this.onEnterFrame = function() {
this._alpha += (0 - this._alpha) / 10;
if (this._alpha < 1) delete this.onEnterFrame;
}
).
Der Code auf der Hauptzeitleiste muss dann lediglich so ausschauen:und in der Funktion "dispatch" machst Du eben was Du brauchst, um Dein neues Menü anzuzeigen. Wenn der Film dann ausgeblendet wird, erscheint der neue Inhalt...PHP-Code:this.btnFire.onRelease = function() {
attachMovie("mc_fireBurn", "mc_fireBurn", this.getNextHighestDepth());
}
function dispatch() {
// Hier die Inhalte austauschen
}
Korrigier mich, wenn ich Dich falsch verstanden habe.
Gruß
.
-
08.02.05 12:12 #5
- Registriert seit
- Aug 2004
- Beiträge
- 3
Hallo Datic,
danke für die prompte Antwort. Was mir jetzt noch Kopfzerbrechen bereitet ist, die verschiedenen Menüs zum richtigen Zeitpunkt erscheinen zu lassen. Die Reihenfolge soll so aussehen: m1 liegt oben >> der film blendet sich darüber; sobald das alpha des films 100% ist, müssen sich die darunter liegenden menus austauschen, und der film muß abblenden.
Ich wollte ursprünglich für jedes Menü ein eigenes swf, aber ich mache mir damit wohl das Leben unnötig schwer, also pack ich das in ein einziges. Werde versuchen, die Menüs über Masken zu öffnen.
Gibt es die Möglichkeit, über einen "listner"-Befehl das Ende des Films abzufragen, und vorher Aktionen zu starten, an definierten Frames des Films? In der Timeline des flv zu arbeiten scheit mir unpräzise zu sein.
Außerdem ist das flv am anfang (wahrscheinlich während es blendet) immer noch langsamer als im Original, was ich wirklich gerne vermeiden würde. Weißt Du dagegen eine Lösung?
Grüße
-
Hi,
Dein FLV wird (da es als importierer Clip arbeitet) genau wie ein MovieClip mit der Framerate Deines Films abgespielt. Willst Du eine vom Film unabhängige Geschwindigkeit, musst Du mit Streaming arbeiten. ... dann hast Du allerdings noch weniger Kontrolle über das Filmobjekt.
Wie meinst Du das mit dem "Listener"? Wenn Du in die Zeitleiste des Films nichts reinschreiben willst, kannst Du den aktuellen Status von _root aus mit onEnterFrame oder setInterval überprüfen:Noch ein Wort zum Austauschen: Ich würde die einzelnen Bilder einfach in Form von MovieClips übereinander legen und über die _visible-Eigenschaft ein- und ausblenden.PHP-Code:this.onEnterFrame = function() {
if (meinfilm._currentframe > meinfilm._totalframes - 15) {
tauscheAus();
delete this.onEnterFrame;
}
}
Alternativ könntest Du auf der Bühne einen leeren MC (Container) anlegen, in den Du mit attachMovie den jeweils aktuellen Clip aus der Bibliothek lädtst. Vorteil dieser Variante: einfacher zu warten, wenn sich die Anzahl der Seiten ändert.
Gruß
.
Ähnliche Themen
-
Mit substr zwischen Satz zwischen zwei Wörtern trennen
Von juhuhuhuhu im Forum PHPAntworten: 7Letzter Beitrag: 13.04.07, 11:25 -
Modellierung von zwei Beziehungen zwischen zwei Klassen in Hibernate
Von janw im Forum JavaAntworten: 1Letzter Beitrag: 26.05.06, 13:24 -
Zwischen zwei Werten
Von formmad im Forum Flash PlattformAntworten: 2Letzter Beitrag: 17.02.06, 10:38 -
Alpha-Fade zwischen swfs
Von teccco im Forum Flash PlattformAntworten: 4Letzter Beitrag: 13.01.06, 12:50 -
2 SWFs Variablenübergabe zwischen den Filmen?
Von Orphelina im Forum Flash PlattformAntworten: 14Letzter Beitrag: 21.10.05, 11:35





Zitieren
Login





