2009-09-03 8 views
0

J'ai un projet vide qui lit simplement deux fichiers vidéo. Peu importe ce que j'essaie, la seconde vidéo est de la même taille que la première. S'il vous plaît dites-moi que ce n'est pas un bug Flash et qu'il y a quelque chose que je peux faire pour y arriver. Voici ma classe de document:lecture de plusieurs vidéos en flash as3

package{ 

    import flash.display.*; 
    import flash.media.*; 
    import flash.net.*; 

    public class Test extends MovieClip{ 

     public function Test(){ 

      var nc = new NetConnection(); 
      nc.connect(null); 
      var ns = new NetStream(nc); 
      var vid1 = new Video(120, 88); 
      vid1.x = 100; 
      vid1.y = 300; 
      this.addChild(vid1); 

      vid1.attachNetStream(ns); 
      ns.client = new Object(); 
      ns.play("video/testvideo1.flv");  


      var ns2 = new NetStream(nc); 
      var vid2 = new Video(600,678); 
      vid2.x = 500; 
      vid2.y = 50; 
      this.addChild(vid2); 

      vid2.attachNetStream(ns2); 
      ns2.client = new Object(); 
      ns2.play("video/testvideo2.flv"); 


     } 
    } 
} 

Si vous tracez la taille de vid2 immédiatement après l'avoir créé à (600768), il est dit (120,88) - la taille de la première vidéo.

+0

Félicitations, vous avez trouvé un bug! LOL – Havenard

+0

C'est génial. Comment suis-je censé exécuter ce projet qui nécessite plusieurs clips vidéo sur l'écran? –

Répondre

0

S'il n'y a pas de raison particulière pour que les deux vidéos soient jouées dans le même fichier SWF, vous pouvez simplement héberger les deux vidéos en tant que fichiers SWF distincts dans une seule page HTML. Si vous avez besoin d'une certaine coordination entre eux, vous pouvez facilement écrire un pont JavaScript à l'aide de ExternalInterface.

+0

Peut-être même des clips vidéo séparés dans le film Flash peuvent fonctionner. – Havenard

1

Jetez un oeil à ce blogpost: http://synja.com/?p=14

Apparemment, il vous suffit de spécifier la largeur et la hauteur après l'initialisation. Donc:

var vid1 = new Video(120, 88); 
vid1.width = 120; 
vid1.height = 88; 

[...] 

var vid2 = new Video(600,678); 
vid2.width = 600; 
vid2.height = 678; 
0

J'ai eu la même expérience en jouant des vidéos de deux tailles différentes. Les astuces créent un dessin de rectangle et le convertissent en un clip. Attribuez un nom d'occurrence à ce clip. Ensuite, créez une copie de ce clip et attribuez un nom d'occurrence différent. Placez vos deux clips sur scène et redimensionnez le clip en fonction de la taille dont vous aviez besoin à l'aide de l'outil de redimensionnement. Ciblez le nom d'occurrence de chaque clip pour charger votre vidéo sur scène.

Questions connexes