Класс в загруженном SWF не может использовать базовый класс при загрузке SWF - PullRequest
0 голосов
/ 17 сентября 2010

У меня есть два SWF-файла, которые я назову container and slave. Файл slave содержит мувиклип, выходящий из класса, который я назову base. base расширяет MovieClip и компилируется в SWC. slave включает этот SWC в качестве библиотеки времени выполнения, в то время как container включает его как объединенный (и ссылается на него, поэтому его следует скомпилировать в container SWF).

container загружает slave примерно так:

bgURLRequest = new URLRequest(slaveUrl);
var context:LoaderContext = new LoaderContext(false, new ApplicationDomain( null ), SecurityDomain.currentDomain);          
bgLoader.load(bgURLRequest, context);

Когда происходит эта загрузка, я получаю сообщение об ошибке, что класс base не найден. Я подозреваю, что это как-то связано с присутствием там ApplicationDomain. Я не уверен, что именно он делает, так как сам не писал этот код загрузки (но я знаю, что он существует по какой-то причине, поэтому его нельзя просто удалить).

Как починить?

Ответы [ 2 ]

0 голосов
/ 17 сентября 2010

Используйте ApplicationDomain.currentDomain и отслеживайте доступные классы с помощью супер getDefinitionNames, доступных по адресу: http://etcs.ru/pre/getDefinitionNamesSource/

По крайней мере, вы будете знать, что доступно в загруженном SWF.

0 голосов
/ 17 сентября 2010

Это решение

new LoaderContext(false, new ApplicationDomain( ApplicationDomain.currentDomain ), SecurityDomain.currentDomain); 
...