Stream wird nicht beendet

Consilium

Grünschnabel
Hallo
ich sitze seit Stunden an einem Problem, was ich so als Anfänger nicht erwartet hätte.

Ich rufe von einer swf eine weitere auf.
Die "neue" swf beinhaltet einen "selbst erstellten Videoplayer" der eine f4v ladet und abspielt.
- so weit so gut.

Problem:
Beim aufrufen einer weiteren swf (die auch einen player mit Film streamt) stelle ich fest, das die vorherig geladene swf zwar weg ist aber der Ton des Film`s noch weiter läuft. Das ist natürlich "Mist" :)

aufgerufen werden die swf`s mit dem Stream jeweils so:

PHP:
var nc:NetConnection = new NetConnection();
nc.connect(null);
var ns:NetStream = new NetStream(nc);
ns.play("Stoff.f4v");
ns.pause();
ns.seek(0);

meinFilm.attachNetStream(ns);
addChild(meinFilm);
playBtn.addEventListener(MouseEvent.CLICK, videoPlay);
stopBtn.addEventListener(MouseEvent.CLICK, videoStop);
pauseBtn.addEventListener(MouseEvent.CLICK, videoPause);
function videoPlay(evt:MouseEvent){
ns.resume();
}
function videoStop(evt:MouseEvent){
ns.pause();
ns.seek(0);
}
function videoPause(evt:MouseEvent){
ns.pause();
}

Kann mir jemand sagen, was ich falsch mache bzw. das korrekte AS3 schreiben?
 
Sounds kannste z.B: so stoppen:

PHP:
import flash.display.MovieClip; 
import flash.events.Event; 
import flash.media.SoundMixer;
stop (); 
var tweenControlMC:MovieClip = new MovieClip(); 
var memoContainer:MovieClip; 
var loader:Loader = new Loader(); 
loader.contentLoaderInfo.addEventListener (Event.COMPLETE, completeHandler); 
Button_1.addEventListener (MouseEvent.CLICK, Film1rufen); 
Button_2.addEventListener (MouseEvent.CLICK, Film2rufen); 
function Film1rufen (Event:MouseEvent):void { 
    loader.load (new URLRequest("Gruppe_1.swf")); 
} 
function Film2rufen (Event:MouseEvent):void { 
    loader.load (new URLRequest("Gruppe_2.swf")); 
} 
function completeHandler (e:Event):void { 
	SoundMixer.stopAll();
    var mc:MovieClip = e.target.content as MovieClip; 
    addChild (mc); 
    tweenControl (mc); 
} 
function tweenControl (mc):void { 
    tweenControlMC.addEventListener (Event.ENTER_FRAME, oEF); 
    function oEF (e:Event):void { 
        if(mc.currentFrame >= mc.totalFrames){ 
            tweenControlMC.removeEventListener (Event.ENTER_FRAME, oEF); 
            if(memoContainer != null){ 
                removeChild(memoContainer); 
            } 
            memoContainer = mc; 
        } 
    } 
}
 
Hallo Matrixguy,

DANKE! für deine Korrektur.

____________________________

Damit ich aus den Gruppen die Filme ansprechen kann, habe ich als erstes der Instanz Film aus den Fla's Movie_1.fla bis Movie_4.fla einen Instanznamen "film" gegeben.

In den Fla's Gruppe_1 und Gruppe_2 die tweenControl Funktion ergänzt mit:
memoContainer.film.ns.close();

Und damit auch beim wechseln der Gruppen zuvor aufgerufene Filme "verschwinden", ist wie in deinem Script geschrieben :
" import flash.media.SoundMixer; und SoundMixer.stopAll(); "
hinzugefügt.

Ich versteh zwar nur das allerwenigste an diesen Scripten (dafür beschäftige ich mit Flash und AS3 noch nicht lange genug), aber es klappt und ich kann diese "Struktur" noch für andere Seiten in meiner Flash-HP nutzen.

Vielen Dank Matrixguy für deine Aufmerksamkeit und praktische Hilfe!!
 
Zurück