Я использую класс Loader для загрузки 3 внешних swfs:
- sharedTopics.swf (не имеет класса документа)
- fonts.swf (класс документа - FontManager)
- main.swf (класс документа Main)
Один и тот же загрузчик используется для загрузки всех 3 ресурсов.
__assetLoader = new Loader();
var urlReq:URLRequest = new URLRequest(target.path);
__assetLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, this.preloadProgress);
__assetLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, this.assetCompleteHandler);
__assetLoader.contentLoaderInfo.addEventListener(Event.INIT, this.assetInitHandler);
__assetLoader.load(urlReq);
В полном обработчике Iдобавьте содержимое загрузчика в фрагмент ролика и затем отследите переменную:
var swf:DisplayObject = __assetLoader.content;
Debug.doTrace("Shell:: assetCompleteHandler():: content " + swf);
__app.addChild(MovieClip(swf));
Когда загружены sharedTopics, шрифты и основные swfs (соответственно), я получаю следующие операторы трассировки:
Shell:: assetInitHandler():: evt.currentTarget.content [object MovieClip]
Shell:: assetInitHandler():: evt.currentTarget.content [object FontManager]
Shell:: assetInitHandler():: evt.currentTarget.content [object Main__Preloader__]
Я ожидаю, что последний оператор трассировки будет выглядеть как «[объект Main]», который, однако, будет именем класса документа, вместо этого содержимое является загрузчиком.Любые идеи относительно того, почему это происходит?
В более поздней функции я пытаюсь вызвать функцию init класса Main и получаю следующую ошибку:
Error #1069: Property init not found on classes.Main__Preloader__ and there is no default value.
Я надеюсь, что это объясненоясно.
Заранее спасибо,
Майк