Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   вызов методов из загруженной swf (http://www.flasher.ru/forum/showthread.php?t=200453)

Wolsh 04.06.2013 20:57

Имелось в виду, что если у Вас интерфейс импортируется в Unit как as3.UnitInterface, то и в Main он должен импортироваться как as3.UnitInterface (а вообще лучше не использовать такие глобальные имена как as3).

warsem 24.06.2013 22:51

Народ, руки опускаются. Ну почему в trace выводит нуль?
Код AS3:

public var unit:UnitInterface;
...
public function unitLoaded(e:Event) {
        unitLoader.contentLoaderInfo.removeEventListener(Event.COMPLETE,unitLoaded);
        unitLoader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS,unitLoadProgress);
                trace(e.currentTarget.content);                                // [object Unit]
                unit=e.currentTarget.content as UnitInterface;                // а тут не срабатывает
                trace(unit);                                                                // и выводит нуль :((((
}


maxkar 24.06.2013 23:18

LoaderContext покажите. SecurityDomain указан? Если не указан, ApplicationDomain игнорируется.

warsem 25.06.2013 19:20

Вот:
Код AS3:

                        var context:LoaderContext=new LoaderContext(false,ApplicationDomain.currentDomain);
                        unitLoader = new Loader();
                        unitLoader.load(new URLRequest(host+'/Unit.swf?'+Math.random()),context);


maxkar 25.06.2013 20:22

Угу. SecurityDomain.currentDomain в loaderContext добавьте. И первый параметр true, а не false.

warsem 26.06.2013 21:17

лаф ю!! :)

Код AS3:

SecurityError: Error #2142: Нарушение изолированной среды: локальные SWF-файлы не могут использовать свойство LoaderContext.securityDomain.

Не смотря на это сообщение, обрадовался как дитё. Хоть какой-то сдвиг.

maxkar 26.06.2013 22:32

Ну значит нельзя с локальной машины грузить файлы в свой securityDomain. Кстати, у вас там не Air на клиенте? В Air явно запрещено загружать файлы к себе в домен.

Остаетаются два варианта.

Первый. Загрузить ваш основной файл на сервер и отлаживать только в браузере. Вроде бы все основные среды разработки умеют remote debug делать.
Второй. Отказаться от типизации (вы никогда не получите экземпляр класса Unit) и обращаться при этом через Object с нетипизированными методами. При этом еще нужно в вызывать Security.allowDomain. В документации посмотрите на картинку, что и куда нужно прописывать. Можно для тестов в обе флешки прописать Security.allowDomain("*"). Еще раз повторю - общего интерфейса (interface) между двумя флешками не будет, все вызовы "через нетипизированный Object".

warsem 26.06.2013 22:48

да уже колдую полный энтузиазма в браузере.
отладку конечно это усложнит, но пока что не до нее)


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

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