2012-12-10 6 views
2

Je reçois l'erreur 1120 l'accès de la propriété non définie surRetirez l'enfant sur le bouton cliquez sur

knop_stop.addEventListener(MouseEvent.CLICK,stopVideos); 

Je veux avoir 9 boutons, lecture d'une vidéo. Lorsqu'une vidéo est déclenchée, un bouton sera visible pour quitter la vidéo, de sorte qu'une autre vidéo peut être lue lorsque vous appuyez sur un autre bouton.

import fl.video.*; 
import flash.events.MouseEvent; 

stop(); 

knop_1.addEventListener(MouseEvent.CLICK,speel1); 
knop_2.addEventListener(MouseEvent.CLICK,speel2); 
knop_3.addEventListener(MouseEvent.CLICK,speel3); 
knop_4.addEventListener(MouseEvent.CLICK,speel4); 
knop_5.addEventListener(MouseEvent.CLICK,speel5); 
knop_6.addEventListener(MouseEvent.CLICK,speel6); 
knop_7.addEventListener(MouseEvent.CLICK,speel7); 
knop_8.addEventListener(MouseEvent.CLICK,speel8); 
knop_9.addEventListener(MouseEvent.CLICK,speel9); 

knop_stop.addEventListener(MouseEvent.CLICK,stopVideos); 
knop_stop.visible=false; 

var videoArray:Array = new Array(
    "video/video01.flv", 
    "video/video02.flv", 
    "video/video03.flv", 
    "video/video04.flv", 
    "video/video05.flv", 
    "video/video06.flv", 
    "video/video07.flv", 
    "video/video08.flv", 
    "video/video09.flv" 
); 

var filmAan = false; 

function speel1(evtObj:MouseEvent):void { 
    trace("knop 1: video 1"); 
    if (filmAan == false) { 
     var myVideo1:FLVPlayback = new FLVPlayback(); 
     myVideo1.source = videoArray[0]; 
     addChild(myVideo1); 
     myVideo1.x=340; 
     myVideo1.y=227; 
     myVideo1.width=1360; 
     myVideo1.height=908; 
     filmAan = true; 
     knop_stop.visible=true; 
     function stopVideos(evtObj:MouseEvent):void { 
      removeChild(myVideo1);   
     } 
    } else { 
     knop_stop.visible = false; 
    } 

} 

Qu'est-ce que j'ai fait de mal?

+0

Où allez-vous déclarer knop_stop? –

+0

Probablement pas où je pense que je l'ai fait .. function stopVideos (evtObj: MouseEvent): void { removeChild (myVideo1); } – user1892747

+0

Je parle de l'objet sur lequel vous ajoutez l'écouteur d'événement. –

Répondre

1

Vous devez placer la fonction stopVideos en dehors de la fonction speel1 si vous souhaitez que le gestionnaire d'événements la voit. Lorsque vous placez une fonction dans une autre, vous limitez la portée de la fonction interne à la fonction parente. Si vous voulez que les stopVidoes fonctionnent pour être visible à rien d'autre essayer:

function speel1(evtObj:MouseEvent):void { 
    trace("knop 1: video 1"); 
    if (filmAan == false) { 
     var myVideo1:FLVPlayback = new FLVPlayback(); 
     myVideo1.source = videoArray[0]; 
     addChild(myVideo1); 
     myVideo1.x=340; 
     myVideo1.y=227; 
     myVideo1.width=1360; 
     myVideo1.height=908; 
     filmAan = true; 
     knop_stop.visible=true; 
    } else { 
     knop_stop.visible = false; 
    } 
} 

function stopVideos(evtObj:MouseEvent):void { 
     removeChild(myVideo1);   
} 
+0

merci pour les commentaires! Mais il semble que le code ne fonctionne pas comme je l'ai prévu pour fonctionner. Pendant la lecture de la vidéo, le bouton knop_stop semble ne rien faire. Le bouton knop_1 semble supprimer le bouton knop_stop. Comment je veux qu'il soit: Pendant la lecture de la vidéo, le bouton knop_stop doit être rendu invisible et supprimer la lecture de la vidéo. Le bouton knop_1 ne devrait rien faire à moins qu'il n'y ait pas de lecture vidéo (FilmAan = false). Toutes les suggestions sont grandement appréciées! – user1892747

+0

Est-ce que knop_stop est une instance d'objet sur la scène? Est-ce qu'il est caché par le premier appel? – Gone3d

0

Mettez la fonction stopVideos en dehors du corps de la fonction speel1 et définissent myVideo1 en dehors de cette fonction trop:

var myVideo1:FLVPlayback = new FLVPlayback(); 
addChild(myVideo1); 

function speel1(evtObj:MouseEvent):void { 
    trace("knop 1: video 1"); 
    if (filmAan == false) { 
     myVideo1.source = videoArray[0]; 
     myVideo1.x=340; 
     myVideo1.y=227; 
     myVideo1.width=1360; 
     myVideo1.height=908; 
     filmAan = true; 
     knop_stop.visible=true; 

    } else { 
     knop_stop.visible = false; 
    } 

} 
function stopVideos(evtObj:MouseEvent):void { 
      removeChild(myVideo1);   
     } 
+0

merci pour les commentaires! Mais il semble que le code ne fonctionne pas comme je l'ai prévu pour fonctionner. Pendant la lecture de la vidéo, le bouton knop_stop semble ne rien faire. Le bouton knop_1 semble supprimer le bouton knop_stop. Comment je veux qu'il soit: Pendant la lecture de la vidéo, le bouton knop_stop doit être rendu invisible et supprimer la lecture de la vidéo. Le bouton knop_1 ne devrait rien faire à moins qu'il n'y ait pas de lecture vidéo (FilmAan = false). Toutes les suggestions sont grandement appréciées! – user1892747