tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
370
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Maxheadroom Maxheadroom ist offline Grünschnabel
    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.
     

  2. #2
    Registriert seit
    Mar 2004
    Ort
    Basisrealität
    Beiträge
    12.118
    Blog-Einträge
    7
    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!
    .
     

  3. #3
    Maxheadroom Maxheadroom ist offline Grünschnabel
    Registriert seit
    Aug 2004
    Beiträge
    3
    Hallo Datic,

    das fla liegt auf:


    HTML-Code:
    http://www.mmusicproduction.com/downloads/01start005.zip

    Grüße
     

  4. #4
    Registriert seit
    Mar 2004
    Ort
    Basisrealität
    Beiträge
    12.118
    Blog-Einträge
    7
    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:
    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;
        }

    Wie Du siehst, wird nach dem Einblenden eine Funktion "dispatch" auf _root aufgerufen, die das Umtauschen der Menüs/Hintergründe übernimmt.

    Zum Ausblenden packen wir am Ende (sagen wir Frame 90) noch ein Schlüsselbild mit sowas:
    PHP-Code:
    this.onEnterFrame = function() {
        
    this._alpha += (this._alpha) / 10;
        if (
    this._alpha 1delete this.onEnterFrame;

    Somit sparst Du Dir das Rumfummeln mit Intervallen (Da Du Dein Intervall nicht überschrieben hast, hast Du sowieso eine ziemlich üble Rekursion gebaut... ).

    Der Code auf der Hauptzeitleiste muss dann lediglich so ausschauen:
    PHP-Code:
    this.btnFire.onRelease = function() {
        
    attachMovie("mc_fireBurn""mc_fireBurn"this.getNextHighestDepth());
    }

    function 
    dispatch() {
        
    // Hier die Inhalte austauschen

    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...

    Korrigier mich, wenn ich Dich falsch verstanden habe.

    Gruß
    .
     

  5. #5
    Maxheadroom Maxheadroom ist offline Grünschnabel
    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
     

  6. #6
    Registriert seit
    Mar 2004
    Ort
    Basisrealität
    Beiträge
    12.118
    Blog-Einträge
    7
    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:
    PHP-Code:
    this.onEnterFrame = function() {
        if (
    meinfilm._currentframe meinfilm._totalframes 15) {
           
    tauscheAus();
           
    delete this.onEnterFrame;
        }

    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.

    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

  1. Antworten: 7
    Letzter Beitrag: 13.04.07, 11:25
  2. Antworten: 1
    Letzter Beitrag: 26.05.06, 13:24
  3. Zwischen zwei Werten
    Von formmad im Forum Flash Plattform
    Antworten: 2
    Letzter Beitrag: 17.02.06, 10:38
  4. Alpha-Fade zwischen swfs
    Von teccco im Forum Flash Plattform
    Antworten: 4
    Letzter Beitrag: 13.01.06, 12:50
  5. 2 SWFs Variablenübergabe zwischen den Filmen?
    Von Orphelina im Forum Flash Plattform
    Antworten: 14
    Letzter Beitrag: 21.10.05, 11:35