Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   loader.load() из стороннего сайта.... (http://www.flasher.ru/forum/showthread.php?t=125172)

sabarn 18.05.2009 13:34

loader.load() из стороннего сайта....
 
Здравствуйте!
Пишу вам как в службу поддержки прям)
И если правда, то столкнулся с проблемой, которая тревожит и не даёт мне покоя неделю..
Сразу отмечаю - не отправляйте читать про crossdomain.xml - всё давно усвоено.
Проблема в другом. Мне нужно грузить в лоадер методом loader.load() с сайта, на котором нет файла crossdomain.xml;
Я знаю, что возможно решение проблемы кроется в использовании объекта-параметра context, который передам в лоадер вторым параметром.
Но я запутался в терминах, которые там присутствуют.
за что отвечает ApplicationDomain? за что SecurityDomain?
что содержится в строке ApplicationDomain.currentDomain?
что содержится в строке SecurityDomain.currentDomain?

так вот.
если описать
Код AS3:

public var context:LoaderContext = new LoaderContext();

то в дебаге даже ни на что не ругается и грузит в лоадер. но в публикации html грузить предательски отказывается. и ждёт чего то...

если описать
Код AS3:

public var context:LoaderContext = new LoaderContext(true,ApplicationDomain.currentDomain,SecurityDomain.currentDomain);

то возникает error #2142 Нарушение изолированной среды: локальные swf файлы не могут использовать свойство LoaderContext.securityDomain тырыпыры/programm.swf пытался загрузить http://тырыпыры. публикация html себя ведёт так же как и в первом случае.....

Граждане, не обессудьте, поделитесь своими наблюдениями и возможными путями решения.

BlooDHounD 18.05.2009 14:11

а почему он не должен ругаться? нету crossdomain.xml - будет ошибка.

sabarn 18.05.2009 14:14

то есть без crossdomain.xml на том сайте мне ничего не получится загрузить?
а если его там в принципе не будет?

а что кстати означает securityDomain?

darksranger 18.05.2009 14:43

Цитата:

Сообщение от sabarn (Сообщение 820891)
то есть без crossdomain.xml на том сайте мне ничего не получится загрузить?
а если его там в принципе не будет?

значит не судьба ...

BlooDHounD 18.05.2009 16:58

1. не получится.
2. в хелпе популярно написано.

Mur4ik 18.05.2009 16:59

Цитата:

Сообщение от darksranger (Сообщение 820899)
значит не судьба ...

Можно ведь и в обход crossdomain.xml получить данные оттуда где его нет.

Цитата:

Сообщение от BlooDHounD (Сообщение 820942)
1. не получится.
2. в хелпе популярно написано.

В хелпе многое и не написано ;)

решение проблемы от __etc

А это моя альтернатива:
Код AS3:

package  
package 
{
        import flash.display.*;
        import flash.system.LoaderContext;
        import flash.events.Event;
        import flash.net.URLRequest;
 
        public class FuckCrossdomain extends Sprite
        {
                protected var _container:Sprite;
                protected var _loader:Loader;
 
                public function FuckCrossdomain()
                {
                        addEventListener(Event.ADDED_TO_STAGE, init);
                }
 
                protected function init(event:Event):void
                {
                        removeEventListener(Event.ADDED_TO_STAGE, init);
 
                        var ldrContext:LoaderContext = new LoaderContext(true);
 
                        _loader = new Loader();
                        _loader.contentLoaderInfo.addEventListener(Event.INIT, loader_initHandler);
                        _loader.load( new URLRequest("http://mw2.google.com/mw-panoramio/photos/medium/5738675.jpg"), ldrContext );
                }
 
                protected function loader_initHandler(event:Event):void
                {
                        _loader.contentLoaderInfo.removeEventListener(Event.INIT, loader_initHandler);
 
                        var ldrInfo:LoaderInfo = event.target as LoaderInfo;
                        var unrealContent:DisplayObject;
 
                        try
                        {
                                unrealContent = ldrInfo.loader.content;
                        }
                        catch(err:SecurityError)
                        {
                                var loaderContainer:Sprite = new Sprite();
 
                                loaderContainer.addChild(ldrInfo.loader);
                                unrealContent = loaderContainer as DisplayObject;
                        }
 
                        _container = new Sprite();
                        _container.addChild(unrealContent);
                        addChild(_container);
                }
        }
}


sabarn 18.05.2009 18:25

а можно поинтересоваться - когда возникает событие
addEventListener(Event.ADDED_TO_STAGE, init);

Mur4ik 18.05.2009 18:31

Когда отображаемый объект добавляется на сцену (ADDED_TO_STAGE)

sabarn 18.05.2009 18:46

а если другой какой-нибудь объект добавится? который не относится к делу. событие тоже сработает?

Mur4ik 18.05.2009 18:50

чет не очень понятна суть вопроса, какой объект?
сработает если Вы объект подпишете на это событие.


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

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