У меня была такая же проблема. На самом деле это будет продолжаться с этой ошибкой, даже если вы выходите из класса в RSL, который реализует интерфейс из RSL.
Похоже, что rsl нужно некоторое время для загрузки и интерпретации проигрывателем.
Если вы будете использовать во втором фрейме классы или интерфейсы, инкапсулированные в rsl, они будут работать нормально. Как бы то ни было, они не работают нормально в первом кадре.
Мое решение, связанное с моим делом, было:
1) Основное приложение с использованием внешней библиотеки rsl.swf.
2) Приложение модуля, имеющее основной класс документов ModuleBase, реализующий модуль IModule, инкапсулированный в rsl.swf, поэтому приложение модуля также использует extaernal lib rsl.swf.
3) Основное приложение загружало приложение модуля и приводило его к ModuleBase.
Похоже, время, необходимое приложению Main для загрузки приложения модуля, достаточно, чтобы инициализировать / зарегистрировать типы внутри rsl.
Как бы то ни было внутри Flash IDE:
1) тестирование приложения модуля, имеющего основной документ расширяющего ModuleBase типа, предоставляемого rsl, завершится в VerifyError: Ошибка # 1014
2) компиляция модуля приложения работает просто отлично
3) прекрасно работает компиляция и тестирование основного приложения
Внутри браузера:
1) тестирование приложения модуля не выполняется с VerifyError: Ошибка # 1014
2) тестирование основного приложения работает нормально
Таким образом, мое решение состоит в том, чтобы скомпилировать модули, расширяющие некоторый внешний класс, и использовать их внутри приложения, в котором уже доступны типы RSL.
Надеюсь, это кому-нибудь поможет.
// РГБ
package interfaces {
public interface IModuleFactory
{
//...
}
}
package app.models {
import interfaces.IModuleFactory;
public class ModuleBase extends MovieClip implements IModuleFactory
{
//...
}
}
// * Модуль 1018 *
package {
import app.models.ModuleBase;
// main document class
public class Module extends app.models.ModuleBase
{
//..
}
}
// где-то внутри Основное приложение
protected function onModuleLoaded(event:Event):void
{
var lInfo:LoaderInfo = event.currentTarget as LoaderInfo;
setTimeout( function(){ extractFactory(lInfo); },200);
}
protected function extractFactory(lInfo:LoaderInfo):void
{
if( lInfo )
{
if( !(lInfo.content is ModuleBase) )
{
trace(lInfo.content ,' is not ModuleBase');
}
var m:DisplayObject = lInfo.content;
if( !(m is IModuleFactory) )
{
trace(m ,' is not IModuleFactory');
}
if(m)
{
var factory:Function = (lInfo.content as IModuleFactory).factory;
if( null != factory)
{
factories[key] = factory;
trace('module loaded',m,key);
dispatchEvent(new Event('moduleloaded'));
}else{
trace('could not get a reference to module factory!');
}
}else{
trace('could not cast to ModuleBase');
}
}else{
trace('could not get a reference to a LodearInfo!');
}
}