2010-10-08 3 views
0

Я встраиваю swf встроенную вспышку 8 в проект as3. Когда я вызываю stop() или gotoAndStop (0); в MovieClip, который представляет экземпляр встроенного swf, он останавливается на секунду, а затем продолжается. Попытка вызвать removeChild на mc удаляет его с дисплея, но звук в swf продолжает играть. Swf, в этом случае должен быть встроен, я не могу использовать загрузчик. Любые идеиУправление воспроизведением as2 swf в as3

Код:

[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); 
    } 

ответ

0

вы пытались mc = null;?

также, так как вы знаете, что это as2 швейцарских франков, вероятно, следует использовать avm1movie вместо MovieClip

0

В самом худшем случае вы можете просто убить всех звуков в SWF ...

Убедитесь, что вы импортировать звуковой микшер класс затем убить звук ..

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

Если ваш SWF имеет иерархию, вам нужна рекурсия через него, чтобы остановить все видеоклипы.

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)); 
     } 
    } 
} 
Смежные вопросы