Управление воспроизведением as2 swf в as3 - PullRequest
0 голосов
/ 09 октября 2010

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

код:

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

Ответы [ 3 ]

0 голосов
/ 12 октября 2010

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

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

import flash.media.SoundMixer; 
SoundMixer.stopAll();
0 голосов
/ 02 ноября 2011

Если у вашего 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));
        }
    }
}
0 голосов
/ 09 октября 2010

вы пробовали mc = null;?

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

...