Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flash Приложения: AIR, Zinc и тд. (http://www.flasher.ru/forum/forumdisplay.php?f=94)
-   -   AIR SecurityError Loader.clone() (http://www.flasher.ru/forum/showthread.php?t=199754)

AlexCooper 23.05.2013 23:47

AIR SecurityError Loader.clone()
 
Здравствуйте.
Загружаю локальные свф
Код AS3:

private function createLib():void
{
        library = new Vector.<Loader>;
 
        var strarr:Array = new Array();
        strarr.push("asset/bikini_top.swf");
        strarr.push("asset/stringy.swf");
        strarr.push("asset/bubble.swf");
 
        for each(var url:String in strarr)
        {
                var bmLoader:Loader = new Loader();
                var mRequest:URLRequest = new URLRequest(url);
 
                bmLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler);
                bmLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgressHandler);
                bmLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
                bmLoader.load(mRequest);
 
                library.push(bmLoader);
        }
 
}

то-есть создаю библиотеку с свф, когда инициализируется пользователь пытаюсь получить копии с свф
Код AS3:

protected function usersAddedHandler(event:UserEvent):void 
{
        for each(var user:User in event.users)
        {
                var bmp:Bitmap = new Bitmap();
 
                userMaskDictionary[user.userID] = bmp;
                userEffectDictionary[user.userID] = new Array();
 
                display.addChild(bmp);
 
                for each( var lib_item:Loader in library)
                {               
                        var tmp:Loader = cloneLoader(lib_item);
 
                        userEffectDictionary[user.userID].push(tmp);
                        display.addChild(tmp);
                }
        }
}
 
protected function cloneLoader(source:Loader):Loader
{
        var clone:Loader = new Loader();
        clone.loadBytes(source.contentLoaderInfo.bytes);
        return clone;
}

получаю ошибку
Код:

SecurityError: Error #3226: Cannot import a SWF file when LoaderContext.allowCodeImport is false.
        at flash.display::Loader/_loadBytes()
        at flash.display::Loader/loadBytes()
        at KinectAquaVita/cloneLoader()

Добавлено через 8 минут
Разобрался
Код AS3:

        protected function cloneLoader(source:Loader):Loader
{
        var lc : LoaderContext = new LoaderContext();
        lc.allowCodeImport = true;
 
        var clone:Loader = new Loader();
        clone.loadBytes(source.contentLoaderInfo.bytes,lc);
        return clone;
}



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

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