Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Утечки памяти AS3 youtube player (http://www.flasher.ru/forum/showthread.php?t=184158)

Cheburashka 12.09.2012 13:07

Утечки памяти AS3 youtube player
 
Всем привет. Заметил постоянные утечки памяти при использовании youtube api. Гуглил, все пишут о проблеме, о решении не пишут, поиск тут юзал.
Как проверяю: загрузил видео, проиграл, удалил слушатели, обнулил ссылки и по кругу.
Буду благодарен помощи и подсказкам.
Спасибо:)

Простой код, который это делает:

Код AS3:

package
{
 
        import flash.display.DisplayObject;
        import flash.display.Loader;
        import flash.display.MovieClip;
        import flash.display.Sprite;
        import flash.events.Event;
        import flash.events.MouseEvent;
        import flash.net.URLRequest;
        import flash.system.Security;
 
        public class YoutubeStreamTest extends Sprite
        {
                // constants -------------------------------------------
 
 
 
                // properties ------------------------------------------
 
                private var _loader : Loader;
                private var _player : Object;
                private var _spr : Sprite;
 
                // constructor -----------------------------------------
                public function YoutubeStreamTest()
                {
                        addEventListener(Event.ADDED_TO_STAGE, hAddedToStage);
                }
 
                // methods ---------------------------------------------
 
                private function startVideo() : void {
                        _loader = new Loader();
                        _loader.contentLoaderInfo.addEventListener(Event.INIT, hLoaderInit, false, 0, true);
                        _loader.load(new URLRequest("http://www.youtube.com/v/FooZ5x-OX0E?version=3&controls=0&showinfo=0&end=3")); //yPrHf776eWA = the vid u want t play
                }
 
                // handlers --------------------------------------------
 
                private function hLoaderInit(event : Event) : void {
                        _loader.contentLoaderInfo.removeEventListener(Event.INIT, hLoaderInit);
                        _player = _loader.content;
                        _player.addEventListener("onReady", hPlayerReady, false, 0, true);
                        addChild(_player as DisplayObject);
                        _player.x = 0;
                        _player.y = 20;
 
                        _spr = new Sprite();
                        _spr.graphics.beginFill(0x0, .1);
                        _spr.graphics.drawRect(0, 0, 500, 500);
                        _spr.graphics.endFill();
                        addChild(_spr);
                }
 
                private function hPlayerReady(event : Event) : void
                {
                        _player.removeEventListener("onReady", hPlayerReady);
                        _player.setSize(440, 260);
                        _player.playVideo();
                }
 
                private function hAddedToStage(event : Event) : void {
                        Security.allowInsecureDomain("*");
                        Security.allowDomain("*");
                        startVideo();
 
                        addEventListener(MouseEvent.CLICK, hClick);
                }
 
                private function hClick(event : Event) : void {
                        removeEventListener(Event.ADDED_TO_STAGE, hAddedToStage);
                        if(_player) {
                                removeChild(_player as DisplayObject);
                                _player.destroy();
                                removeChild(_spr);
                                _loader.unloadAndStop(true);
                        }
                        startVideo();
                }
 
                // getsetters ------------------------------------------
 
 
        }
}



Часовой пояс GMT +4, время: 22:52.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.