2010-10-08 31 views
0

Je suis en train d'intégrer un swf intégré dans flash 8 dans un projet as3. Quand j'appelle stop() ou gotoAndStop (0); sur le MovieClip qui représente une instance du fichier swf intégré, il s'arrête pendant une seconde puis continue. Essayer d'appeler removeChild sur le mc le supprime de l'affichage mais l'audio dans le swf continue de jouer. Le swf, dans ce cas doit être intégré, je ne peux pas utiliser le chargeur. Toutes les idéesContrôle de la lecture asf swf dans as3

Le code:

[Embed (source = "t1.swf")] 
    private var t1:Class; 

    private var mc:MovieClip; 

     public function iphoneTest() 
     { 
     var tf:TextField = new TextField(); 
     tf.x = 10; 
     tf.y = 100; 
     tf.width = 100; 
     tf.height = 50; 
     tf.text = "Hello worl"; 
     mc = new t1(); 
     var button:CustomSimpleButton = new CustomSimpleButton(); 
     button.width = 50; 
     button.height = 50; 
     button.x = 10; 
     button.y = 150; 
     button.addEventListener(MouseEvent.CLICK, onClick); 

     this.addChild(mc); 
     this.addChild(tf); 
     this.addChild(button); 
    } 

    private function onClick(e:MouseEvent):void { 

     mc.stop();  
     this.removeChild(mc); 
    } 

Répondre

0

Avez-vous essayé mc = null;?

aussi parce que vous savez qu'il est un swf AS2, devrait probablement utiliser avm1movie au lieu de MovieClip

0

Au pire, vous pouvez simplement tuer tous les sons dans le fichier SWF ...

Assurez-vous que vous importez le mixer du son classe puis tuer le son ..

import flash.media.SoundMixer; 
SoundMixer.stopAll(); 
0

Si votre fichier SWF a une hiérarchie, vous aurez besoin de récursivité à travers elle pour arrêter tous les clips.

private function stopAll(do:DisplayObject):void 
{ 
    var clip:MovieClip = do as MovieClip; 
    if (clip != null) 
     clip.stop(); 

    var container:DisplayObjectContainer = do as DisplayObjectContainer; 
    if (container != null) 
    { 
     for (var i:int = 0; i < container.numChildren; ++i) 
     { 
      stopAll(container.getChildAt(i)); 
     } 
    } 
}