[AS3] Video stoppt nicht nach Seitenwechsel

sonicks

Erfahrenes Mitglied
Guten Abend,

Ich habe folgendes Problem mit meinem importierten Flashvideo per AS3.

Meine Seite besteht aus einer Navigation, mit der ich durch klicken auf eine Schaltfläche per Actionscript zu einem neuen Frame gelange und dort der Inhalt der neuen Seite angezeigt wird.
Der Code für die Navigation sieht wie folgt aus:
PHP:
but_about.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
function mouseDownHandler(event:MouseEvent):void {
    gotoAndStop("galerie");

}
but_music.addEventListener(MouseEvent.MOUSE_DOWN, mouseMUSIC);
function mouseMUSIC(event:MouseEvent):void {
    gotoAndStop("disko");
 
}

Jetzt möchte wenn man bei Navigation auf video klickt, dass er zu "video" springt und dort ein Video abspielt, dass ich wie folgt eingebunden habe:

PHP:
but_video.addEventListener(MouseEvent.MOUSE_DOWN, mouseGalerie);
function mouseGalerie(event:MouseEvent):void {
    gotoAndStop("video");
	
	/*
Video importieren
*/
var nc:NetConnection = new NetConnection(); 
nc.connect(null); 
 
var ns:NetStream = new NetStream(nc); 
ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler); 
ns.play("stuff/video/lastdispatch.flv"); 
function asyncErrorHandler(event:AsyncErrorEvent):void 
{ 
    // ignore error 
} 
 
var vid:Video = new Video(); 
vid.attachNetStream(ns);
vid.x = -30;
vid.y = 0;
vid.width = 540;
vid.height = 360;
addChild(vid); 
 
pauseBtn.addEventListener(MouseEvent.CLICK, pauseHandler); 
playBtn.addEventListener(MouseEvent.CLICK, playHandler); 
stopBtn.addEventListener(MouseEvent.CLICK, stopHandler); 
togglePauseBtn.addEventListener(MouseEvent.CLICK, togglePauseHandler); 
 
function pauseHandler(event:MouseEvent):void 
{ 
    ns.pause(); 
} 
function playHandler(event:MouseEvent):void 
{ 
    ns.resume(); 
} 
function stopHandler(event:MouseEvent):void 
{ 
    // Pause the stream and move the playhead back to 
    // the beginning of the stream. 
    ns.pause(); 
    ns.seek(0); 
} 
function togglePauseHandler(event:MouseEvent):void 
{ 
    ns.togglePause(); 
}

	
	
}

Das Video wird auch abgespielt, die Play, Pause etc. Buttons funktionieren, nur wenn ich in der Navigation wieder auf einen anderen Punkt klicke und zu einer anderen Frame möchte wird das Video IMMERNOCH angezeigt über dem anderen Inhalt des Frames.

Jetzt dachte ich mir, ich kann mittels

PHP:
but_video.addEventListener(MouseEvent.MOUSE_DOWN, mouseGalerie);
function mouseGalerie(event:MouseEvent):void {
    gotoAndStop("galerie");
    ns.stop();
    removeChild(vid);
}

das Video anhalten und "removen" sobald man in der Navigation auf einen anderen Link klickt.

Da gibt er mir aber folgenden Fehler aus:
Code:
1120: Zugriff auf eine nicht definierte Eigenschaft ns. - ns.stop();
1120: Zugriff auf eine nicht definierte Eigenschaft vid. - removeChild(vid);

Wo liegt mein Denkfehler?


Danke schonmal
Grüße
 
ns und vid sind einfach in dem neuen Frame nicht mehr verfügbar, sind also nur lokal in dem Frame zu verwenden, in dem du sie erstellt hast. Die beste Lösung dafür wäre wohl eine extra "code"-Ebene über alle Schlüsselbilder, in der ns und vid zumindest erstellt werden - das ganze Videoladen kannst du ja im entsprechenden Frame lassen.
 

Neue Beiträge

Zurück